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 von Amazon-EC2-Instances mit AWS CloudFormation
Die folgenden Ausschnitte zeigen, wie Sie Amazon-EC2-Instances mit AWS CloudFormation konfigurieren.
Kategorien von Ausschnitten
Allgemeine Amazon-EC2-Konfigurationen
Die folgenden Ausschnitte zeigen allgemeine Konfigurationen für Amazon-EC2-Instances mit AWS CloudFormation.
Beispielausschnitte
- Erstellen einer Amazon-EC2-Instance in einer angegebenen Availability Zone
- Konfigurieren einer getaggten Amazon-EC2-Instance mit einem EBS-Volume und Benutzerdaten
- Definieren des DynamoDB-Tabellennamens in den Benutzerdaten für den Start einer Amazon-EC2-Instance
- Erstellen eines Amazon-EBS-Volumes mit DeletionPolicy
Erstellen einer Amazon-EC2-Instance in einer angegebenen Availability Zone
Das folgende Snippet erstellt mithilfe einer Ressource eine Amazon EC2 EC2-Instance in der angegebenen Availability Zone. AWS::EC2::Instance 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
Konfigurieren einer getaggten Amazon-EC2-Instance mit einem EBS-Volume und Benutzerdaten
Mit dem folgenden Ausschnitt wird eine Amazon-EC2-Instance mit einem Tag, einem EBS-Volume und Benutzerdaten erstellt. Es verwendet eine Ressource. AWS::EC2::Instance In derselben Vorlage müssen Sie eine AWS::EC2::SecurityGroupRessource, eine AWS::SNS::TopicRessource und eine AWS::EC2::VolumeRessource 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 von Ressourcen finden Sie unter Markieren von Amazon-EC2-Ressourcen mit Tags.
Informationen zu Benutzerdaten finden Sie unter Instance-Metadaten und -Benutzerdaten.
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 des DynamoDB-Tabellennamens in den Benutzerdaten für den Start einer Amazon-EC2-Instance
Mit dem folgenden Ausschnitt wird eine Amazon-EC2-Instance erstellt und in den Benutzerdaten ein DynamoDB-Tabellenname definiert, der beim Start an die Instance übergeben wird. Es verwendet eine AWS::EC2::InstanceRessource. Sie können Parameter oder dynamische Werte in den Benutzerdaten definieren, um sie beim Start an eine EC2-Instance zu übergeben.
Weitere Informationen zu Benutzerdaten finden Sie unter Instance-Metadaten und -Benutzerdaten.
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 eines Amazon-EBS-Volumes mit DeletionPolicy
Die folgenden Codefragmente erstellen ein Amazon EBS-Volume mithilfe einer Amazon EC2 EC2-Ressource. AWS::EC2::Volume 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 Amazon-EBS-Volumes finden Sie unter Erstellen eines Amazon-EBS-Volumes.
JSON
Mit diesem Ausschnitt wird ein Amazon-EBS-Volume mit einer angegebenen Größe erstellt. Die Größe ist auf 10 eingestellt, Sie können sie jedoch nach Bedarf anpassen. Mit der AWS::EC2::VolumeRessource 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" }
Mit diesem Ausschnitt wird ein Amazon-EBS-Volume mit einer angegebenen Snapshot-ID erstellt. Mit der AWS::EC2::VolumeRessource können Sie entweder die Größe oder eine Snapshot-ID angeben, jedoch nicht beides.
"MyEBSVolume": { "Type": "AWS::EC2::Volume", "Properties": { "SnapshotId" : "
snap-1234567890abcdef0
", "AvailabilityZone": { "Ref": "AvailabilityZone" } }, "DeletionPolicy": "Snapshot" }
YAML
Mit diesem Ausschnitt wird ein Amazon-EBS-Volume mit einer angegebenen Größe erstellt. Die Größe ist auf 10 eingestellt, Sie können sie jedoch nach Bedarf anpassen. Mit der AWS::EC2::VolumeRessource können Sie entweder die Größe oder eine Snapshot-ID angeben, jedoch nicht beides.
MyEBSVolume: Type: AWS::EC2::Volume Properties: Size:
10
AvailabilityZone: Ref: AvailabilityZone DeletionPolicy: Snapshot
Mit diesem Ausschnitt wird ein Amazon-EBS-Volume mit einer angegebenen Snapshot-ID erstellt. Mit der AWS::EC2::VolumeRessource können Sie entweder die Größe oder eine Snapshot-ID angeben, jedoch 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ät-Zuweisung definiert die Blockgeräte (Instance-Speicher-Volumes und EBS-Volumes), die an eine Instance angefügt werden sollen. Eine Blockgerät-Zuweisung können Sie beim Erstellen eines AMI angeben, sodass die Zuweisung von allen Instances verwendet wird, die über das AMI gestartet werden. Alternativ können Sie eine Blockgerät-Zuweisung beim Starten einer Instance angeben. Diese Zuweisung gilt dann statt der im AMI angegebenen, über das die Instance gestartet wurde.
Sie können die folgenden Vorlagenausschnitte verwenden, um die Blockgerätezuordnungen für Ihre EBS- oder Instance-Speicher-Volumes mithilfe der BlockDeviceMappings
Eigenschaft einer Ressource anzugeben. AWS::EC2::Instance
Weitere Informationen zu Blockgerät-Zuweisungen finden Sie unter Blockgerät-Zuweisungen im Benutzerhandbuch von Amazon EC2.
Szenarien
Angeben der Blockgerät-Zuweisungen für zwei EBS-Volumes
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