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
Kategorien von Ausschnitten
Allgemeine EC2 Amazon-Konfigurationen
Die folgenden Ausschnitte veranschaulichen allgemeine Konfigurationen für die Verwendung von EC2 Amazon-Instances. AWS CloudFormation
Beispielausschnitte
- Erstellen Sie eine EC2 Amazon-Instance in einer bestimmten Availability Zone
- Konfiguration einer markierten EC2 Amazon-Instance mit einem EBS Volume und Benutzerdaten
- Definieren Sie den DynamoDB-Tabellennamen in den Benutzerdaten für den Start der Amazon-Instanz EC2
- Erstellen Sie ein EBS Amazon-Volume mit DeletionPolicy
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
Szenarien
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