Configurazione delle istanze Amazon EC2 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à.

Configurazione delle istanze Amazon EC2 con AWS CloudFormation

I seguenti frammenti mostrano come configurare le istanze Amazon EC2 utilizzando AWS CloudFormation.

Configurazioni generali di Amazon EC2

I seguenti frammenti mostrano le configurazioni generali per le istanze Amazon EC2 che utilizzano AWS CloudFormation.

Creazione di un'istanza Amazon EC2 in una zona di disponibilità specificata

Il seguente frammento crea un'istanza Amazon EC2 nella zona di disponibilità specificata utilizzando una risorsa. AWS::EC2::Instance Il codice per la zona di disponibilità è il codice della Regione seguito da un identificatore con una lettera. Puoi avviare un'istanza in una singola zona di 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

Configurazione di un'istanza Amazon EC2 dotata di tag con un volume EBS e dati utente

Il seguente frammento crea un'istanza Amazon EC2 con un tag, un volume EBS e dati utente. Utilizza una risorsa. AWS::EC2::Instance Nello stesso modello, è necessario definire una AWS::EC2::SecurityGrouprisorsa, una AWS::SNS::Topicrisorsa e una AWS::EC2::Volumerisorsa. Il KeyName deve essere definito nella sezione Parameters del modello.

I tag possono aiutarti a classificare AWS le risorse in base alle tue preferenze, ad esempio per scopo, proprietario o ambiente. I dati utente consentono di fornire script o dati personalizzati a un'istanza durante il lancio. Questi dati aiutano ad automatizzare le attività, configurare il software, installare i pacchetti e compiere altre azioni su un'istanza durante l'inizializzazione.

Per ulteriori informazioni sul tagging delle risorse, consulta Utilizzo dei tag per le risorse Amazon EC2.

Per informazioni sui dati utente, consulta Metadati dell'istanza e dati utente.

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

Definizione del nome della tabella DynamoDB nei dati utente per il lancio dell'istanza Amazon EC2

Il seguente frammento crea un'istanza Amazon EC2 e definisce un nome di tabella DynamoDB nei dati utente da passare all'istanza all'avvio. Utilizza una AWS::EC2::Instancerisorsa. Puoi definire parametri o valori dinamici nei dati utente per passare un'istanza EC2 al momento del lancio.

Per ulteriori informazioni sui dati utente, consulta Metadati dell'istanza e dati utente.

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

Creazione di un volume Amazon EBS con DeletionPolicy

I seguenti frammenti creano un volume Amazon EBS utilizzando una risorsa Amazon EC2. AWS::EC2::Volume Puoi utilizzare le proprietà Size o SnapshotID per definire il volume, ma non entrambe. Un attributo DeletionPolicy viene impostato per creare uno snapshot del volume quando lo stack viene eliminato.

Per ulteriori informazioni sull'attributo DeletionPolicy, consulta l'attributo DeletionPolicy.

Per ulteriori informazioni sulla creazione di volumi Amazon EBS, consulta Creazione di un volume Amazon EBS.

JSON

Questo frammento crea un volume Amazon EBS con una dimensione specificata. La dimensione è impostata su 10, ma è possibile regolarla in base alle esigenze. La AWS::EC2::Volumerisorsa consente di specificare la dimensione o l'ID di uno snapshot, ma non entrambi.

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

Questo frammento crea un volume Amazon EBS utilizzando un ID snapshot fornito. La AWS::EC2::Volumerisorsa consente di specificare la dimensione o l'ID di un'istantanea, ma non entrambi.

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

YAML

Questo frammento crea un volume Amazon EBS con una dimensione specificata. La dimensione è impostata su 10, ma è possibile regolarla in base alle esigenze. La AWS::EC2::Volumerisorsa consente di specificare la dimensione o l'ID di un'istantanea, ma non entrambi.

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

Questo frammento crea un volume Amazon EBS utilizzando un ID snapshot fornito. La AWS::EC2::Volumerisorsa consente di specificare la dimensione o l'ID di un'istantanea, ma non entrambi.

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

Specifica della mappatura dei dispositivi a blocchi per un'istanza

Una mappatura dei dispositivi a blocchi definisce i dispositivi a blocchi, inclusi i volumi di archivio dell'istanza e i volumi EBS, da collegare a un'istanza. Puoi specificare una mappatura dei dispositivi a blocchi quando crei un'AMI in modo che la mappatura venga utilizzata da tutte le istanze avviate dall'AMI. In alternativa, puoi specificare una mappatura dei dispositivi a blocchi quando avvii un'istanza, in modo che la mappatura sostituisca quella specificata nell'AMI da cui è stata avviata l'istanza.

Puoi utilizzare i seguenti frammenti di modello per specificare le mappature dei dispositivi a blocchi per i tuoi volumi EBS o Instance Store utilizzando la proprietà di una risorsa. BlockDeviceMappings AWS::EC2::Instance

Per ulteriori informazioni sulle mappature dei dispositivi a blocchi, consulta Mappatura dei dispositivi a blocchi nella Guida per l'utente di Amazon EC2.

Specifica le mappature dei dispositivi a blocchi per due volumi 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

Specifica la mappatura dei dispositivi a blocchi per un volume di archivio dell'istanza

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