Configura le EC2 istanze 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 le EC2 istanze Amazon con AWS CloudFormation

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

EC2Configurazioni generali di Amazon

I seguenti frammenti illustrano le configurazioni generali per le istanze Amazon utilizzando EC2 AWS CloudFormation.

Crea un'EC2istanza Amazon in una zona di disponibilità specificata

Il seguente frammento crea un'EC2istanza Amazon 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

Configura un'EC2istanza Amazon con tag con un EBS volume e dati utente

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

I tag possono aiutarti a classificare AWS risorse in base alle preferenze dell'utente, 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 su come etichettare le tue risorse, consulta Etichettare le tue EC2 risorse Amazon.

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

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

Il seguente frammento crea un'EC2istanza Amazon e definisce un nome di tabella DynamoDB nei dati utente da passare all'istanza all'avvio. Utilizza una risorsa AWS::: EC2 :Instance. È possibile definire parametri o valori dinamici nei dati utente per passare un'EC2istanza all'avvio.

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

Crea un EBS volume Amazon con DeletionPolicy

I seguenti frammenti creano un EBS volume Amazon 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 EBS volumi Amazon, consulta Creare un EBS volume Amazon.

JSON

Questo frammento crea un EBS volume Amazon con una dimensione specificata. La dimensione è impostata su 10, ma è possibile regolarla in base alle esigenze. La risorsa AWS::EC2: :Volume 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 EBS volume Amazon utilizzando un ID snapshot fornito. La risorsa AWS::EC2: :Volume consente di specificare la dimensione o l'ID di uno snapshot, ma non entrambi.

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

YAML

Questo frammento crea un EBS volume Amazon con una dimensione specificata. La dimensione è impostata su 10, ma è possibile regolarla in base alle esigenze. La risorsa AWS::EC2: :Volume 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 EBS volume Amazon utilizzando un ID snapshot fornito. La risorsa AWS::EC2: :Volume consente di specificare la dimensione o l'ID di uno snapshot, 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, che includono i volumi e EBS i volumi dell'Instance Store, da collegare a un'istanza. È possibile specificare una mappatura dei dispositivi a blocchi durante la creazione di una mappatura AMI in modo che la mappatura venga utilizzata da tutte le istanze avviate da. AMI In alternativa, è possibile specificare una mappatura dei dispositivi a blocchi all'avvio di un'istanza, in modo che la mappatura abbia la precedenza su quella specificata nell'istanza da cui è stata avviata l'AMIistanza.

È possibile utilizzare i seguenti frammenti di modello per specificare le mappature dei dispositivi a blocchi per i volumi dell'archivio EBS o dell'istanza utilizzando la BlockDeviceMappings proprietà di una risorsa::: :Instance. AWS EC2

Per ulteriori informazioni sulle mappature dei dispositivi a blocchi, consulta Bloccare le mappature dei dispositivi nella Amazon User Guide. EC2

Specificate 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