Konfigurasikan VPC sumber daya Amazon dengan AWS CloudFormation - AWS CloudFormation

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan VPC sumber daya Amazon dengan AWS CloudFormation

Bagian ini memberikan contoh untuk mengonfigurasi VPC sumber daya Amazon menggunakan AWS CloudFormation. VPCsmemungkinkan Anda membuat jaringan virtual di dalamnya AWS, dan cuplikan ini menunjukkan cara mengonfigurasi aspek VPCs untuk memenuhi persyaratan jaringan Anda.

Aktifkan akses internet IPv6 khusus egres di VPC

Sebuah gateway internet egress-only memungkinkan instance dalam a VPC untuk mengakses internet dan mencegah sumber daya di internet berkomunikasi dengan instans. Cuplikan berikut memungkinkan akses internet IPv6 khusus egres dari dalam file. VPC Ini menciptakan VPC dengan rentang IPv4 alamat 10.0.0/16 menggunakan VPC sumber daya AWS::EC2::. Tabel rute dikaitkan dengan VPC sumber daya ini menggunakan sumber RouteTable daya AWSEC2:::. Tabel rute mengelola rute untuk instance di dalam. VPC An AWS:EC2:: EgressOnlyInternetGateway digunakan untuk membuat gateway internet khusus egres untuk mengaktifkan IPv6 komunikasi untuk lalu lintas keluar dari instans di dalamVPC, sekaligus mencegah lalu lintas masuk. Sumber daya AWS:EC2: :Route ditentukan untuk membuat IPv6 rute dalam tabel rute yang mengarahkan semua IPv6 lalu lintas keluar (::/0) ke gateway internet khusus egres.

Untuk informasi selengkapnya tentang gateway internet khusus egres, lihat Mengaktifkan IPv6 lalu lintas keluar menggunakan gateway internet khusus egres.

JSON

"DefaultIpv6Route": { "Type": "AWS::EC2::Route", "Properties": { "DestinationIpv6CidrBlock": "::/0", "EgressOnlyInternetGatewayId": { "Ref": "EgressOnlyInternetGateway" }, "RouteTableId": { "Ref": "RouteTable" } } }, "EgressOnlyInternetGateway": { "Type": "AWS::EC2::EgressOnlyInternetGateway", "Properties": { "VpcId": { "Ref": "VPC" } } }, "RouteTable": { "Type": "AWS::EC2::RouteTable", "Properties": { "VpcId": { "Ref": "VPC" } } }, "VPC": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.0.0.0/16" } }

YAML

DefaultIpv6Route: Type: "AWS::EC2::Route" Properties: DestinationIpv6CidrBlock: "::/0" EgressOnlyInternetGatewayId: Ref: "EgressOnlyInternetGateway" RouteTableId: Ref: "RouteTable" EgressOnlyInternetGateway: Type: "AWS::EC2::EgressOnlyInternetGateway" Properties: VpcId: Ref: "VPC" RouteTable: Type: "AWS::EC2::RouteTable" Properties: VpcId: Ref: "VPC" VPC: Type: "AWS::EC2::VPC" Properties: CidrBlock: "10.0.0.0/16"

Cuplikan templat antarmuka jaringan elastis (ENI)

Buat EC2 instance Amazon dengan antarmuka jaringan elastis terlampir () ENIs

Contoh cuplikan berikut membuat EC2 instance Amazon menggunakan AWS::EC2::Instancesumber daya di Amazon VPC dan subnet yang ditentukan. Ini melampirkan dua antarmuka jaringan (ENIs) dengan instance, mengaitkan alamat IP Elastis ke instance melalui terlampirENIs, dan mengkonfigurasi grup keamanan untuk dan akses. SSH HTTP Data pengguna diberikan ke instance sebagai bagian dari konfigurasi peluncuran saat instance dibuat. Data pengguna menyertakan skrip yang dikodekan dalam base64 format untuk memastikannya diteruskan ke instance. Ketika instance diluncurkan, skrip berjalan secara otomatis sebagai bagian dari proses bootstrap. Ini menginstalec2-net-utils, mengkonfigurasi antarmuka jaringan, dan memulai layanan. HTTP

Untuk menentukan Amazon Machine Image (AMI) yang sesuai berdasarkan Region yang dipilih, cuplikan menggunakan Fn::FindInMap fungsi yang mencari nilai dalam RegionMap pemetaan. Pemetaan ini harus didefinisikan dalam template yang lebih besar. Kedua antarmuka jaringan dibuat menggunakan AWS::EC2::NetworkInterfacesumber daya. Alamat IP elastis ditentukan menggunakan AWS::EC2::EIPsumber daya yang dialokasikan ke vpc domain. Alamat IP elastis ini dikaitkan dengan antarmuka jaringan menggunakan AWS::EC2::EIPAssociationsumber daya.

OutputsBagian ini mendefinisikan nilai atau sumber daya yang ingin Anda akses setelah tumpukan dibuat. Dalam cuplikan ini, output yang ditentukan adalahInstancePublicIp, yang mewakili alamat IP publik dari EC2 instance yang dibuat oleh tumpukan. Anda dapat mengambil output ini di tab Output di AWS CloudFormation konsol, atau menggunakan perintah deskripsi-tumpukan.

Untuk informasi selengkapnya tentang antarmuka jaringan elastis, lihat Antarmuka jaringan elastis.

JSON

