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.
Themen
Voraussetzungen
Um die ec2-Befehle in diesem Thema auszuführen, sind folgende Schritte erforderlich:
Installieren und Konfigurieren der AWS CLI. Weitere Informationen finden Sie unter Installation oder Aktualisierung der neuesten Version von AWS CLI. und Authentifizierung und Anmeldeinformationen für die AWS CLI.
-
Legen Sie Ihre IAM-Berechtigungen fest, um Zugriff auf Amazon EC2 zu ermöglichen. Weitere Informationen zu IAM-Berechtigungen für Amazon EC2 finden Sie unter IAM-Richtlinien für Amazon EC2 im Benutzerhandbuch zu Amazon EC2.
-
Erstellen Sie ein Schlüsselpaar und eine Sicherheitsgruppe.
-
Wählen Sie ein Amazon Machine Image (AMI) aus und notieren Sie sich die AMI-ID. Weitere Informationen finden Sie im Thema Suchen eines geeigneten AMI im Benutzerhandbuch zu Amazon EC2.
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-idami-xxxxxxxx--count 1 --instance-type t2.micro --key-nameMyKeyPair--security-group-idssg-903004f8--subnet-idsubnet-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 --resourcesi-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-idsi-5203422c{ "TerminatingInstances": [ { "InstanceId": "i-5203422c", "CurrentState": { "Code": 32, "Name": "shutting-down" }, "PreviousState": { "Code": 16, "Name": "running" } } ] }
Referenzen
AWS CLI-Referenz:
Andere Referenz:
-
Wenn Sie Codebeispiele für das AWS-SDK und die AWS CLI anzeigen, kommentieren oder ergänzen möchten, gehen Sie zum AWS-Codebeispiel-Repository
auf GitHub.