Starten, Auflisten und Löschen von Amazon-EC2-Instances in der AWS CLI - AWS Command Line Interface

Starten, Auflisten und Löschen von Amazon-EC2-Instances in der AWS CLI

Sie können AWS Command Line Interface (AWS CLI) verwenden, um Instances von Amazon Elastic Compute Cloud (Amazon EC2) zu starten, aufzulisten und zu löschen. Wenn Sie eine Instance starten, die nicht im kostenlosen AWS-Kontingent enthalten ist, fallen für diese Instance nach dem Start Gebühren an. Ihnen wird die Zeit berechnet, für die die Instance ausgeführt wird, auch wenn diese nicht genutzt wird.

Anmerkung

Weitere Befehlsbeispiele finden Sie im AWS CLI-Referenzleitfaden.

Voraussetzungen

Um die ec2-Befehle in diesem Thema auszuführen, sind folgende Schritte erforderlich:

Starten Ihrer Instance

Zum Starten einer Amazon-EC2-Instance mithilfe des AMI, das Sie ausgewählt haben, verwenden Sie den Befehl aws ec2 run-instances. Sie können die Instance in einer Virtual Private Cloud (VPC) starten.

Die Instance weist zu Beginn den Status pending auf. Sie wechselt aber nach wenigen Minuten in den Status running.

Im folgenden Beispiel wird gezeigt, wie eine t2.micro-Instance im angegebenen Subnetz einer VPC gestartet wird. Ersetzen Sie die kursiv dargestellten Parameterwerte durch eigene.

