Configurez EC2 les instances Amazon avec AWS CloudFormation - AWS CloudFormation

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 EC2 les instances Amazon avec AWS CloudFormation

Les extraits suivants montrent comment configurer les EC2 instances Amazon à l'aide de. AWS CloudFormation

EC2Configurations générales d'Amazon

Les extraits suivants illustrent les configurations générales utilisées par les EC2 instances Amazon. AWS CloudFormation

Création d'une EC2 instance Amazon dans une zone de disponibilité spécifiée

L'extrait suivant crée une EC2 instance Amazon 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-1a ImageId: ami-1234567890abcdef0

Configurer une EC2 instance Amazon balisée avec un EBS volume et des données utilisateur

L'extrait suivant crée une EC2 instance Amazon avec une balise, un EBS volume et des données utilisateur. Il utilise une ressource AWS: : EC2 : :Instance. Dans le même modèle, vous devez définir une ressource AWS: EC2 : :, une SecurityGroup ressource AWS: SNS : :Topic et une ressource AWS: : EC2 : :Volume. 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 balisage de vos ressources, consultez la section Marquer vos EC2 ressources Amazon.

Pour plus d'informations sur les données utilisateur, consultez Métadonnées d'instance et données utilisateur (français non garanti).

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.size AvailabilityZone: aa-example-1a ImageId: ami-1234567890abcdef0 Volumes: - 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 d'une instance Amazon EC2

L'extrait suivant crée une EC2 instance Amazon et définit un nom de table DynamoDB dans les données utilisateur à transmettre à l'instance lors du lancement. Il utilise une ressource AWS: : EC2 : :Instance. Vous pouvez définir des paramètres ou des valeurs dynamiques dans les données utilisateur pour transmettre une EC2 instance au lancement.

Pour plus d'informations sur les données utilisateur, consultez Métadonnées d'instance et données utilisateur (français non garanti).

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-1a ImageId: ami-1234567890abcdef0

Créez un EBS volume Amazon avec DeletionPolicy

Les extraits suivants créent un EBS volume Amazon à 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 de EBS volumes Amazon, consultez Créer un EBS volume Amazon.

JSON

Cet extrait crée un EBS volume Amazon d'une taille spécifiée. La taille est fixée à 10, mais vous pouvez l'ajuster selon vos besoins. La ressource AWS: : EC2 : :Volume vous permet de spécifier la taille ou l'ID d'un instantané, mais pas les deux.

"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "Size": "10", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }

Cet extrait crée un EBS volume Amazon à l'aide d'un identifiant de capture fourni. La ressource AWS: : EC2 : :Volume vous permet de spécifier la taille ou l'ID d'un instantané, mais pas les deux.

"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "SnapshotId" : "snap-1234567890abcdef0", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }

YAML

Cet extrait crée un EBS volume Amazon d'une taille spécifiée. La taille est fixée à 10, mais vous pouvez l'ajuster selon vos besoins. La ressource AWS: : EC2 : :Volume vous permet de spécifier la taille ou l'ID d'un instantané, mais pas les deux.

MyEBSVolume: Type: AWS::EC2::Volume Properties: Size: 10 AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot

Cet extrait crée un EBS volume Amazon à l'aide d'un identifiant de capture fourni. La ressource AWS: : EC2 : :Volume vous permet de spécifier la taille ou l'ID d'un instantané, mais pas les deux.

MyEBSVolume: Type: AWS::EC2::Volume Properties: SnapshotId: snap-1234567890abcdef0 AvailabilityZone: 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ériques en mode bloc définit les périphériques en mode bloc, y compris les volumes de stockage d'instance et les EBS volumes, à associer à une instance. Vous pouvez spécifier un mappage de périphériques en mode bloc lors de la création d'un AMI afin que le mappage soit utilisé par toutes les instances lancées depuis leAMI. Vous pouvez également spécifier un mappage de périphériques en mode bloc lorsque vous lancez une instance, afin que le mappage remplace celui spécifié dans le mappage à AMI partir duquel l'instance a été lancée.

Vous pouvez utiliser les extraits de modèle suivants pour spécifier les mappages de périphériques par blocs pour vos volumes de stockage EBS ou ceux de votre instance à l'aide de la BlockDeviceMappings propriété d'une ressource AWS: : EC2 : :Instance.

Pour plus d'informations sur les mappages d'appareils en mode bloc, consultez la section Mappages d'appareils en mode bloc dans le guide de EC2l'utilisateur Amazon.

Spécifiez les mappages de périphériques en mode bloc pour deux volumes EBS

JSON

"Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "ImageId": { "Fn::FindInMap": [ "AWSRegionArch2AMI", { "Ref": "AWS::Region" }, { "Fn::FindInMap": [ "AWSInstanceType2Arch", { "Ref": "InstanceType" }, "Arch" ] } ] }, "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: !FindInMap [AWSRegionArch2AMI, !Ref 'AWS::Region', !FindInMap [AWSInstanceType2Arch, !Ref InstanceType, Arch]] KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName: /dev/sda1 Ebs: VolumeSize: 50 - DeviceName: /dev/sdm Ebs: 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" : { "Fn::FindInMap" : [ "AWSRegionArch2AMI", { "Ref" : "AWS::Region" }, "HVM64" ]}, "KeyName" : { "Ref" : "KeyName" }, "InstanceType": { "Ref": "InstanceType" }, "SecurityGroups" : [{ "Ref" : "Ec2SecurityGroup" }], "BlockDeviceMappings" : [ { "DeviceName" : "/dev/sdc", "VirtualName" : "ephemeral0" } ] } }

YAML

EC2Instance: Type: AWS::EC2::Instance Properties: ImageId: !FindInMap - AWSRegionArch2AMI - !Ref AWS::Region - HVM64 KeyName: !Ref KeyName InstanceType: !Ref InstanceType SecurityGroups: - !Ref Ec2SecurityGroup BlockDeviceMappings: - DeviceName: /dev/sdc VirtualName: ephemeral0