Я хочу настроить экземпляр EC2 в общедоступной подсети в VPC. Для этого у меня есть приведенный ниже код, использующий boto3. Подводя итог, я создаю VPC, включаю поддержку DNS и имена хостов для него, создаю группу безопасности, чтобы РАЗРЕШИТЬ весь входящий трафик, создаю подсеть для VPC (и требую, чтобы он отображал общедоступный IP-адрес при запуске), создаю и подключаю Интернет. Шлюз к VPC, а затем, наконец, создайте таблицу маршрутизации с местом назначения CIDR 0.0.0.0/0. Затем я создаю экземпляр с подсетью, которую мы создали внутри VPC.
def setup_network():
use_dry_run = False
ec2_resource = boto3.resource('ec2', region_name=AWS_REGION)
ec2_client = boto3.client('ec2', region_name=AWS_REGION)
#Create a VPC
vpc = ec2_resource.create_vpc(DryRun=use_dry_run, CidrBlock='10.0.0.0/24')
ec2_client.modify_vpc_attribute(VpcId=vpc.vpc_id, EnableDnsSupport={'Value':True})
ec2_client.modify_vpc_attribute(VpcId=vpc.vpc_id, EnableDnsHostnames={'Value':True})
#Create an EC2 Security Group
ip_permissions = [
{
'IpProtocol': '-1',
'FromPort': -1,
'ToPort': -1,
'IpRanges': [{'CidrIp': '0.0.0.0/0'}]
}]
security_group = ec2_client.create_security_group(GroupName='gpu_group', Description='Allow_all_ingress_egress', VpcId=vpc.vpc_id)
group_id = security_group['GroupId']
ec2_client.authorize_security_group_ingress(GroupId=group_id, IpPermissions=ip_permissions)
#Create the subnet for the VPC
subnet = vpc.create_subnet(DryRun=use_dry_run, CidrBlock='10.0.0.0/25', AvailabilityZone=AWS_AVAILABILITY_ZONE)
ec2_client.modify_subnet_attribute(SubnetId=subnet.subnet_id, MapPublicIpOnLaunch={'Value':True})
#Create an Internet Gateway
gateway = ec2_resource.create_internet_gateway(DryRun=use_dry_run)
gateway.attach_to_vpc(DryRun=use_dry_run, VpcId=vpc.vpc_id)
#Create a Route table and add the route
route_table = ec2_client.create_route_table(DryRun=use_dry_run, VpcId=vpc.vpc_id)
route_table_id = route_table['RouteTable']['RouteTableId']
ec2_client.create_route(DryRun=use_dry_run, DestinationCidrBlock='0.0.0.0/0',RouteTableId=route_table_id,GatewayId=gateway.internet_gateway_id\
)
return vpc, subnet
Я не могу подключиться по ssh ни к одному из моих экземпляров; я что-нибудь забыл?