$ aws ec2 run-instances --image-id ami-xxxxxxxx --count 1 --instance-type t2.micro --key-name MyKeyPair --security-group-ids sg-903004f8 --subnet-id subnet-6e7f829e { "OwnerId": "123456789012", "ReservationId": "r-5875ca20", "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "Instances": [ { "Monitoring": { "State": "disabled" }, "PublicDnsName": null, "Platform": "windows", "State": { "Code": 0, "Name": "pending" }, "EbsOptimized": false, "LaunchTime": "2013-07-19T02:42:39.000Z", "PrivateIpAddress": "10.0.1.114", "ProductCodes": [], "VpcId": "vpc-1a2b3c4d", "InstanceId": "i-5203422c", "ImageId": "ami-173d747e", "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "KeyName": "MyKeyPair", "SecurityGroups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "ClientToken": null, "SubnetId": "subnet-6e7f829e", "InstanceType": "t2.micro", "NetworkInterfaces": [ { "Status": "in-use", "SourceDestCheck": true, "VpcId": "vpc-1a2b3c4d", "Description": "Primary network interface", "NetworkInterfaceId": "eni-a7edb1c9", "PrivateIpAddresses": [ { "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Primary": true, "PrivateIpAddress": "10.0.1.114" } ], "PrivateDnsName": "ip-10-0-1-114.ec2.internal", "Attachment": { "Status": "attached", "DeviceIndex": 0, "DeleteOnTermination": true, "AttachmentId": "eni-attach-52193138", "AttachTime": "2013-07-19T02:42:39.000Z" }, "Groups": [ { "GroupName": "my-sg", "GroupId": "sg-903004f8" } ], "SubnetId": "subnet-6e7f829e", "OwnerId": "123456789012", "PrivateIpAddress": "10.0.1.114" } ], "SourceDestCheck": true, "Placement": { "Tenancy": "default", "GroupName": null, "AvailabilityZone": "us-west-2b" }, "Hypervisor": "xen", "BlockDeviceMappings": [ { "DeviceName": "/dev/sda1", "Ebs": { "Status": "attached", "DeleteOnTermination": true, "VolumeId": "vol-877166c8", "AttachTime": "2013-07-19T02:42:39.000Z" } } ], "Architecture": "x86_64", "StateReason": { "Message": "pending", "Code": "pending" }, "RootDeviceName": "/dev/sda1", "VirtualizationType": "hvm", "RootDeviceType": "ebs", "Tags": [ { "Value": "MyInstance", "Key": "Name" } ], "AmiLaunchIndex": 0 } ] }

Hinzufügen eines Blockgeräts zu Ihrer Instance

Jede gestartete Instance hat ein zugehöriges Root-Gerät-Volume. Sie können das Blockgerät-Mapping verwenden, um zusätzliche Amazon-Elastic-Block-Store (Amazon EBS)-Volumes oder Instance-Speicher-Volumes anzugeben, die an eine Instance angehängt werden, wenn diese gestartet wird.

Zum Hinzufügen eines Blockgeräts zu Ihrer Instance geben Sie die Option --block-device-mappings an, wenn Sie run-instances verwenden.

Der folgende Beispielparameter stellt ein Standard-Amazon-EBS-Volume von 20 GB bereit und ordnet dieses mit der ID /dev/sdf Ihrer Instance zu.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"VolumeSize\":20,\"DeleteOnTermination\":false}}]"

Im folgenden Beispiel wird ein Amazon-EBS-Volume hinzugefügt, das /dev/sdf zugeordnet ist, basierend auf einem vorhandenen Snapshot. Ein Snapshot stellt ein Image dar, das für Sie in das Volume geladen wurde. Wenn Sie einen Snapshot angeben, müssen Sie keine Volume-Größe angeben; es wird groß genug für Ihr Image sein. Wenn Sie aber einen Größenwert angeben, muss dieser größer oder gleich der Snapshot-Größe sein.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"Ebs\":{\"SnapshotId\":\"snap-a1b2c3d4\"}}]"

Im folgenden Beispiel werden zwei Volumes zu Ihrer Instance hinzugefügt. Die Anzahl der Volumes, die für Ihre Instance verfügbar sind, hängt vom Instance-Typ ab.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdf\",\"VirtualName\":\"ephemeral0\"},{\"DeviceName\":\"/dev/sdg\",\"VirtualName\":\"ephemeral1\"}]"

Das folgende Beispiel erstellt das Mapping (/dev/sdj), stellt aber kein Volume für die Instance bereit.

--block-device-mappings "[{\"DeviceName\":\"/dev/sdj\",\"NoDevice\":\"\"}]"

Weitere Informationen finden Sie im Abschnitt Blockgerät-Zuweisung im Benutzerhandbuch zu Amazon EC2.

Hinzufügen eines Tags zu Ihrer Instance

Ein Tag ist eine Markierung, die Sie einer AWS-Ressource zuordnen. Damit können Sie Metadaten zu Ressourcen hinzufügen, die Sie für eine Vielzahl von Zwecken einsetzen können. Weitere Informationen finden Sie unter Tagging Ihrer Ressourcen im Benutzerhandbuch zu Amazon EC2.

Das folgende Beispiel zeigt, wie Sie ein Tag mit dem Schlüsselnamen „Name“ und den Wert „MyInstance“ zur angegebenen Instance hinzufügen, in dem Sie den Befehl aws ec2 create-tags verwenden.

$ aws ec2 create-tags --resources i-5203422c --tags Key=Name,Value=MyInstance

Herstellen einer Verbindung zu Ihrer Instance

Wenn die Instance ausgeführt wird, können Sie eine Verbindung mit ihr herstellen und sie genau so verwenden wie einen Computer, der sich direkt vor Ihnen befindet. Weitere Informationen finden Sie unter Verbinden mit Ihrer Amazon-EC2-Instance im Benutzerhandbuch zu Amazon EC2.

Auflisten Ihrer Instances

Sie können Ihre Instances mit der AWS CLI auflisten und Informationen über sie anzeigen. Sie können alle Ihre Instances auflisten oder die Ergebnisse auf der Grundlage der Instances, die für Sie von Interesse sind, filtern.

Die folgenden Beispiele demonstrieren die Verwendung des aws ec2 describe-instances-Befehls.

Mit dem folgenden Befehl werden alle Ihre Instances aufgelistet.

$ aws ec2 describe-instances

Der folgende Befehl filtert die Liste nur nach Ihren t2.micro-Instances und gibt nur die InstanceId-Werte für die einzelnen Übereinstimmungen aus.

$ aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId" [ "i-05e998023d9c69f9a" ]

Der folgende Befehl listet alle Ihre Instances mit dem Tag Name=MyInstance auf.

$ aws ec2 describe-instances --filters "Name=tag:Name,Values=MyInstance"

Mit dem folgenden Befehl werden die Instances aufgeführt, die aus einem der folgenden AMIs gestartet wurden: ami-x0123456, ami-y0123456 und ami-z0123456.

$ aws ec2 describe-instances --filters "Name=image-id,Values=ami-x0123456,ami-y0123456,ami-z0123456"

Löschen Ihrer Instance

Das Beenden einer Instance löscht diese. Sie können mit einer Instance keine Verbindung mehr herstellen, nachdem Sie sie beendet haben.

Sobald der Status der Instance zu shutting-down oder terminated wechselt, fallen für diese Instance keine Gebühren mehr an. Wenn Sie später eine erneute Verbindung zu einer Instance herstellen möchten, verwenden Sie stop-instances statt terminate-instances. Weitere Informationen finden Sie unter Beenden Ihrer Instance im Amazon-EC2-Benutzerhandbuch.

Zum Löschen einer Instance verwenden Sie den Befehl aws ec2 terminate-instances.

$ aws ec2 terminate-instances --instance-ids i-5203422c { "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }

Referenzen

AWS CLI-Referenz:

Andere Referenz: