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.

NAKIVO für AWS EC2-Backups

NAKIVO für AWS EC2-Backups

Backup von Amazon EC2-Instanzen auf EC2, AWS S3 und vor Ort. Anti-Ransomware-Optionen. Schnelle Wiederherstellung von Instanzen und Anwendungsobjekten.

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, groffund less muss 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:

  1. Installieren Sie curl:

apt-get install curl

  1. Herunterladen des AWS CLI-Installationsarchivs:

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

  1. Entpacken Sie die enthaltenen Installationsdateien aus dem heruntergeladenen Archiv:

unzip awscliv2.zip

  1. Führen Sie das Installationsprogramm mit Root-Rechten aus:

sudo ./aws/install

  1. Ü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

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

Downloading the AWS CLI installer for Windows

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.

Running the AWS CLI installation wizard

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

Checking the installed version of AWS CLI after changing the directory

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.

Configuring environment variables in Control Panel

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.

Editing the PATH variable

3. Klicken Sie im Fenster „Umgebungsvariable bearbeiten“ auf New.

Adding a new value to the PATH variable

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

Adding the AWS CLI installation directory to PATH in PowerShell

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

Checking the installed version of AWS CLI in Windows

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

  1. Herunterladen Sie die Installationsdatei:
    curl -o awscli.zip https://s3.amazonaws.com/aws-cli/awscli-bundle.zip
  2. Entpacken Sie den Inhalt des heruntergeladenen ZIP-Archivs:
    unzip awscli.zip
  3. Installieren Sie die AWS CLI:
    sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws

Methode 2

  1. Herunterladen Sie das Installationspaket:
    curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
  2. Führen Sie das Installationsprogramm aus:
    sudo installer -pkg AWSCLIV2.pkg -target /
  3. 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 --output auswählen.

The initial configuration of AWS CLI

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“ ).

An example of an AWS CLI list EC2 instances command

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.

An example of an AWS EC2 describe instances query

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.

An example of using the EC2 describe instances filter

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"

AWS EC2 list instances and their instance IDs

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}"

AWS list EC2 instances in a table

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)'

AWS EC2 describe instances by using AWS EC2 filters

Beispiel 9

Überprüfen Sie die externe IP-Adresse einer laufenden Instanz:

aws ec2 describe-instances --instance-ids i-0201020e110607121 --query "Reservations[].Instances[].PublicIpAddress"

The AWS EC2 describe instances command to display public IP addresses

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

An example of the AWS CLI describe instances command with AWS CLI filters

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. A simple AWS CLI EC2 command to describe EBS volumes

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[]'

Displaying information about EBS volumes using AWS EC2 filters

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 --description 'Volume Snapshot for ATA Blog via the AWS CLI' --tag-specifications 'ResourceType=snapshot,Tags=[{Key=Name,Value=FileServer01},{Key=Purpose,Value=Enterprise File Storage}]'

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":"

Probieren Sie NAKIVO Backup & Replication aus

Probieren Sie NAKIVO Backup & Replication aus

Nutzen Sie die kostenlose Testversion, um alle Funktionen der Datensicherheit der Lösung kennenzulernen. 15 Tage kostenlos. Keine Einschränkungen hinsichtlich Funktionen oder Kapazitäten. Keine Kreditkarte erforderlich.

Empfohlene Artikel