Назад | Перейти на главную страницу

Не удается подключиться к EC2-VPC

Я хочу настроить экземпляр 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 ни к одному из моих экземпляров; я что-нибудь забыл?