AWS创建vpc并启动实例

时间:2015-05-11 17:36:46

标签: amazon-web-services ssh amazon-ec2 amazon-vpc

我尝试启动ec2实例并通过ssh登录。我不小心删除了deafaul vpc,因此从头开始创建一个vpc来做到这一点。我创建了一个VPC,其10.0.0.0/16 VPC CIDR和10.0.0.0/24作为子网,并且还创建了一个网关。 A还修改了路由表。

10.0.0.0/16 local

0.0.0.0/0 igw-xxxx

我选择了一个ubuntu ami并在我的vpc中启动它并为该实例分配了一个弹性ip。

我有一个公共IP分配给我的实例,安全组也打开了端口22。我可以ping这个公共IP,但是当我尝试使用

进入ec2实例时
ssh -i access.pem ubuntu@public.ip

我的连接超时,我在配置中遗漏了什么?

1 个答案:

答案 0 :(得分:3)

最近,我玩过这样的配置。下面是我的笔记(这对我有用),检查你是否错过了什么。如果您可以ping实例IP,但安全组看起来有问题,但无法通过ssh进行连接。我也会检查不同的AMI。

创建VPC

$ vpcId=`aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query 'Vpc.VpcId' --output text` $$ echo $vpcId
vpc-xxxxxxxx

在VPC中启用DNS解析

$ aws ec2 modify-vpc-attribute --vpc-id $vpcId --enable-dns-support "{\"Value\":true}"
$ aws ec2 modify-vpc-attribute --vpc-id $vpcId --enable-dns-hostnames "{\"Value\":true}"

为创建的VPC创建默认网关

$ internetGatewayId=`aws ec2 create-internet-gateway --query 'InternetGateway.InternetGatewayId' --output text` && echo $internetGatewayId
igw-yyyyyyy
$ aws ec2 attach-internet-gateway --internet-gateway-id $internetGatewayId --vpc-id $vpcId

在VPC中创建子网

$ subnetId=`aws ec2 create-subnet --vpc-id $vpcId --cidr-block 10.0.0.0/24 --query 'Subnet.SubnetId' --output text` && echo $subnetId
subnet-zzzzzzz

配置路由表

$ routeTableId=`aws ec2 create-route-table --vpc-id $vpcId --query 'RouteTable.RouteTableId' --output text` && echo $routeTableId

$ aws ec2 associate-route-table --route-table-id $routeTableId --subnet-id $subnetId

$ aws ec2 create-route --route-table-id $routeTableId --destination-cidr-block 0.0.0.0/0 --gateway-id $internetGatewayId

创建安全组并将端口22打开到任何连接

$ securityGroupId=`aws ec2 create-security-group --group-name ec2-dev-secgroup --description "security group" --vpc-id $vpcId --query 'GroupId' --output text` && echo $securityGroupId
sg-xyzyzyz

$ aws ec2 authorize-security-group-ingress --group-id $securityGroupId --protocol tcp --port 22 --cidr 0.0.0.0/0

创建ssh密钥

aws ec2 create-key-pair --key-name ec2-dev --query 'KeyMaterial' --output text > ~/.ssh/ec2-dev.pem

chmod 400 ~/.ssh/ec2-dev.pem

创建EC2实例

$ instanceId=`aws ec2 run-instances --image-id ami-ecd5e884 --count 1 --instance-type t2.micro --key-name ec2-dev --security-group-ids $securityGroupId --subnet-id $subnetId --associate-public-ip-address --query 'Instances[0].InstanceId' --output text`

ssh -i .ssh/ec2-dev.pem ec2-user@52.x.y.z