无法连接到 EC2-VPC

无法连接到 EC2-VPC

我想在 VPC 内的公共子网中配置 EC2 实例。为了实现此目的,我使用 boto3 编写了以下代码。总而言之,我创建了一个 VPC,为其启用 DNS 支持和主机名,创建一个安全组以允许所有入口流量,为 VPC 创建一个子网(并要求它在启动时映射公共 IP),创建并将 Internet 网关连接到 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 进入任何实例;我忘记了什么吗?

相关内容