Konfigurieren Sie EC2 Amazon-Instances mit AWS CloudFormation - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfigurieren Sie EC2 Amazon-Instances mit AWS CloudFormation

Die folgenden Ausschnitte zeigen, wie Sie EC2 Amazon-Instances mithilfe von konfigurieren. AWS CloudFormation

Allgemeine EC2 Amazon-Konfigurationen

Die folgenden Ausschnitte veranschaulichen allgemeine Konfigurationen für die Verwendung von EC2 Amazon-Instances. AWS CloudFormation

Erstellen Sie eine EC2 Amazon-Instance in einer bestimmten Availability Zone

Der folgende Ausschnitt erstellt eine EC2 Amazon-Instance in der angegebenen Availability Zone mithilfe einer AWS::EC2: :Instance-Ressource. Der Code für eine Availability Zone ist der Regionscode gefolgt von einem Buchstaben als Bezeichner. Eine Instance können Sie in einer einzigen Availability Zone starten.

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

Konfiguration einer markierten EC2 Amazon-Instance mit einem EBS Volume und Benutzerdaten

Das folgende Snippet erstellt eine EC2 Amazon-Instance mit einem Tag, einem EBS Volume und Benutzerdaten. Es verwendet eine AWS::EC2: :Instance-Ressource. In derselben Vorlage müssen Sie eine AWS:::: SecurityGroup Ressource, eine EC2AWS::: :Topic-Ressource und eineSNS:: AWS EC2: :Volume-Ressource definieren. Der KeyName muss im Abschnitt Parameters der Vorlage definiert werden.

Mithilfe von Tags können Sie AWS Ressourcen anhand Ihrer Präferenzen kategorisieren, z. B. nach Zweck, Eigentümer oder Umgebung. Benutzerdaten ermöglichen die Bereitstellung benutzerdefinierter Skripts oder Daten für eine Instance während des Starts. Diese Daten erleichtern die Automatisierung von Aufgaben, die Softwarekonfiguration, die Paketinstallation und weitere Aktionen auf einer Instance während der Initialisierung.

Weitere Informationen zum Taggen Ihrer Ressourcen finden Sie unter Taggen Ihrer EC2 Amazon-Ressourcen.

Informationen zu Benutzerdaten finden Sie unter Verwenden von Instance-Metadaten zur Verwaltung Ihrer EC2 Instance.

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

Definieren Sie den DynamoDB-Tabellennamen in den Benutzerdaten für den Start der Amazon-Instanz EC2

Der folgende Ausschnitt erstellt eine EC2 Amazon-Instance und definiert einen DynamoDB-Tabellennamen in den Benutzerdaten, der beim Start an die Instance übergeben wird. Es verwendet eine AWS::: :Instance-Ressource EC2. Sie können Parameter oder dynamische Werte in den Benutzerdaten definieren, um eine EC2 Instanz beim Start zu übergeben.

Weitere Informationen zu Benutzerdaten finden Sie unter Verwenden von Instanz-Metadaten zur Verwaltung Ihrer EC2 Instance.

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

Erstellen Sie ein EBS Amazon-Volume mit DeletionPolicy

Die folgenden Snippets erstellen ein EBS Amazon-Volume mithilfe einer Amazon EC2 AWS::EC2: :Volume-Ressource. Sie können das Volume mit der Eigenschaft Size oder SnapshotID (aber nicht mit beiden) definieren. Ein DeletionPolicy-Attribut ist so eingestellt, dass beim Löschen des Stacks ein Snapshot des Volumes erstellt wird.

Weitere Informationen zum Attribut DeletionPolicy finden Sie unter Attribut DeletionPolicy.

Weitere Informationen zum Erstellen von EBS Amazon-Volumes finden Sie unter EBSAmazon-Volume erstellen.

JSON

Dieses Snippet erstellt ein EBS Amazon-Volume mit einer bestimmten Größe. Die Größe ist auf 10 eingestellt, Sie können sie jedoch nach Bedarf anpassen. Mit der Ressource AWS:EC2:: :Volume können Sie entweder die Größe oder eine Snapshot-ID angeben, aber nicht beides.

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

Dieses Snippet erstellt ein EBS Amazon-Volume unter Verwendung einer bereitgestellten Snapshot-ID. Mit der Ressource AWS:EC2: :Volume können Sie entweder die Größe oder eine Snapshot-ID angeben, aber nicht beides.

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

YAML

Dieses Snippet erstellt ein EBS Amazon-Volume mit einer bestimmten Größe. Die Größe ist auf 10 eingestellt, Sie können sie jedoch nach Bedarf anpassen. Mit der Ressource AWS:EC2:: :Volume können Sie entweder die Größe oder eine Snapshot-ID angeben, aber nicht beides.

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

Dieses Snippet erstellt ein EBS Amazon-Volume unter Verwendung einer bereitgestellten Snapshot-ID. Mit der Ressource AWS:EC2: :Volume können Sie entweder die Größe oder eine Snapshot-ID angeben, aber nicht beides.

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

Angeben der Blockgerät-Zuweisungen für eine Instance

Eine Blockgerätezuordnung definiert die Blockgeräte, einschließlich Instance-Speicher-Volumes und EBS Volumes, die an eine Instanz angehängt werden sollen. Sie können bei der Erstellung eine Blockgerätezuordnung angeben, AMI sodass die Zuordnung von allen Instances verwendet wird, die von der aus gestartet werdenAMI. Alternativ können Sie beim Starten einer Instance eine Blockgerätezuordnung angeben, sodass die Zuordnung die Zuordnung überschreibt, die in der, von der AMI aus die Instance gestartet wurde, angegeben ist.

Sie können die folgenden Vorlagenausschnitte verwenden, um die Blockgerätezuordnungen für Ihre Volumes EBS oder Instance-Speicher-Volumes mithilfe der BlockDeviceMappings Eigenschaft einer AWS::: :Instance-Ressource anzugeben. EC2

Weitere Informationen zu Blockgerätezuordnungen finden Sie unter Blockieren von Gerätezuordnungen im Amazon-Benutzerhandbuch. EC2

Geben Sie die Blockgerätezuordnungen für zwei Volumes an 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

Anzeigen der Blockgerät-Zuweisung für ein Instance-Speicher-Volume

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