View a markdown version of this page

Beispiele für die Erstellung und Verwaltung von Startvorlagen mit dem AWS CLI - Amazon EC2 Auto Scaling

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.

Beispiele für die Erstellung und Verwaltung von Startvorlagen mit dem AWS CLI

Sie können Startvorlagen mit den SDKs AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder verwalten. In diesem Abschnitt finden Sie Beispiele für die Erstellung und Verwaltung von Startvorlagen für Amazon EC2 Auto Scaling aus dem AWS CLI.

Beispielverwendung

{ "LaunchTemplateName": "my-template-for-auto-scaling", "VersionDescription": "test description", "LaunchTemplateData": { "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "SecurityGroupIds": [ "sg-903004f88example" ], "KeyName": "MyKeyPair", "Monitoring": { "Enabled": true }, "Placement": { "Tenancy": "dedicated" }, "CreditSpecification": { "CpuCredits": "unlimited" }, "MetadataOptions": { "HttpTokens": "required", "HttpPutResponseHopLimit": 1, "HttpEndpoint": "enabled" } } }

Erstellen einer grundlegenden Startvorlage

Um eine grundlegende Startvorlage zu erstellen, verwenden Sie den create-launch-template-Befehl wie folgt, mit diesen Änderungen:

  • Ersetzen Sie ami-04d5cc9b88example mit der ID des AMI, von dem aus die Instances gestartet werden sollen.

  • Ersetzen Sie t2.micro mit einem Instance-Typ, der kompatibel mit dem angegebenen AMI ist.

In diesem Beispiel wird eine Startvorlage mit dem Namen my-template-for-auto-scaling erstellt. Wenn die mit dieser Einführungsvorlage erstellten Instances in einer Standard-VPC gestartet werden, erhalten sie standardmäßig eine öffentliche IP-Adresse. Wenn die Instances in einer nicht standardmäßigen VPC gestartet werden, erhalten sie keine öffentliche Adresse.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Weitere Informationen zum Anführungszeichen von JSON-formatted Parametern finden Sie unter Verwenden von Anführungszeichen mit Zeichenfolgen AWS CLI im im AWS Command Line Interface Benutzerhandbuch.

Alternativ können Sie die JSON-formatted Parameter in einer Konfigurationsdatei angeben.

Im folgenden Beispiel wird eine einfache Startvorlage erstellt, die auf eine Konfigurationsdatei für Startvorlagenparameterwerte verweist.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data file://config.json

Inhalt von config.json:

{ "ImageId":"ami-04d5cc9b88example", "InstanceType":"t2.micro" }

Angeben von Tags, die Instances beim Start kennzeichnen

Im folgenden Beispiel wird Instances beim Start ein Tag hinzugefügt (z. B. purpose=webserver).

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"TagSpecifications":[{"ResourceType":"instance","Tags":[{"Key":"purpose","Value":"webserver"}]}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'
Anmerkung

Wenn Sie Instance-Tags in Ihrer Startvorlage angeben und sich dann dafür entschieden haben, die Tags Ihrer Auto-Scaling-Gruppe an ihre Instances zu übertragen, werden alle Tags zusammengeführt. Wenn derselbe Tag-Schlüssel für einen Tag in Ihrer Startvorlage und einen Tag in Ihrer Auto-Scaling-Gruppe angegeben wird, hat der Tag-Wert aus der Gruppe Vorrang.

Angeben einer IAM-Rolle, die an Instances übergeben wird

Im folgenden Beispiel wird der Name des Instance-Profils angegeben, das der IAM-Rolle zugeordnet ist, das beim Start an Instances übergeben wird. Weitere Informationen finden Sie unter IAM-Rollen für Anwendungen, die auf Amazon EC2-Instances ausgeführt werden.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"IamInstanceProfile":{"Name":"my-instance-profile"},"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Zuweisen einer öffentlichen IP-Adresse

Im folgenden create-launch-template-Beispiel wird eine Startvorlage erstellt und dafür konfiguriert, Instances, die in einer nicht standardmäßigen VPC gestartet werden, öffentliche Adressen zuzuweisen.

Anmerkung

Wenn Sie eine Netzwerkschnittstelle angeben, geben Sie einen Wert für Groups an, der den Sicherheitsgruppen der VPC, in der Ihre Auto-Scaling-Gruppe Instances starten wird, entspricht. Geben Sie die VPC-Subnetze als Eigenschaften der Auto-Scaling-Gruppe an.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"AssociatePublicIpAddress":true,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Angeben eines Benutzerdatenskripts, das Instances beim Start konfiguriert

Im folgenden Beispiel wird ein Benutzerdatenskript als base64-kodierte Zeichenfolge angegeben, die Instances beim Start konfiguriert. Der create-launch-template-Befehl benötigt base64-verschlüsselte Benutzerdaten.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"UserData":"IyEvYmluL2Jhc...","ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Angeben einer Blockgerät-Zuweisung für ein AMI

Im folgenden create-launch-template-Befehl wird eine Startvorlage mit einer Blockgeräte-Zuweisung erstellt: ein 22-Gigabyte-EBS-Volume, das /dev/xvdcz zugeordnet ist. Das Volume /dev/xvdcz verwendet den Volume-Typ General Purpose SSD (gp2) und wird beim Beenden der Instance, an die es angehängt ist, gelöscht.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"BlockDeviceMappings":[{"DeviceName":"/dev/xvdcz","Ebs":{"VolumeSize":22,"VolumeType":"gp2","DeleteOnTermination":true}}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Festlegen von Dedicated Hosts zur Bereitstellung von Softwarelizenzen externer Anbieter

Wenn Sie eine Host-Tenancy angeben, können Sie eine Host-Ressourcengruppe und eine License Manager-Konfiguration angeben, um berechtigte Softwarelizenzen von externen Anbietern bereitzustellen. Anschließend können Sie die Lizenzen auf EC2-Instances verwenden, indem Sie den folgenden create-launch-template-Befehl verwenden.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"Placement":{"Tenancy":"host","HostResourceGroupArn":"arn"},"LicenseSpecifications":[{"LicenseConfigurationArn":"arn"}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Angeben einer vorhandenen Netzwerkschnittstelle

Das folgende create-launch-template-Beispiel konfiguriert die primäre Netzwerkschnittstelle so, dass eine vorhandene Netzwerkschnittstelle verwendet wird.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"NetworkInterfaceId":"eni-b9a5ac93","DeleteOnTermination":false}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Erstellen mehrerer Netzwerkschnittstellen

Das folgende create-launch-template-Beispiel fügt eine sekundäre Netzwerkschnittstelle hinzu. Die primäre Netzwerkschnittstelle hat einen Geräteindex von 0, und die sekundäre Netzwerkschnittstelle hat einen Geräteindex von 1.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"DeviceIndex":0,"Groups":["sg-903004f88example"],"DeleteOnTermination":true},{"DeviceIndex":1,"Groups":["sg-903004f88example"],"DeleteOnTermination":true}],"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro"}'

Wenn Sie einen Instance-Typ verwenden, der mehrere Netzwerkkarten und Elastic Fabric Adapter (EFAs) unterstützt, können Sie einer sekundären Netzwerkkarte eine sekundäre Schnittstelle hinzufügen und EFA mithilfe des folgenden create-launch-template-Befehls aktivieren. Weitere Informationen finden Sie unter Hinzufügen einer EFA zu einer Startvorlage im Amazon EC2 EC2-Benutzerhandbuch.

aws ec2 create-launch-template --launch-template-name my-template-for-auto-scaling --version-description version1 \ --launch-template-data '{"NetworkInterfaces":[{"NetworkCardIndex":0,"DeviceIndex":0,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true},{"NetworkCardIndex":1,"DeviceIndex":1,"Groups":["sg-7c2270198example"],"InterfaceType":"efa","DeleteOnTermination":true}],"ImageId":"ami-09d95fab7fexample","InstanceType":"p4d.24xlarge"}'
Warnung

Der Instance-Typ p4d.24xlarge verursacht höhere Kosten als die anderen Beispiele in diesem Abschnitt. Weitere Informationen zu Preisen für P4d-Instances erhalten Sie unter Preise für Amazon-EC2-P4d-Instances.

Anmerkung

Das Anfügen mehrerer Netzwerkschnittstellen aus demselben Subnetz an eine Instance kann asymmetrisches Routing einführen, insbesondere bei Instances, die eine Linux-Variante verwenden, die nicht von Amazon stammt. Wenn Sie diese Art von Konfiguration benötigen, müssen Sie die sekundäre Netzwerkschnittstelle innerhalb des Betriebssystems konfigurieren. Ein Beispiel finden Sie unter Wie kann ich dafür sorgen, dass meine sekundäre Netzwerkschnittstelle in meiner Ubuntu EC2-Instance funktioniert? im AWS Knowledge Center.

Verwalten Ihrer Startvorlagen

Das AWS CLI beinhaltet mehrere andere Befehle, die Ihnen bei der Verwaltung Ihrer Startvorlagen helfen.

Auflisten und Beschreiben Ihrer Startvorlagen

Sie können zwei AWS CLI Befehle verwenden, um Informationen zu Ihren Startvorlagen abzurufen: describe-launch-templates und describe-launch-template-versions.

Mit dem describe-launch-templates-Befehl können Sie eine Liste einer von Ihnen erstellten Startvorlagen abrufen. Sie können eine Option verwenden, um Ergebnisse nach Namen einer Startvorlage, Zeit, Tag-Schlüssel oder einer Kombination aus Tag und Schlüssel-Wert filtern. Mit diesem Befehl werden zusammenfassende Informationen zu allen Ihren Startvorlagen zurückgegeben, einschließlich der Startvorlagenkennung, der neuesten Version und der Standardversion.

Das folgende Beispiel bietet eine Zusammenfassung der angegebenen Startvorlage.

aws ec2 describe-launch-templates --launch-template-names my-template-for-auto-scaling

Nachfolgend finden Sie eine Beispielantwort.

{ "LaunchTemplates": [ { "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "CreateTime": "2020-02-28T19:52:27.000Z", "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "DefaultVersionNumber": 1, "LatestVersionNumber": 1 } ] }

Wenn Sie nicht die --launch-template-names-Option verwenden, um die Ausgabe auf eine Startvorlage zu beschränken, werden Informationen zu allen Ihren Startvorlagen zurückgegeben.

Der folgende Befehl describe-launch-template-versions liefert Informationen zu den Versionen der angegebenen Startvorlage.

aws ec2 describe-launch-template-versions --launch-template-id lt-068f72b729example

Nachfolgend finden Sie eine Beispielantwort.

{ "LaunchTemplateVersions": [ { "VersionDescription": "version1", "LaunchTemplateId": "lt-068f72b729example", "LaunchTemplateName": "my-template-for-auto-scaling", "VersionNumber": 1, "CreatedBy": "arn:aws:iam::123456789012:user/Bob", "LaunchTemplateData": { "TagSpecifications": [ { "ResourceType": "instance", "Tags": [ { "Key": "purpose", "Value": "webserver" } ] } ], "ImageId": "ami-04d5cc9b88example", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "DeviceIndex": 0, "DeleteOnTermination": true, "Groups": [ "sg-903004f88example" ], "AssociatePublicIpAddress": true } ] }, "DefaultVersion": true, "CreateTime": "2020-02-28T19:52:27.000Z" } ] }

Erstellen einer Startvorlagenversion

Der folgende create-launch-template-version-Befehl wird eine neue Startvorlagenversion basierend auf Version 1 der Startvorlage erstellt und eine andere AMI-ID angegeben.

aws ec2 create-launch-template-version --launch-template-id lt-068f72b729example --version-description version2 \ --source-version 1 --launch-template-data "ImageId=ami-c998b6b2example"

Um die Standardversion der Startvorlage festzulegen, verwenden Sie den launch-template-Befehl.

Löschen einer Startvorlagenversion

Der folgende launch-template-versions-Befehl löscht die angegebene Startvorlagenversion.

aws ec2 delete-launch-template-versions --launch-template-id lt-068f72b729example --versions 1

Löschen einer Startvorlage

Wenn eine Startvorlage nicht mehr benötigt wird, können Sie sie mit dem folgenden launch-template-Befehl löschen. Beim Löschen einer Startvorlage werden alle ihre Versionen gelöscht.

aws ec2 delete-launch-template --launch-template-id lt-068f72b729example

Aktualisieren einer Auto-Scaling-Gruppe zum Verwenden einer Startvorlage

Sie können den update-auto-scaling-group-Befehl verwenden, um eine Startvorlage zu einer bestehenden Auto-Scaling-Gruppe hinzuzufügen.

Aktualisieren einer Auto-Scaling-Gruppe, um die neueste Version einer Startvorlage zu verwenden

Der folgende update-auto-scaling-group-Befehl aktualisiert die angegebene Auto-Scaling-Gruppe, um die neueste Version der angegebenen Startvorlage zu verwenden.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateId=lt-068f72b729example,Version='$Latest'

Eine Auto-Scaling-Gruppe aktualisieren, um eine bestimmte Version einer Startvorlage zu verwenden

Der folgende update-auto-scaling-group-Befehl aktualisiert die angegebene Auto-Scaling-Gruppe, um eine bestimmte Version der angegebenen Startvorlage zu verwenden.

aws autoscaling update-auto-scaling-group --auto-scaling-group-name my-asg \ --launch-template LaunchTemplateName=my-template-for-auto-scaling,Version='2'