Die 10 wichtigsten AWS CLI-Befehle für die tägliche Ressourcenverwaltung
Einführung
In der dynamischen Welt des Cloud Computing sticht Amazon Web Services (AWS) als führende Plattform hervor und bietet eine Vielzahl von Diensten an. Während die AWS Management Console eine benutzerfreundliche grafische Oberfläche bereitstellt, bietet das AWS Command Line Interface (CLI) unübertroffene Leistung und Flexibilität für die Ressourcenverwaltung. Das CLI ist ein Open-Source-Tool, das es Ihnen ermöglicht, über Befehle in Ihrem Terminal mit AWS-Diensten zu interagieren, wodurch es für die Automatisierung, das Scripting und effiziente tägliche Betriebsabläufe unverzichtbar ist.
Die Beherrschung des AWS CLI kann Ihre Produktivität erheblich steigern und Ihnen ermöglichen, Ressourcen in Ihren AWS-Konten schnell zu überprüfen, zu erstellen, zu ändern und zu löschen. Dieser Artikel dient als wichtiges Spickzettel (Cheat Sheet) und hebt die 10 wichtigsten AWS CLI-Befehle hervor, die jeder AWS-Benutzer für die tägliche Ressourcenverwaltung kennen sollte, wobei der Schwerpunkt insbesondere auf Amazon S3 (Speicher), Amazon EC2 (Rechenleistung) und AWS IAM (Identitäts- und Zugriffsverwaltung) liegt.
Unabhängig davon, ob Sie Entwickler, Betriebsingenieur oder Cloud-Administrator sind, statten diese Befehle Sie mit den Werkzeugen aus, um Ihre AWS-Umgebung effektiver zu verwalten, Probleme schneller zu beheben und sich wiederholende Aufgaben zu automatisieren. Tauchen wir ein in die Befehle, die Ihren täglichen Workflow beschleunigen werden.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass das AWS CLI auf Ihrem System installiert und konfiguriert ist. Falls nicht, folgen Sie der offiziellen AWS-Dokumentation, um es zu installieren und Ihre Anmeldeinformationen (Zugriffsschlüssel-ID, geheimer Zugriffsschlüssel und Standardregion) zu konfigurieren.
# AWS CLI Version überprüfen
aws --version
# AWS CLI konfigurieren (falls noch nicht geschehen)
aws configure
Wichtige AWS CLI-Befehle für Amazon S3 (Simple Storage Service)
Amazon S3 ist ein hoch skalierbarer, dauerhafter und verfügbarer Objektspeicherdienst. Diese Befehle sind entscheidend für die Verwaltung Ihrer Buckets und Objekte.
1. aws s3 ls - Auflisten von S3-Buckets und -Objekten
Dieser Befehl ermöglicht es Ihnen, Ihre S3-Buckets oder die Objekte innerhalb eines bestimmten Buckets aufzulisten. Er ist oft der erste Schritt, um Ihre Speicherlandschaft zu verstehen.
Zweck: Anzeigen von S3-Buckets oder Inhalten eines Buckets.
Beispiel:
# Alle S3-Buckets in Ihrem Konto auflisten
aws s3 ls
# Objekte in einem bestimmten Bucket auflisten
aws s3 ls s3://your-bucket-name/
# Objekte rekursiv mit menschenlesbaren Größen und Datumsangaben auflisten
aws s3 ls s3://your-bucket-name/ --recursive --human-readable --summarize
Tipps:
* Verwenden Sie --recursive, um alle Objekte und Unterordner aufzulisten. --summarize liefert die Gesamtzahl und -größe.
* Sie können auch einen Pfad innerhalb eines Buckets angeben: aws s3 ls s3://your-bucket-name/prefix/.
2. aws s3 cp - Kopieren von Dateien nach und von S3
Der cp-Befehl ist grundlegend für die Übertragung von Dateien zwischen Ihrem lokalen Dateisystem und S3 oder sogar zwischen S3-Buckets.
Zweck: Kopieren lokaler Dateien nach S3, S3-Objekten zum lokalen System oder S3-Objekten zwischen Buckets.
Beispiel:
# Eine lokale Datei in einen S3-Bucket kopieren
aws s3 cp local-file.txt s3://your-bucket-name/folder/remote-file.txt
# Ein Objekt von S3 auf Ihren lokalen Computer kopieren
aws s3 cp s3://your-bucket-name/folder/remote-file.txt local-copy.txt
# Ein Objekt von einem S3-Bucket in einen anderen kopieren
aws s3 cp s3://source-bucket/file.txt s3://destination-bucket/new-file.txt
# Ein lokales Verzeichnis rekursiv nach S3 kopieren
aws s3 cp --recursive local-folder/ s3://your-bucket-name/remote-folder/
Tipps:
* --recursive ist entscheidend für das Kopieren ganzer Verzeichnisse.
* Verwenden Sie --exclude und --include, um Dateien während rekursiver Kopiervorgänge zu filtern.
3. aws s3 sync - Lokale Verzeichnisse mit S3 synchronisieren
sync ist ein leistungsstarker Befehl, der den Inhalt eines Verzeichnisses mit einem S3-Präfix synchronisiert oder umgekehrt. Er kopiert nur neue oder geänderte Dateien und ist daher äußerst effizient für Backups und Bereitstellungen.
Zweck: Effiziente Synchronisierung eines lokalen Verzeichnisses mit einem S3-Bucket/Präfix.
Beispiel:
# Ein lokales Verzeichnis mit einem S3-Bucket synchronisieren
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/
# Einen S3-Bucket mit einem lokalen Verzeichnis synchronisieren
aws s3 sync s3://your-bucket-name/remote-path/ local-directory/
# Testlauf (Dry run), um zu sehen, welche Änderungen vorgenommen würden, ohne sie tatsächlich auszuführen
aws s3 sync local-directory/ s3://your-bucket-name/remote-path/ --dryrun
Best Practice: Verwenden Sie immer zuerst --dryrun, um die Änderungen vorab anzuzeigen, bevor Sie einen sync-Vorgang ausführen, insbesondere bei kritischen Daten.
4. aws s3 rm - Entfernen von S3-Objekten und Buckets
Dieser Befehl wird verwendet, um Objekte aus einem S3-Bucket zu löschen oder einen leeren Bucket zu entfernen.
Zweck: Löschen von Objekten oder leeren Buckets aus S3.
Beispiel:
# Ein einzelnes Objekt aus einem Bucket löschen
aws s3 rm s3://your-bucket-name/path/to/object.txt
# Alle Objekte in einem Ordner (Präfix) rekursiv löschen
aws s3 rm s3://your-bucket-name/folder/ --recursive
# Einen leeren Bucket löschen
aws s3 rb s3://your-bucket-name/
# Einen Bucket und alle seine Inhalte erzwingen zu entfernen (ÄUSSERST VORSICHTIG ANWENDEN!)
aws s3 rb s3://your-bucket-name/ --force
Warnung: Der Befehl aws s3 rb --force ist destruktiv und irreversibel (unwiderruflich). Wenden Sie ihn mit äußerster Vorsicht an, da er alle Objekte und Versionen innerhalb des angegebenen Buckets löscht.
Wichtige AWS CLI-Befehle für Amazon EC2 (Elastic Compute Cloud)
EC2 bietet skalierbare Rechenkapazität in der AWS Cloud. Diese Befehle helfen Ihnen bei der Verwaltung Ihrer virtuellen Server.
5. aws ec2 describe-instances - Abrufen von EC2-Instance-Details
Dies ist Ihr zentraler Befehl zum Sammeln von Informationen über Ihre EC2-Instances, einschließlich deren Zustand, öffentlicher/privater IPs, Tags und mehr.
Zweck: Detaillierte Informationen über eine oder mehrere EC2-Instances abrufen.
Beispiel:
# Alle EC2-Instances in der aktuellen Region beschreiben
aws ec2 describe-instances
# Instances mit einem bestimmten Tag beschreiben (z. B. Environment=Production)
aws ec2 describe-instances \n --filters "Name=tag:Environment,Values=Production"
# Instances anhand der Instance-ID beschreiben
aws ec2 describe-instances --instance-ids i-0abcdef1234567890
# Instances beschreiben und nach spezifischen Informationen filtern mithilfe von JMESPath (z. B. PublicIpAddress)
aws ec2 describe-instances \n --query "Reservations[*].Instances[*].{InstanceId:InstanceId,PublicIp:PublicIpAddress,State:State.Name}" \n --output table
Tipps:
* --filters ist leistungsstark, um Ergebnisse basierend auf Instance-Zustand, Tags, Instance-Typen und mehr einzugrenzen.
* --query ermöglicht es Ihnen, spezifische Datenfelder zu extrahieren und die Ausgabe neu zu formatieren (z. B. mithilfe von JMESPath-Ausdrücken).
6. aws ec2 start-instances - Gestoppte EC2-Instances starten
Verwenden Sie diesen Befehl, um eine oder mehrere gestoppte EC2-Instances zu starten. Die Instances behalten ihre privaten IP-Adressen bei.
Zweck: Den Startvorgang für gestoppte EC2-Instances initiieren.
Beispiel:
# Eine einzelne EC2-Instance starten
aws ec2 start-instances --instance-ids i-0abcdef1234567890
# Mehrere EC2-Instances starten
aws ec2 start-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
7. aws ec2 stop-instances - Laufende EC2-Instances stoppen
Dieser Befehl stoppt laufende EC2-Instances. Ihnen werden während des Stopps keine Gebühren für die Instance-Nutzung berechnet, sondern nur für angehängte EBS-Volumes.
Zweck: Laufende EC2-Instances stoppen.
Beispiel:
# Eine einzelne EC2-Instance stoppen
aws ec2 stop-instances --instance-ids i-0abcdef1234567890
# Mehrere EC2-Instances stoppen
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
# Eine Instance zwangsweise stoppen (mit Vorsicht bei Produktionssystemen verwenden)
aws ec2 stop-instances --instance-ids i-0abcdef1234567890 --force
Warnung: Das erzwungene Stoppen einer Instance kann zu Datenverlust oder Dateisystembeschädigungen führen, wenn Anwendungen nicht ordnungsgemäß heruntergefahren werden.
8. aws ec2 terminate-instances - EC2-Instances beenden (terminieren)
Das Beenden (Terminieren) einer Instance löscht diese und die zugehörigen EBS-Volumes dauerhaft (es sei denn, sie sind so konfiguriert, dass sie beim Beenden bestehen bleiben). Diese Aktion ist irreversibel.
Zweck: EC2-Instances dauerhaft löschen.
Beispiel:
# Eine einzelne EC2-Instance beenden
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890
# Mehrere EC2-Instances beenden
aws ec2 terminate-instances --instance-ids i-0abcdef1234567890 i-0fedcba9876543210
Warnung: Das Beenden ist eine dauerhafte und unwiderrufliche Aktion. Stellen Sie sicher, dass Sie Backups oder Snapshots kritischer Daten haben, bevor Sie Instances beenden.
Wichtige AWS CLI-Befehle für IAM (Identity and Access Management)
IAM ermöglicht es Ihnen, den Zugriff auf AWS-Dienste und -Ressourcen sicher zu steuern. Diese Befehle helfen bei der Verwaltung von Benutzern und deren Berechtigungen.
9. aws iam list-users - IAM-Benutzer auflisten
Dieser Befehl liefert eine Liste aller IAM-Benutzer in Ihrem AWS-Konto, zusammen mit deren ARNs, Erstellungsdaten und Benutzer-IDs.
Zweck: Alle in Ihrem AWS-Konto konfigurierten IAM-Benutzer anzeigen.
Beispiel:
# Alle IAM-Benutzer auflisten
aws iam list-users
# Benutzer auflisten und spezifische Felder mithilfe von JMESPath extrahieren
aws iam list-users --query "Users[*].{UserName:UserName,CreateDate:CreateDate,Arn:Arn}" --output table
Best Practice: Überprüfen Sie regelmäßig Ihre IAM-Benutzerliste, um sicherzustellen, dass nur notwendige Benutzer existieren und alte, ungenutzte Konten entfernt werden.
10. aws iam list-attached-user-policies - Richtlinien auflisten, die einem IAM-Benutzer zugeordnet sind
Es ist entscheidend für die Sicherheit und die Behebung von Zugriffsproblemen, zu verstehen, welche Berechtigungen ein IAM-Benutzer hat. Dieser Befehl listet die Managed Policies auf, die direkt einem bestimmten Benutzer zugeordnet sind.
Zweck: Zugeordnete Managed Policies eines IAM-Benutzers anzeigen.
Beispiel:
# Alle Managed Policies auflisten, die einem bestimmten IAM-Benutzer zugeordnet sind
aws iam list-attached-user-policies --user-name YourIAMUserName
# Inline-Richtlinien auflisten, die einem bestimmten IAM-Benutzer zugeordnet sind
aws iam list-user-policies --user-name YourIAMUserName
Tipps:
* Denken Sie daran, dass Benutzer Berechtigungen auch von Gruppen (aws iam list-groups-for-user) und Rollen erben oder Inline-Richtlinien (aws iam list-user-policies) haben können.
* Um die Details einer bestimmten Richtlinie abzurufen, verwenden Sie aws iam get-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess und anschließend aws iam get-policy-version.
Fazit
Das AWS CLI ist ein unglaublich leistungsfähiges Tool für jeden, der Ressourcen auf Amazon Web Services verwaltet. Die zehn in diesem Leitfaden dargelegten Befehle – die S3, EC2 und IAM abdecken – bilden die Grundlage der täglichen Betriebsabläufe und ermöglichen es Ihnen, Cloud-Ressourcen effizient und präzise aufzulisten, zu erstellen, zu ändern und zu löschen.
Indem Sie diese Befehle in Ihren Arbeitsalltag integrieren, können Sie Ihre Workflows optimieren, sich wiederholende Aufgaben automatisieren und tiefere Einblicke in Ihre AWS-Umgebung gewinnen. Denken Sie daran, dass das AWS CLI umfangreiche Funktionen bietet, die über diese wesentlichen Befehle hinausgehen; wir ermutigen Sie, die offizielle AWS CLI-Dokumentation zu erkunden, um Ihr Toolkit weiter auszubauen und fortgeschrittenere Funktionen zu entdecken. Regelmäßiges Üben und Erforschen wird Ihr Fachwissen festigen und Sie in die Lage versetzen, das volle Potenzial von AWS auszuschöpfen.
Beginnen Sie noch heute mit dem Üben dieser Befehle, und sehen Sie zu, wie Ihre Produktivität bei der Cloud-Verwaltung in die Höhe schnellt!