Configura VPC le risorse Amazon con AWS CloudFormation - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura VPC le risorse Amazon con AWS CloudFormation

Questa sezione fornisce esempi per configurare VPC le risorse Amazon utilizzando AWS CloudFormation. VPCsti consentono di creare una rete virtuale all'interno AWS e questi frammenti mostrano come configurare alcuni aspetti per soddisfare i tuoi requisiti VPCs di rete.

Abilita l'accesso a IPv6 Internet solo in uscita in un VPC

Un gateway Internet solo in uscita consente alle istanze all'interno di un di accedere VPC a Internet e impedisce alle risorse su Internet di comunicare con le istanze. Il seguente frammento consente l'accesso a Internet in modalità solo in uscita dall'interno di un. IPv6 VPC Crea un file VPC con un intervallo di IPv4 indirizzi 10.0.0/16 utilizzando una risorsa AWS::::. EC2 VPC Una tabella di routing è associata a questa VPC risorsa utilizzando una RouteTable risorsa AWS:EC2:::. La tabella delle rotte gestisce le rotte per le istanze all'VPCinterno di. Un AWS:::EC2: EgressOnlyInternetGateway viene utilizzato per creare un gateway Internet solo in uscita per consentire la IPv6 comunicazione del traffico in uscita dalle istanze all'interno di, impedendo al contempo il VPC traffico in entrata. Viene specificata una risorsa AWS:EC2: :Route per creare un IPv6 percorso nella tabella delle rotte che indirizza tutto il traffico in uscita () verso il gateway Internet di sola uscitaIPv6. ::/0

Per ulteriori informazioni sui gateway Internet solo in uscita, consulta Abilitare il traffico in uscita utilizzando un gateway Internet solo in uscita. IPv6

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"

ENIFrammenti di modello di interfaccia di rete elastica ()

Crea un'EC2istanza Amazon con interfacce di rete elastiche collegate () ENIs

Lo snippet di esempio seguente crea un'EC2istanza Amazon utilizzando una AWS::EC2::Instancerisorsa nell'Amazon VPC e nella sottorete specificati. Collega due interfacce di rete (ENIs) all'istanza, associa gli indirizzi IP elastici alle istanze tramite l'interfaccia allegata ENIs e configura il gruppo di sicurezza e l'accesso. SSH HTTP I dati utente vengono forniti all'istanza come parte della configurazione di avvio al momento della creazione dell'istanza. I dati utente includono uno script codificato in formato base64 per garantire che venga passato all'istanza. All'avvio dell'istanza, lo script viene eseguito automaticamente come parte del processo di bootstrap. Installaec2-net-utils, configura le interfacce di rete e avvia il servizio. HTTP

Per determinare l'Amazon Machine Image (AMI) appropriata in base alla regione selezionata, lo snippet utilizza una Fn::FindInMap funzione che cerca i valori in una RegionMap mappatura. Questa mappatura deve essere definita nel modello più grande. Le due interfacce di rete vengono create utilizzando risorse. AWS::EC2::NetworkInterface Gli indirizzi IP elastici vengono specificati utilizzando AWS::EC2::EIPle risorse allocate al vpc dominio. Questi indirizzi IP elastici sono associati alle interfacce di rete che utilizzano AWS::EC2::EIPAssociationrisorse.

La sezione Outputs definisce i valori o le risorse a cui si desidera accedere dopo la creazione dello stack. In questo frammento, l'output definito èInstancePublicIp, che rappresenta l'indirizzo IP pubblico dell'EC2istanza creata dallo stack. È possibile recuperare questo output nella scheda Output della AWS CloudFormation console o utilizzando il comando describe-stacks.

Per ulteriori informazioni sulle interfacce di rete elastiche, consulta Interfacce di rete Elastiche.

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