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 les instances Amazon EC2 avec CloudFormation
Les extraits suivants montrent comment configurer les instances Amazon EC2 à l'aide d' CloudFormation.
Catégories d'extraits
Configurations générales d'Amazon EC2
Les extraits suivants illustrent les configurations générales pour les instances Amazon EC2 utilisant CloudFormation.
Exemples d'extraits
Créer une instance Amazon EC2 dans une zone de disponibilité donnée
L'extrait suivant crée une instance Amazon EC2 dans la zone de disponibilité spécifiée à l'aide d'une ressource. AWS::EC2::Instance Le code d'une zone de disponibilité représente son code de région suivi d'un identifiant à lettre. Vous pouvez lancer une instance dans une seule zone de disponibilité.
JSON
"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: AvailabilityZone:aa-example-1aImageId:ami-1234567890abcdef0
Configurer une instance Amazon EC2 balisée avec un volume EBS et des données utilisateur
L'extrait suivant crée une instance Amazon EC2 avec une balise, un volume EBS et des données utilisateur. Il utilise une AWS::EC2::Instanceressource. Dans le même modèle, vous devez définir une AWS::EC2::SecurityGroupressource, une AWS::SNS::Topicressource et une AWS::EC2::Volumeressource. Le KeyName doit être défini dans la section du modèle Parameters.
Les balises peuvent vous aider à classer les AWS ressources en fonction de vos préférences, par exemple par objectif, propriétaire ou environnement. Les données utilisateur permettent de fournir des scripts ou des données personnalisés à une instance lors du lancement. Ces données facilitent l'automatisation des tâches, la configuration logicielle, l'installation de packages et d'autres actions sur une instance lors de l'initialisation.
Pour plus d’informations sur le marquage de vos ressources, consultez la section Marquer vos ressources Amazon EC2 dans le Guide de l’utilisateur Amazon EC2.
Pour plus d’informations sur les données utilisateur, consultez la section Utiliser les métadonnées d’instance pour gérer votre instance EC2 dans le Guide de l’utilisateur Amazon EC2.
JSON
"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "KeyName": { "Ref": "KeyName" }, "SecurityGroups": [ { "Ref": "Ec2SecurityGroup" } ], "UserData": { "Fn::Base64": { "Fn::Join": [ ":", [ "PORT=80", "TOPIC=", { "Ref": "MySNSTopic" } ] ] } }, "InstanceType": "aa.size", "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0", "Volumes": [ { "VolumeId": { "Ref": "MyVolumeResource" }, "Device": "/dev/sdk" } ], "Tags": [ { "Key": "Name", "Value": "MyTag" } ] } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: KeyName: !Ref KeyName SecurityGroups: - !Ref Ec2SecurityGroup UserData: Fn::Base64: Fn::Join: - ":" - - "PORT=80" - "TOPIC=" - !Ref MySNSTopic InstanceType:aa.sizeAvailabilityZone:aa-example-1aImageId:ami-1234567890abcdef0Volumes: - VolumeId: !Ref MyVolumeResource Device: "/dev/sdk" Tags: - Key: Name Value: MyTag
Définir le nom de la table DynamoDB dans les données utilisateur pour le lancement de l'instance Amazon EC2
L'extrait suivant crée une instance Amazon EC2 et définit un nom de table DynamoDB dans les données utilisateur à transmettre à l'instance lors du lancement. Il utilise une AWS::EC2::Instanceressource. Vous pouvez définir des paramètres ou des valeurs dynamiques dans les données utilisateur pour transmettre une instance EC2 au lancement.
Pour plus d’informations sur les données utilisateur, consultez la section Utiliser les métadonnées d’instance pour gérer votre instance EC2 dans le Guide de l’utilisateur Amazon EC2.
JSON
"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "UserData": { "Fn::Base64": { "Fn::Join": [ "", [ "TableName=", { "Ref": "DynamoDBTableName" } ] ] } }, "AvailabilityZone": "aa-example-1a", "ImageId": "ami-1234567890abcdef0" } }
YAML
Ec2Instance: Type: AWS::EC2::Instance Properties: UserData: Fn::Base64: Fn::Join: - '' - - 'TableName=' - Ref: DynamoDBTableName AvailabilityZone:aa-example-1aImageId:ami-1234567890abcdef0
Créer un volume Amazon EBS avec DeletionPolicy
Les extraits suivants créent un volume Amazon EBS à l'aide d'une ressource Amazon EC2. AWS::EC2::Volume Vous pouvez utiliser les propriétés Size or SnapshotID pour définir le volume, mais pas les deux. Un attribut DeletionPolicy est défini pour créer un instantané du volume lorsque la pile est supprimée.
Pour plus d'informations sur l'attribut DeletionPolicy, consultez Attribut DeletionPolicy.
Pour plus d'informations sur la création d'es volumes Amazon EBS, consultez Créer un volume Amazon EBS.
JSON
Cet extrait crée un volume Amazon EBS d'une taille spécifiée. La taille est fixée à 10, mais vous pouvez l'ajuster selon vos besoins. La AWS::EC2::Volumeressource vous permet de spécifier la taille ou un identifiant de capture d'écran, mais pas les deux.
"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "Size": "10", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }
Cet extrait crée un volume Amazon EBS à l'aide d'un ID d'instantané fourni. La AWS::EC2::Volumeressource vous permet de spécifier la taille ou un identifiant de capture d'écran, mais pas les deux.
"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "SnapshotId" : "snap-1234567890abcdef0", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }
YAML
Cet extrait crée un volume Amazon EBS d'une taille spécifiée. La taille est fixée à 10, mais vous pouvez l'ajuster selon vos besoins. La AWS::EC2::Volumeressource vous permet de spécifier la taille ou un identifiant de capture d'écran, mais pas les deux.
MyEBSVolume: Type: AWS::EC2::Volume Properties: Size:10AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot
Cet extrait crée un volume Amazon EBS à l'aide d'un ID d'instantané fourni. La AWS::EC2::Volumeressource vous permet de spécifier la taille ou un identifiant de capture d'écran, mais pas les deux.
MyEBSVolume: Type: AWS::EC2::Volume Properties: SnapshotId:snap-1234567890abcdef0AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot
Spécifier les mappages de périphérique de stockage en mode bloc pour une instance
Un mappage de périphérique de stockage en mode bloc définit les périphériques de stockage en mode bloc qui comprennent les volumes de stockage d'instance et volumes EBS devant être attachés à l'instance. Vous pouvez spécifier un mappage de périphérique de stockage en mode bloc lors de la création d'une AMI, afin que le mappage soit utilisé par toutes les instances lancées à partir de l'AMI. Vous pouvez également spécifier un mappage de périphérique de stockage en mode bloc lorsque vous lancez une instance, afin que son mappage remplace celui spécifié dans l'AMI à partir de laquelle vous avez lancé l'instance.
Vous pouvez utiliser les extraits de modèle suivants pour spécifier les mappages de périphériques par blocs pour vos volumes EBS ou de stockage d'instance à l'aide de la BlockDeviceMappings propriété d'une ressource. AWS::EC2::Instance
Pour plus d’informations sur les mappages de périphériques de stockage en mode bloc, consultez la section Mappages de périphériques de stockage en mode bloc pour les volumes sur les instances Amazon EC2 dans le Guide de l’utilisateur Amazon EC2.
Scénarios
Spécifier les mappages de périphériques de stockage en mode bloc pour deux volumes EBS
JSON
"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}", "KeyName": { "Ref": "KeyName" }, "InstanceType": { "Ref": "InstanceType" }, "SecurityGroups": [{ "Ref": "Ec2SecurityGroup" }], "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "VolumeSize": "50" } }, { "DeviceName": "/dev/sdm", "Ebs": { "VolumeSize": "100" } } ] } } }
YAML
EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}' KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName:/dev/sda1Ebs: VolumeSize:50- DeviceName:/dev/sdmEbs: VolumeSize:100
Spécifier le mappage de périphérique de stockage en mode bloc d'un volume de stockage d'instances
JSON
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}", "KeyName" : { "Ref" : "KeyName" }, "InstanceType": { "Ref": "InstanceType" }, "SecurityGroups" : [{ "Ref" : "Ec2SecurityGroup" }], "BlockDeviceMappings" : [ { "DeviceName" : "/dev/sdc", "VirtualName" : "ephemeral0" } ] } }
YAML
EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2}}' KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName:/dev/sdcVirtualName:ephemeral0