Verwalten von AWS EC2-Instanzen über die AWS-Befehlszeilenschnittstelle
AWS bietet eine praktische Weboberfläche namens „AWS Management Console“ an. Über diese Konsole können Sie alle erforderlichen Vorgänge in der AWS-Cloud ausführen. Die wiederholte Ausführung vieler identischer Vorgänge über die Weboberfläche kann jedoch monoton und zeitaufwendig sein. In diesem Fall können Sie die AWS CLI nutzen, um AWS-Verwaltungsaufgaben zu automatisieren und Massenvorgänge durchzuführen. Dieser Blogbeitrag behandelt die Installation der AWS CLI sowie die Grundlagen der Nutzung dieses Tools. Der Beitrag konzentriert sich außerdem auf EC2-Befehle der AWS CLI, die anhand von Beispielen veranschaulicht werden.
Was ist die AWS CLI?
Die Amazon Web Services Command Line Interface (AWS CLI) ist ein Open-Source-Befehlszeilentool zum Management von Umgebungen in der Amazon-Cloud. Dieses Tool arbeitet über eine Integration mit der Befehlszeilen-Shell des Betriebssystems, auf dem die AWS CLI installiert ist. Sie können Amazon EC2-Instanzen mit AWS EC2-Befehlen verwalten sowie EBS-Volumes, S3-Buckets und andere Amazon-Dienste verwalten.
AWS CLI wird in einer Linux-Befehlszeilenshell, im macOS-Terminal, in der Windows-Eingabeaufforderung (CMD) und in PowerShell ausgeführt. Mit dieser CLI können Sie Skripte erstellen und Ihre Aufgaben automatisieren.
Es gibt zwei Hauptversionen der AWS CLI:
- AWS CLI Version 1 ist die alte Version, die aus Gründen der Abwärtskompatibilität verfügbar ist. Diese Version wird unterstützt, jedoch sind möglicherweise nicht alle neuen Funktionen verfügbar.
- AWS CLI Version 2 ist die neueste Version, die alle verfügbaren Funktionen von AWS unterstützt. Es wird empfohlen, die neueste Version zu installieren.
Beide Versionen verwenden denselben Befehl aws zum Ausführen der AWS CLI. Es gibt jedoch Änderungen, die dazu führen können, dass Skripte, die für AWS CLI v1 erstellt wurden, in AWS CLI v2 nicht mehr verwendet werden können.
Anforderungen
Sehen wir uns nun die Anforderungen an, die Sie für die Nutzung der AWS CLI erfüllen sollten.
Allgemeine Anforderungen
- Sie benötigen ein AWS-Konto sowie AWS-Zugriffsschlüssel (AWS-Zugriffsschlüssel-ID und AWS-geheimer Zugriffsschlüssel).
- Python 2 Version 2.6.5+ oder Python 3 Version 3.3+ muss installiert sein. AWS CLI v2 verfügt über eine integrierte Python-Version, sodass Sie Python nicht manuell installieren müssen, um AWS CLI v2 zu installieren.
Linux
- Ein Tool zum Entpacken von ZIP-Archiven
glibc,groffundlessmuss installiert sein
Windows
- Windows XP oder höher
- Administratorrechte auf dem Windows-Rechner
macOS
- Von Apple unterstützte 64-Bit-Version von macOS
Installation
Sie müssen AWS CLI installieren, bevor Sie Befehle zum Verwalten von Amazon EC2-Instanzen und anderen Amazon-Diensten ausführen können. Sehen wir uns an, wie man die AWS CLI Version 2 auf verschiedenen Betriebssystemen installiert.
Installation der AWS CLI unter Linux
Es gibt drei Methoden, um die AWS CLI unter Linux zu installieren:
- Verwendung des Bundle-Installationsprogramms (die offizielle Methode)
- Verwendung von Linux-Repositorys
- Installation der AWS CLI als Python-Modul
Amazon empfiehlt, die AWS CLI mit der offiziellen Methode zu installieren. In diesem Verwendungsfall erhalten Sie immer die aktuellste Version der Software. Ich verwende in diesem Arbeitsablauf Ubuntu 20.
Verwendung des offiziellen Installationsarchivs
Dies ist die empfohlene Methode zur Installation der AWS CLI. Gehen Sie wie folgt vor:
- Installieren Sie curl:
apt-get install curl
- Herunterladen des AWS CLI-Installationsarchivs:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
- Entpacken Sie die enthaltenen Installationsdateien aus dem heruntergeladenen Archiv:
unzip awscliv2.zip
- Führen Sie das Installationsprogramm mit Root-Rechten aus:
sudo ./aws/install
- Überprüfen Sie nach Abschluss der Installation die Version des installierten AWS-CLI-Tools, um sicherzustellen, dass dieses Tool erfolgreich installiert wurde:
aws --version
Verwendung von Linux-Software-Repositorys
Die AWS CLI ist in den offiziellen Software-Repositorys für Ubuntu verfügbar. Gehen Sie wie folgt vor:
1. Aktualisieren Sie den Repository-Baum:
sudo apt-get update
2. Installieren Sie die AWS CLI mit einem Paketmanager aus den Linux-Software-Repositorys:
sudo apt-get install awscli
3. Überprüfen Sie, ob die AWS CLI erfolgreich installiert wurde:
aws --version
Installation mit Python PIP
Sie können die AWS CLI als Python-Modul von Python PIP installieren. Beachten Sie, dass Python PIP unter Ubuntu standardmäßig nicht installiert ist. Gehen Sie wie folgt vor, um die AWS CLI als Python-Modul zu installieren:
1. Sie müssen zunächst Python PIP installieren.
- Für Python 2.x:
sudo apt-get install python-pip
- Für Python 3.x:
sudo apt-get install python3-pip
2. Installieren Sie die AWS CLI von Python PIP.
- Mit Python 2.x PIP:
pip install awscli --upgrade --user
- Verwendung von Python 3.x PIP:
pip3 install awscli --upgrade --user
3. Überprüfen Sie die installierte Version.
- In Python 2.x:
python -m awscli --version
- In Python 3.x:
python3 -m awscli --version
Hinweis: Wenn Sie die mit Python PIP installierte AWS CLI verwenden, unterscheiden sich die zu verwendenden Befehle vom Standard-Hauptbefehl aws , der für eine gepackte Version der AWS CLI verwendet wird:
- Gepackte Version:
aws
- Modul für Python 2:
python -m awscli
- Modul für Python 3:
python3 -m awscli
Installation der AWS CLI unter Windows
Um die AWS CLI unter Windows zu installieren, müssen Sie das Installationsprogramm herunterladen, die AWS CLI installieren und nach der Installation die Konfiguration in Windows vornehmen.
Installationsprogramm herunterladen
Laden Sie das 64-Bit-Installationsprogramm für die AWS CLI von einem der folgenden Links herunter und speichern Sie die Datei an einem beliebigen Standort, zum Beispiel: C:temp
- Das 64-Bit-Installationsprogramm ist bei AWS verfügbar: https://awscli.amazonaws.com/AWSCLIV2.msi
- Das 32-Bit-Installationsprogramm ist unter diesem Link verfügbar: https://s3.amazonaws.com/aws-cli/AWSCLI32PY3.msi
- Die Datei für das universelle Installationsprogramm ist hier verfügbar: https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe
In diesem Beispiel verwende ich Windows Server 2016 und lade die Datei AWSCLIV2.msi herunter.
Sie können die Installationsdatei in PowerShell mit dem folgenden Befehl herunterladen:
Invoke-WebRequest -Uri https://awscli.amazonaws.com/AWSCLIV2.msi -OutFile "C:tempAWSCLIV2.msi"
Starten Sie das Installationsprogramm
Starten Sie die heruntergeladene AWSCLIV2.msi Datei.
Wenn Sie PowerShell verwenden, notieren Sie sich den Standort der .msi Datei (in meinem Fall C:temp ) und führen Sie den folgenden Befehl aus:
C:tempAWSCLIV2.msi
Befolgen Sie die Schritte des Installationsassistenten. Sie können die Standardeinstellungen für die Installation verwenden. Der Installationsvorgang ist unkompliziert, daher werde ich nicht auf jeden einzelnen Schritt des Assistenten eingehen.
Wenn Sie versuchen, den Befehl aws --version auszuführen, um zu überprüfen, ob die AWS CLI erfolgreich installiert wurde, kann es zu einer Fehlermeldung kommen. Dies liegt daran, dass in der Umgebungsvariablen PATH kein Eintrag für das AWS-CLI-Tool vorhanden ist. Nun können Sie in das Verzeichnis wechseln, in dem die AWS CLI installiert ist ( C:Program FilesAmazonAWSCLIV2 standardmäßig), und die AWS CLI manuell ausführen.
cd "C:Program FilesAmazonAWSCLIV2"
.aws --version
PATH konfigurieren
Fügen Sie den Eintrag zur PATH-Variablen hinzu, da es unpraktisch ist, das Verzeichnis in der Befehlszeile jedes Mal manuell zu ändern, wenn Sie AWS-CLI-Befehle ausführen müssen.
Über die Windows-Benutzeroberfläche
1. Öffnen Sie Control Panel > System > Advanced system settingsund klicken Sie im Fenster Advanced „Systemeigenschaften“ auf der Registerkarte auf Environment Variables.
2. Wählen Sie im Fenster „Umgebungsvariablen“ die Variable PATH aus und klicken Sie auf Edit. Beachten Sie, dass es Optionen zum Bearbeiten von Benutzervariablen für den Administrator und Systemvariablen gibt.
3. Klicken Sie im Fenster „Umgebungsvariable bearbeiten“ auf New.
4. Geben Sie den Pfad des Verzeichnisses an, in dem die AWS CLI installiert ist, und klicken Sie auf Enter. In meinem Fall lautet der Pfad „C:Program FilesAmazonAWSCLIV2“.
5. Klicken Sie auf OK , um die Einstellungen zu speichern und das Fenster zu schließen.
Hinweis: Möglicherweise müssen Sie das Konsolenfenster (PowerShell oder CMD) erneut öffnen, damit die Änderungen wirksam werden.
Verwendung von PowerShell
Sie können Umgebungsvariablen auch in PowerShell bearbeiten. Führen Sie die folgenden Schritte aus, um der PATH-Variable in PowerShell einen Wert hinzuzufügen.
1. Notieren Sie sich den ursprünglichen PATH-Wert , den Sie ändern möchten:
$oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
2. Definieren Sie den neuen PATH-Wert , indem Sie den erforderlichen Wert hinzufügen. In meinem Fall ist der Wert, den ich hinzufügen muss, der Pfad zum AWS-CLI-Verzeichnis. Das Semikolon (;) dient als Trennzeichen zwischen den Pfadwerten in der Variablen „ “ unter „PATH“ .
$newpath = "$oldpath;C:Program FilesAmazonAWSCLIV2"
3. Anwenden Sie den Wert in die Windows-Registrierung, um die Änderungen dauerhaft zu machen:
Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH -Value $newPath
4. Überprüfen Sie, ob die neue PATH-Konfiguration korrekt ist:
Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH
oder
(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession ManagerEnvironment' -Name PATH).path
Verwendung von Chocolatey
Als Alternative zum Herunterladen und Ausführen der MSI-Installationsdatei können Sie die AWS CLI mit Chocolatey installieren, einem Windows-Softwareverwaltungstool, das in PowerShell ausgeführt wird. Chocolatey unterstützt die Installation von Anwendungen aus Windows-Online-Repositorys. Führen Sie diesen Befehl aus, um die AWS CLI zu installieren:
choco install awscli
Überprüfen Sie die Installationsergebnisse:
Jetzt können Sie den Befehl aws (sowie zugehörige AWS-EC2-Befehle) von jedem Verzeichnis in PowerShell aus ausführen.
aws --version
Hinweis: Wenn auf Ihrem Betriebssystem sowohl die AWS CLI Version 1 als auch die AWS CLI Version 2 installiert sind, führt Ihr Betriebssystem diejenige aus, die an erster Stelle in der PATH-Variable steht.
Installation der AWS CLI unter macOS
Führen Sie die folgenden Schritte aus, um die AWS CLI unter macOS zu installieren.
Wechseln Sie in das Verzeichnis /tmp/ , in dem die heruntergeladenen Dateien gespeichert werden:
cd /tmp
Methode 1
- Herunterladen Sie die Installationsdatei:
curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip - Entpacken Sie den Inhalt des heruntergeladenen ZIP-Archivs:
unzip awscli.zip - Installieren Sie die AWS CLI:
sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
Methode 2
- Herunterladen Sie das Installationspaket:
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" - Führen Sie das Installationsprogramm aus:
sudo installer -pkg AWSCLIV2.pkg -target / - Mit dem folgenden Befehl können Sie überprüfen, ob die AWS CLI erfolgreich installiert wurde:
aws --version
Erste Konfiguration der AWS CLI
Nun müssen Sie die AWS-Anmeldeinformationen angeben und die Region sowie die Ausgabeparameter konfigurieren. Führen Sie den folgenden Befehl aus, um die AWS CLI zu konfigurieren. Die Syntax der AWS CLI-Befehle ist unter Linux, Windows und macOS identisch. In meinem Beispiel verwende ich Ubuntu Linux.
aws configure
Geben Sie vier Parameter an (die ersten beiden sind erforderlich):
- AWS-Zugriffsschlüssel-ID , eine 20-stellige alphanumerische Zeichenfolge. Die Buchstaben sind Großbuchstaben.
- AWS-geheimer Zugriffsschlüssel , eine 40-stellige alphanumerische Zeichenfolge, die wie ein Hash aussieht.
- Name der Standardregion . Wählen Sie diesen Parameter aus, wenn Sie bei der Ausführung von Befehlen in der AWS-CLI nicht jedes Mal explizit eine Region angeben müssen. Wenn Sie eine andere Region als Ihre Standardregion verwenden müssen, können Sie die gewünschte Region manuell in einem Befehl angeben. Verwenden Sie hierfür
--region. - Standardausgabeformat . Es gibt drei Optionen:
json, text, table, yaml, yaml-stream. Standardmäßig wird JSON (JavaScript Object Notation) verwendet. Sie können das gewünschte Format bei der Ausführung eines bestimmten Befehls mit--outputauswählen.
AWS-CLI-Konfigurationsdateien werden im Home-Verzeichnis gespeichert. Sie können diese Dateien mit dem folgenden Befehl einsehen:
ls -l ~/.aws
Die Region- und Ausgabeeinstellungen sind in der Datei „ “ unter „config“ ( ) gespeichert. Die Anmeldeinformationen (AWS-Zugriffsschlüssel-ID und AWS-geheimer Zugriffsschlüssel) sind in der Datei „ “ unter „credentials“ ( ) gespeichert.
Allgemeine Verwendung und Tipps
Machen wir uns mit den allgemeinen Empfehlungen zur Verwendung und den Tipps für die AWS-CLI vertraut, bevor wir zu den praktischen Beispielen für die AWS-CLI für EC2 übergehen.
Befehlsstruktur der AWS-CLI
Sie können einen AWS-CLI-Befehl auf zwei Arten zusammenstellen: in einer Zeile oder in mehreren Zeilen.
Normale Struktur
Bei einer normalen Befehlsstruktur wird davon ausgegangen, dass Sie einen Befehl als einzeiligen Befehl zusammenstellen.
aws [options and parameters]
Dabei gilt:
aws ist der Basisbefehl zum Aufruf des aws Programms
ist der Befehl der obersten Ebene, der dem entsprechenden AWS-Dienst entspricht, zum Beispiel EC2 oder S3.
gibt die auszuführende Operation an, wie z. B. „Objekt abrufen“, „Instanzen beschreiben“ usw.
[options and parameters] gibt Optionen und Parameter für die Operation an.
Mehrzeilige Befehlsstruktur
Manchmal ist die Verwendung einer mehrzeiligen Befehlsstruktur praktischer, wenn Sie mehrere Optionen und Parameter angeben müssen.
aws
[options and parameters]
[options and parameters]
Der Befehl „wait“
Mit dem Befehl „ wait “ können Sie die Ausführung des gesamten Befehls unterbrechen, um den Vorgang fortzusetzen, sobald er bereit ist und alle Bedingungen erfüllt sind.
aws wait [options and parameters]
Beispiel:
aws ec2 wait instance-status-ok
--instance-ids i-1234567890abcdef0
Befehlsvervollständigung
Aktivieren Sie die Befehlsvervollständigung. Die Befehlsvervollständigung macht die Eingabe von Befehlen schneller und bequemer. Verwenden Sie diesen Befehl, um die automatische Vervollständigung unter Linux zu aktivieren:
complete -C '/usr/local/bin/aws_completer' aws
Überprüfen Sie, ob die Befehlsvervollständigung arbeitet:
aws s[press Tab]
aws e[press Tab]
Wenn die automatische Vervollständigung arbeitet, wird ein teilweise eingegebener Befehl automatisch vervollständigt, wenn Sie die Taste Tab drücken, sofern es nur einen Befehl gibt, der mit den von Ihnen eingegebenen Zeichen startet. Wenn es mehrere Befehle gibt, die mit den eingegebenen Zeichen starten, werden alle diese Befehle darunter in der Anzeige angezeigt. Sie können die Liste der verfügbaren Befehle durchlesen und mit der Eingabe des gewünschten Befehls fortfahren. Verwenden Sie anschließend den Schlüssel „ Tab “ für die Befehlsvervollständigung.
Filter
Verwenden Sie Filter, um nur die benötigten Daten anzuzeigen. Die Filterung erfolgt auf der Amazon-Serverseite. Dadurch werden weniger Daten über das Netzwerk übertragen, und Sie erhalten die Ausgabedaten schneller. Skripte, die AWS EC2-Befehle und AWS CLI-Filter enthalten, laufen schneller.
AWS-Hilfe
Verwenden Sie den Befehl „ help “, um verfügbare Befehle und Optionen anzuzeigen.
aws help
aws help
aws help
JSON-Analyse
Verwenden Sie jq, ein leichtgewichtiges Dienstprogramm zur Verarbeitung von JSON-Daten.
jq ist das Pendant zu sed zur Transformation des Eingabestroms, jedoch für das JSON-Format. Sie können jq als JSON-Parsing-Tool mit dem folgenden Befehl installieren:
apt-get install jq
Standardmäßig können Sie die integrierte Option --query verwenden, um das von dem ausgeführten Befehl zurückgegebene JSON zu analysieren.
Fernzugriff
Sie können über SSH eine Verbindung zu einem Linux-Rechner herstellen, auf dem die AWS CLI installiert ist, und Befehle ausführen, um Ihre Dienste in der Amazon-Cloud zu verwalten.
AWS EC2-Befehle in der AWS CLI
Nachdem Sie nun die AWS CLI installiert haben und mit den Tipps zur AWS CLI vertraut sind, können Sie AWS CLI-EC2-Befehle ausführen, um Informationen zu Amazon EC2-Instanzen anzusehen und diese zu verwalten. Sehen wir uns nun praktische Beispiele für die Verwendung der Befehlszeilenschnittstelle in AWS an.
Amazon EC2-Instanzen beschreiben
Sie können AWS-EC2-Befehle in der AWS-CLI verwenden, um Amazon-Komponenten Ihres Kontos zu beschreiben (Informationen über sie abzurufen), ohne dabei irgendwelche Aktionen mit ihnen durchzuführen. Die Befehle der AWS-CLI zum Beschreiben von Instanzen helfen Ihnen dabei, den Status von Amazon EC2-Instanzen, EBS-Volumes, Amazon-Maschinenabbildern und anderen Komponenten zu überprüfen. Sie können die bereitgestellte Funktionalität auch unter Überwachte Workloadsnutzen.
Beispiel 1
Beginnen wir mit diesem einfachen Befehl, um Informationen zu vorhandenen Amazon EC2-Instanzen anzuzeigen:
aws ec2 describe-instances
Dieser Befehl gibt Daten zurück, die alle AWS EC2-Instanzen in der Ausgabe im JSON-Format beschreiben (da wir JSON zuvor als Standardformat festgelegt haben). Als Ergebnis erhalten wir ein großes Datenarray, einschließlich Metadaten. Diese Ausgabe ist für Benutzer nicht gut lesbar, eignet sich jedoch gut für Skripte und Anwendungen.
Drücken Sie die Taste „ down arrow “, um in den Daten im Konsolen-/Terminalfenster nach unten zu scrollen.
Drücken Sie „ q “, um den Anzeigemodus zu verlassen (ähnlich wie bei der Verwendung von „ “ in „less“ ).
Beispiel 2
Wir können die vollständigen Informationen nur für eine Instanz anzeigen, indem wir die Instanz-ID mit dem folgenden Befehl verwenden: aws ec2 describe-instances
--instance-ids i-0201020e110607121
Beispiel 3
Nun werden wir die Instanz-IDs, ihre Namen und den Status aller in unserer Region verfügbaren Instanzen überprüfen. Mit dem Befehl können wir mithilfe der AWS-CLI-Filter und der Option --query nur die benötigten Daten anzeigen. Dieses Beispiel für AWS-CLI-Filter enthält die Option --filter , die die angeforderten gefilterten Daten zurückgibt. Wir verwenden die Option --output text , um das Ergebnis als Text anzuzeigen.
aws ec2 describe-instances --filters "Name=tag:Name,Values=server*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Im Vergleich zur ungefilterten Ausgabe, die alle verfügbaren Daten für alle Instanzen enthält, ist die gefilterte Ausgabe übersichtlicher und für Benutzer besser lesbar.
Beispiel 4
Nun wollen wir die AWS EC2-Instanzen erneut filtern und mithilfe eines AWS-CLI-Filters nur Instanzen anzeigen, deren Name „Linux“ enthält.
aws ec2 describe-instances --filters "Name=tag:Name,Values=*Linux*" --query "Reservations[].Instances[].[Tags[?Key=='Name'],InstanceId,State.Name]" --output text
Im folgenden Screenshot sehen Sie die Befehlsausgabe nach Ausführung des Befehls mit dem EC2-Instanzfilter. Ich habe drei Linux-Instanzen gefunden, auf denen NAKIVO Backup & Replication Transporter installiert ist. Der Transporter ist eine Komponente zur Datenübertragung bei der Durchführung von AWS-Backups und AWS Disaster Recovery Vorgängen.
Beispiel 5
Sie können Instanzen bestimmter AWS-EC2-Instanztypen auflisten. In diesem Beispiel führe ich den Befehl aus, um Instanzen des t2.micro Typs anzuzeigen:
aws ec2 describe-instances
--filters Name=instance-type,Values=t2.micro
Beispiel 6
Verwenden Sie einen EC2-Instanzfilter, um nur Instanz-IDs anzuzeigen.
aws ec2 describe-instances --filters "Name=instance-type,Values=t2.micro" --query "Reservations[].Instances[].InstanceId"
Beispiel 7
Alternativ können Sie die Tabellenansicht für die Ausgabedaten verwenden, indem Sie die Option --output table hinzufügen. Nachfolgend sehen Sie den Befehl mit einem AWS-CLI-Filter, um die Instanz-ID, den Namen, den Status und den Typ von AWS-EC2-Instanzen als Tabelle anzuzeigen.
aws ec2 describe-instances --output table --query "Reservations[].Instances[].{Name: Tags[?Key == 'Name'].Value | [0], Id: InstanceId, State: State.Name, Type: InstanceType}"
Beispiel 8
Es gibt einen weiteren Befehl, um die Ausgabedaten (Instanz-ID, Typ und Name) von AWS-EC2-Instanzen in einer übersichtlichen Ansicht darzustellen:
aws ec2 describe-instances | jq -r '.Reservations[].Instances[]|.InstanceId+" "+.InstanceType+" "+(.Tags[] | select(.Key == "Name").Value)'
Beispiel 9
Überprüfen Sie die externe IP-Adresse einer laufenden Instanz:
aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"
Um die externen IP-Adressen mehrerer AWS-EC2-Instanzen zu überprüfen, geben Sie die Instanz-IDs der Instanzen durch ein Leerzeichen getrennt an.
Beispiel 10
Überprüfen Sie die angehaltenen Instanzen und den Grund für das Anhalten jeder Instanz mit dem Befehl, der den AWS-CLI-Filter enthält:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped
Es gibt ein alternatives Beispiel:
aws ec2 describe-instances --filters Name=instance-state-name,Values=stopped --region eu-west-1 --output json | jq -r .Reservations[].Instances[].StateReason.Message
Beispiel 11
Dies ist der Befehl, um laufende Amazon EC2-Instanzen mit weiteren Details, einschließlich Instanzname, privater IP-Adresse, öffentlicher IP-Adresse, Status, Typ und VPC-ID, in Form einer Tabelle aufzulisten: aws ec2 describe-instances --query "Reservations[*].Instances[*].{PublicIP:PublicIpAddress,PrivateIP:PrivateIpAddress,Name:Tags[?Key=='Name'] | [0].Value,Type:InstanceType,Status:State.Name,VpcId:VpcId}" --filters Name=instance-state-name,Values=running --output table
AWS EC2-Instanzen starten
Wenn Sie die Instanz-ID kennen, können Sie die Amazon EC2-Instanz von AWS EC2-Befehlen aus starten.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Sie können mehrere AWS EC2-Instanzen starten, indem Sie den AWS EC2-Befehl „start instances“ verwenden und die Instanz-IDs durch Leerzeichen getrennt eingeben.
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
AWS EC2-Instanzen stoppen
Sie können eine oder mehrere AWS EC2-Instanzen stoppen. Die Syntax ähnelt der des Befehls „ “ „ec2 start-instances“ .
Der AWS-CLI-Befehl „stop instance“ für eine Instanz ist unten aufgeführt:
aws ec2 stop-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Der AWS-CLI-Befehl „stop instance“ für mehrere (drei) Instanzen ist derselbe, allerdings müssen Sie mehrere IDs von AWS-EC2-Instanzen angeben, die durch Leerzeichen getrennt sind:
aws ec2 start-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Hier ist die Liste der möglichen Statuscodes und Statusbezeichnungen in der Ausgabe:
0 – ausstehend
16 – läuft
32 – wird heruntergefahren
48 – beendet
64 – wird angehalten
80 – angehalten
AWS-EC2-Instanzen neu starten
Mit dem Befehl „ “ aws ec2 reboot-instances können Sie eine oder mehrere AWS-EC2-Instanzen neu starten. Die Funktionsweise dieses Befehls entspricht der der AWS-CLI-Befehle „start instance“ und „stop instance“. Dies ist der Befehl zum Neustart einer Instanz:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0
Dies ist der Befehl zum Neustart von drei Instanzen:
aws ec2 reboot-instances --instance-ids i-1a3b5c7d9ea0c1ef0 i-1a3b5c7d9ea0c1ef1 i-1a3b5c7d9ea0c1ef2
Tags hinzufügen
Mit Tags können Sie AWS-EC2-Instanzen klassifizieren und sie bequemer identifizieren oder finden. Sehen wir uns zwei AWS-EC2-Befehle zum Arbeiten mit Tags an.
Führen Sie diesen Befehl aus, um der Instanz ein Tag hinzuzufügen, indem Sie die Instanz-ID angeben:
aws ec2 create-tags --resources i-1a3b5c7d9ea0c1ef0 --tags Key=Department,Value=Marketing
Anschließend können Sie mit einem Befehl Informationen zu den gewünschten Instanzen anhand der Tags anzeigen:
aws ec2 describe-instances --filters "Name=tag-key,Values=Name"
EBS-Volumes beschreiben
Während des Betriebs von Amazon EC2-Instanzen müssen Sie möglicherweise Informationen zu EBS-Volumes überprüfen, Volumes an EC2-Instanzen anhängen und sie wieder freigeben. Nachfolgend finden Sie einige Beispiele für AWS EC2-Befehle, mit denen Sie Informationen zu EBS-Volumes abrufen können.
Beispiel 1
Dies ist ein einfacher Befehl, um EBS-Volumes zu beschreiben und alle Informationen zu den vorhandenen Volumes Ihres Amazon-Kontos anzuzeigen:
aws ec2 describe-volumes
Dieser Befehl ähnelt dem oben verwendeten AWS EC2-Befehl „describe instances“. In der Ausgabe werden Details zu allen verfügbaren Volumes angezeigt. Drücken Sie die Abwärtspfeiltaste auf Ihrer Tastatur, um nach unten zu scrollen und alle Daten anzusehen. Die Suche nach den benötigten Informationen in dieser Datenansicht ist jedoch umständlich. Verwenden Sie AWS-CLI-Filter, um nur die benötigten Daten anzuzeigen. 
Beispiel 2
Dies ist ein Beispiel für den AWS-CLI-EC2-Befehl zur Anzeige der Volume-IDs aller EBS-Volumes:
aws ec2 describe-volumes --output table --query 'Volumes[*].VolumeId'
Beispiel 3
Filtern wir nun die Volume-IDs aller Amazon-EBS-Volumes, die sich im Status „angebunden“ befinden:
aws ec2 describe-volumes
--query 'Volumes[*].Attachments[?State==`attached`].VolumeId[]'
Sie können dieselbe Logik zum Anwenden von Filtern verwenden, wenn Sie AWS-CLI-Befehle zur Arbeit mit EBS-Volumes und anderen AWS-Objekten ausführen.
Beispiel 4
Möglicherweise möchten Sie Volumes ansehen, die nicht angebunden sind und sich im Status „verfügbar“ befinden. Verwenden Sie in diesem Fall den Befehl:
aws ec2 describe-volumes --filters Name=status,Values=available --output table
EBS-Volumes an AWS-EC2-Instanzen anhängen
Nach der Erlangung der erforderlichen Informationen zu AWS-EC2-Instanzen und EBS-Volumes können Sie ein EBS-Volume mit dem Befehl aws ec2 attach-volume an eine EC2-Instanz anhängen.
Verwenden Sie die Option --device , um den von einem Gastbetriebssystem verwendeten Namen der Festplatte anzugeben. Im folgenden Beispiel verwende ich den Befehl, um ein EBS-Volume als Festplatte mit der Kennung /dev/sde im Gast-Linux-System anzuschließen.
aws ec2 attach-volume --volume-id vol-0034567890abcdef0 --instance-id i-1a3b5c7d9ea0c1ef0 --device /dev/sde
Nach dem Anhängen des EBS-Volumes an eine EC2-Instanz ändert sich der Status des Volumes von „Verfügbar“ zu „Angehängt“.
Vorgänge mit Schnappschüssen
Mit Schnappschüssen von EBS-Volumes können Sie den Zustand des Volumes sichern und bei Bedarf zu diesem Zustand zurückkehren. Hier ein Beispiel für den Befehl zum Erstellen eines Schnappschusses eines EBS-Volumes:
aws ec2 create-snapshot --volume-id
Um Snapshot-IDs anzuzeigen, verwenden Sie diesen Befehl:
ec2 describe-snapshots --owner self
Überprüfen Sie den Status eines Schnappschusses mit dem Befehl:
aws ec2 describe-snapshots --snapshot-id
Wenn der Schnappschuss-Fortschritt 100 % beträgt und der Status „abgeschlossen“ lautet, wurde der Schnappschuss erfolgreich erstellt.
Anhand dieser Informationen können Sie die richtige Strategie für die Datensicherheit auswählen. {116} erfahren Sie mehr.
Images beschreiben
Ähnlich wie bei den AWS EC2-Befehlen zum Beschreiben von Instanzen und Volumes können Sie einen Befehl verwenden, um Amazon Machine Images zu beschreiben. Dies ist ein einfacher AWS CLI EC2-Befehl zum Ansehen von Informationen zu Amazon Machine Images (AMI):
aws ec2 describe-images
Sie können Informationen zu einem bestimmten Image ansehen:
aws ec2 describe-images --image-ids ami-0034567890abc4140
Anhand der Anzeige der Informationen können Sie das benötigte AMI auswählen, um eine neue Amazon EC2-Instanz zu erstellen.
Neue EC2-Instanzen starten
Mit den folgenden AWS-CLI-EC2-Befehlen können Sie eine neue Instanz auf Basis des gewünschten Images erstellen (starten).
Zunächst müssen Sie Schlüssel generieren:
aws ec2 create-key-pair --key-name MyKeyPair --output text > MyKeyPair.pem
Erstellen Sie eine neue Amazon EC2-Instanz mit dem AWS-EC2-Befehl „run instances“, indem Sie ein AMI, einen Instanztyp und ein Schlüsselpaar angeben:
aws ec2 run-instances
--image-id ami-0abcdef1234567890
--instance-type t2.micro
--key-name MyKeyPair
Dies ist ein einfaches Beispiel. Sie können beim Erstellen einer neuen EC2-Instanz mit dem AWS EC2-Befehl „run instances“ weitere Optionen festlegen, darunter:
–subnet-id
–security-group-ids
–block-device-mappings
–tag-specifications
EC2-Instanzen löschen
Es wird empfohlen, AWS EC2-Instanzen, die seit längerer Zeit nicht mehr genutzt werden, zu löschen, um Kosten zu sparen. Seien Sie vorsichtig, da Sie eine beendete EC2-Instanz nicht wiederherstellen können. Wenn Sie sich nicht sicher sind, ob Sie eine beendete Instanz später noch benötigen, führen Sie mit NAKIVO Backup & Replication ein „ die EC2-Instanz sichern “ in ein lokales Backup-Repository oder zu Amazon S3 durch.
Sie können mehrere Instanzen löschen, indem Sie deren Instanz-IDs mit dem folgenden Befehl angeben:
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0abcdef123456789a i-0abcdef123456789b
Fazit
Die AWS CLI ist ein leistungsstarkes Befehlszeilentool, mit dem Sie die Ausführung einer großen Anzahl ähnlicher Aufgaben automatisieren können. Mit AWS EC2-Filtern können Sie die Ausgabe konfigurieren und nur die Daten abrufen, die Sie benötigen. Es gibt Befehle zum Ansehen von Informationen zu Amazon-Diensten sowie Befehle zum Vornehmen von Änderungen an diesen.
Um menschliche Fehler aufgrund einer fehlerhaften Konfiguration von mit der AWS CLI erstellten Skripten zu vermeiden, wird dringend empfohlen, regelmäßig AWS EC2-Backup mithilfe einer speziellen Lösung eines Drittanbieters durchzuführen.
< span data-sheets-value="{"1":2,"2":"