"Resources": { "ControlPortAddress": { "Type": "AWS::EC2::EIP", "Properties": { "Domain": "vpc" } }, "AssociateControlPort": { "Type": "AWS::EC2::EIPAssociation", "Properties": { "AllocationId": { "Fn::GetAtt": [ "ControlPortAddress", "AllocationId" ] }, "NetworkInterfaceId": { "Ref": "controlXface" } } }, "WebPortAddress": { "Type": "AWS::EC2::EIP", "Properties": { "Domain": "vpc" } }, "AssociateWebPort": { "Type": "AWS::EC2::EIPAssociation", "Properties": { "AllocationId": { "Fn::GetAtt": [ "WebPortAddress", "AllocationId" ] }, "NetworkInterfaceId": { "Ref": "webXface" } } }, "SSHSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "VpcId": { "Ref": "VpcId" }, "GroupDescription": "Enable SSH access via port 22", "SecurityGroupIngress": [ { "CidrIp": "0.0.0.0/0", "FromPort": 22, "IpProtocol": "tcp", "ToPort": 22 } ] } }, "WebSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "VpcId": { "Ref": "VpcId" }, "GroupDescription": "Enable HTTP access via user-defined port", "SecurityGroupIngress": [ { "CidrIp": "0.0.0.0/0", "FromPort": 80, "IpProtocol": "tcp", "ToPort": 80 } ] } }, "controlXface": { "Type": "AWS::EC2::NetworkInterface", "Properties": { "SubnetId": { "Ref": "SubnetId" }, "Description": "Interface for controlling traffic such as SSH", "GroupSet": [ { "Fn::GetAtt": [ "SSHSecurityGroup", "GroupId" ] } ], "SourceDestCheck": true, "Tags": [ { "Key": "Network", "Value": "Control" } ] } }, "webXface": { "Type": "AWS::EC2::NetworkInterface", "Properties": { "SubnetId": { "Ref": "SubnetId" }, "Description": "Interface for web traffic", "GroupSet": [ { "Fn::GetAtt": [ "WebSecurityGroup", "GroupId" ] } ], "SourceDestCheck": true, "Tags": [ { "Key": "Network", "Value": "Web" } ] } }, "Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Fn::FindInMap": [ "RegionMap", { "Ref": "AWS::Region" }, "AMI" ] }, "KeyName": { "Ref": "KeyName" }, "NetworkInterfaces": [ { "NetworkInterfaceId": { "Ref": "controlXface" }, "DeviceIndex": "0" }, { "NetworkInterfaceId": { "Ref": "webXface" }, "DeviceIndex": "1" } ], "Tags": [ { "Key": "Role", "Value": "Test Instance" } ], "UserData": { "Fn::Base64": { "Fn::Sub": "#!/bin/bash -xe\nyum install ec2-net-utils -y\nec2ifup eth1\nservice httpd start\n" } } } } }, "Outputs": { "InstancePublicIp": { "Description": "Public IP Address of the EC2 Instance", "Value": { "Fn::GetAtt": [ "Ec2Instance", "PublicIp" ] } } }

YAML

Resources: ControlPortAddress: Type: 'AWS::EC2::EIP' Properties: Domain: vpc AssociateControlPort: Type: 'AWS::EC2::EIPAssociation' Properties: AllocationId: Fn::GetAtt: - ControlPortAddress - AllocationId NetworkInterfaceId: Ref: controlXface WebPortAddress: Type: 'AWS::EC2::EIP' Properties: Domain: vpc AssociateWebPort: Type: 'AWS::EC2::EIPAssociation' Properties: AllocationId: Fn::GetAtt: - WebPortAddress - AllocationId NetworkInterfaceId: Ref: webXface SSHSecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: VpcId: Ref: VpcId GroupDescription: Enable SSH access via port 22 SecurityGroupIngress: - CidrIp: 0.0.0.0/0 FromPort: 22 IpProtocol: tcp ToPort: 22 WebSecurityGroup: Type: 'AWS::EC2::SecurityGroup' Properties: VpcId: Ref: VpcId GroupDescription: Enable HTTP access via user-defined port SecurityGroupIngress: - CidrIp: 0.0.0.0/0 FromPort: 80 IpProtocol: tcp ToPort: 80 controlXface: Type: 'AWS::EC2::NetworkInterface' Properties: SubnetId: Ref: SubnetId Description: Interface for controlling traffic such as SSH GroupSet: - Fn::GetAtt: - SSHSecurityGroup - GroupId SourceDestCheck: true Tags: - Key: Network Value: Control webXface: Type: 'AWS::EC2::NetworkInterface' Properties: SubnetId: Ref: SubnetId Description: Interface for web traffic GroupSet: - Fn::GetAtt: - WebSecurityGroup - GroupId SourceDestCheck: true Tags: - Key: Network Value: Web Ec2Instance: Type: AWS::EC2::Instance Properties: ImageId: Fn::FindInMap: - RegionMap - Ref: AWS::Region - AMI KeyName: Ref: KeyName NetworkInterfaces: - NetworkInterfaceId: Ref: controlXface DeviceIndex: "0" - NetworkInterfaceId: Ref: webXface DeviceIndex: "1" Tags: - Key: Role Value: Test Instance UserData: Fn::Base64: !Sub | #!/bin/bash -xe yum install ec2-net-utils -y ec2ifup eth1 service httpd start Outputs: InstancePublicIp: Description: Public IP Address of the EC2 Instance Value: Fn::GetAtt: - Ec2Instance - PublicIp