Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurez VPC les ressources Amazon avec AWS CloudFormation
Cette section fournit des exemples de configuration des VPC ressources Amazon à l'aide de AWS CloudFormation. VPCsvous permettent de créer un réseau virtuel à l'intérieur AWS, et ces extraits montrent comment configurer certains aspects de pour répondre VPCs à vos exigences réseau.
Exemples d'extraits
Activez l'accès Internet IPv6 de sortie uniquement dans un VPC
Une passerelle Internet de sortie uniquement permet aux instances d'accéder VPC à Internet et empêche les ressources présentes sur Internet de communiquer avec les instances. L'extrait de code suivant permet un accès Internet de IPv6 sortie uniquement depuis un. VPC Il crée un VPC avec une plage d'IPv4adresses 10.0.0/16
utilisant une VPC ressource AWSEC2: : :. Une table de routage est associée à cette VPC ressource à l'aide d'une RouteTable ressource AWSEC2: : : :. La table de routage gère les itinéraires pour les instances au sein deVPC. Un AWS: : EC2 : EgressOnlyInternetGateway est utilisé pour créer une passerelle Internet de sortie uniquement afin de permettre la IPv6 communication pour le trafic sortant provenant d'instances situées au sein duVPC, tout en empêchant le trafic entrant. Une ressource AWS: EC2 : :Route est spécifiée pour créer une IPv6 route dans la table de routage qui dirige tout le IPv6 trafic sortant (::/0
) vers la passerelle Internet de sortie uniquement.
Pour plus d'informations sur les passerelles Internet de sortie uniquement, voir Activer le IPv6 trafic sortant à l'aide d'une passerelle Internet de sortie uniquement.
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"
Extraits du modèle Elastic Network Interface (ENI)
Création d'une EC2 instance Amazon avec des interfaces réseau élastiques associées (ENIs)
L'extrait d'exemple suivant crée une EC2 instance Amazon à l'aide d'une AWS::EC2::Instanceressource dans le sous-réseau Amazon VPC et le sous-réseau spécifiés. Il associe deux interfaces réseau (ENIs) à l'instance, associe des adresses IP élastiques aux instances par le biais de l'interface attachée ENIs et configure le groupe de sécurité pour l'HTTPaccès SSH et l'accès. Les données utilisateur sont fournies à l'instance dans le cadre de la configuration de lancement lors de la création de l'instance. Les données utilisateur incluent un script codé dans un format base64
afin de garantir leur transmission à l'instance. Lorsque l'instance est lancée, le script s'exécute automatiquement dans le cadre du processus de démarrage. Il installeec2-net-utils
, configure les interfaces réseau et démarre le HTTP service.
Pour déterminer l'Amazon Machine Image (AMI) appropriée en fonction de la région sélectionnée, l'extrait utilise une Fn::FindInMap
fonction qui recherche des valeurs dans un RegionMap
mappage. Ce mappage doit être défini dans le modèle plus large. Les deux interfaces réseau sont créées à l'aide de AWS::EC2::NetworkInterfaceressources. Les adresses IP élastiques sont spécifiées à l'aide AWS::EC2::EIPdes ressources allouées au vpc
domaine. Ces adresses IP élastiques sont associées aux interfaces réseau à l'aide de AWS::EC2::EIPAssociationressources.
La section Outputs
définit les valeurs ou les ressources auxquelles vous souhaitez accéder une fois que la pile est créée. Dans cet extrait, la sortie définie estInstancePublicIp
, qui représente l'adresse IP publique de l'EC2instance créée par la pile. Vous pouvez récupérer cette sortie dans l'onglet Sortie de la AWS CloudFormation console ou à l'aide de la commande describe-stacks.
Pour plus d'informations sur les interfaces réseau Elastic, consultez Interfaces réseau Elastic.
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