要将 EC2 实例上的数据传输至互联网,需要将数据流出出口(data out)配置为 Internet Gateway。
以下是一个 Python 示例代码的实现:
import boto3
ec2_client = boto3.client('ec2')
instance_id = 'i-0123456789abcdefg'
gw_id = 'igw-0123456789abcdefg'
network_interface = ec2_client.create_network_interface( SubnetId='subnet-0123456789abcdefg', Groups=['sg-0123456789abcdefg'], )
ec2_client.attach_network_interface( DeviceIndex=1, InstanceId=instance_id, NetworkInterfaceId=network_interface['NetworkInterface']['NetworkInterfaceId'], )
route_table = ec2_client.create_route_table( VpcId='vpc-0123456789abcdefg' )
ec2_client.create_route( DestinationCidrBlock='0.0.0.0/0', GatewayId=gw_id, RouteTableId=route_table['RouteTable']['RouteTableId'], )
ec2_client.associate_route_table( RouteTableId=route_table['RouteTable']['RouteTableId'], SubnetId='subnet-0123456789abcdefg', )
network_interface_waitor = ec2_client.get_waiter('network_interface_available') network_interface_waitor.wait(NetworkInterfaceIds=[network_interface['NetworkInterface']['NetworkInterfaceId']])
ec2_client.detach_network_interface( AttachmentId=network_interface['NetworkInterface']['Attachment']['AttachmentId'], Force=True, )
ec2_client.delete_network_interface( NetworkInterfaceId=network_interface['NetworkInterface']['NetworkInterfaceId'] )