Eine Schritt-für-Schritt-Anleitung zum Erstellen und Bereitstellen einer kostensparenden Lambda-Funktion für das EBS-Snapshot-Management
Willkommen in der Welt von DevOps! Heute befassen wir uns mit einem spannenden Kostenoptimierungsprojekt, das sich mit einer häufigen Herausforderung von AWS-Benutzern befasst – der Verwaltung unnötiger EBS-Snapshots. In diesem Projekt erstellen wir ein Python-Programm, das Folgendes automatisch bereinigt:
Dieses praktische Projekt ist nicht nur eine großartige Möglichkeit, Ihre AWS-Speicherkosten zu senken, sondern auch eine Gelegenheit, Ihr Verständnis der Ressourcennutzung in AWS zu vertiefen. Unterwegs erkunden wir boto3, das AWS SDK für Python, um mit AWS-Ressourcen zu interagieren und sie entsprechend unseren Anforderungen zu manipulieren.
Beginnen wir mit dieser Reise, um kostensparende Maßnahmen zu automatisieren und Ihre DevOps-Fähigkeiten zu verbessern!
Bevor wir mit dem Aufbau unseres Kostenoptimierungsprojekts beginnen, stellen wir sicher, dass Sie über die erforderlichen Tools und Kenntnisse verfügen. Das brauchen Sie:
aws configure
In diesem Schritt werden Ihre Zugriffsschlüssel, Ihre Region und Ihr Ausgabeformat eingerichtet, um eine nahtlose Kommunikation mit AWS-Diensten zu ermöglichen.
Sobald Sie diese Voraussetzungen erfüllt haben, können Sie mit dem Projekt fortfahren!
Der Quellcode für dieses Projekt ist in meinem GitHub-Repository verfügbar:
? GitHub Repo: AWS Cloud-Kostenoptimierung
Folgen Sie diesen Schritten, um Ihre Lambda-Funktion zu erstellen und zu konfigurieren:
Erstellen Sie eine Lambda-Funktion:
Fügen Sie den Code hinzu:
aws configure
Stellen Sie den Code bereit:
Timeout erhöhen:
Testen Sie die Funktion:
Dieser Fehler tritt auf, weil der Lambda-Funktion die erforderlichen Berechtigungen fehlen, die wir im nächsten Schritt beheben werden.
Damit die Lambda-Funktion mit EC2-Ressourcen interagieren kann, müssen wir ihrer Servicerolle spezifische Berechtigungen hinzufügen. Anstatt vollen Zugriff zu gewähren, folgen wir dem Prinzip der geringsten Rechte, um sicherzustellen, dass die Funktion nur über die Berechtigungen verfügt, die sie benötigt. Befolgen Sie diese Schritte:
Suchen Sie die Servicerolle:
Öffnen Sie die Servicerolle in IAM:
Erstellen Sie eine Inline-Richtlinie:
Richtlinie überprüfen und zuweisen:
Die ebs-Berechtigungsrichtlinie sieht folgendermaßen aus:
Sobald diese Inline-Richtlinie hinzugefügt wurde, verfügt die Lambda-Funktion über alle Berechtigungen, die sie zum effektiven Beschreiben und Löschen von Snapshots, Volumes und Instanzen benötigt.
Sobald die Berechtigungen vorhanden sind, testen wir die Funktion im nächsten Schritt noch einmal!
Sobald die Berechtigungen vorhanden sind, ist es an der Zeit, unsere Lambda-Funktion anhand realer Szenarien zu testen. Befolgen Sie diese Schritte, um zu sehen, wie die Funktion funktioniert:
1. Erster Anwendungsfall: Snapshots gelöschter Instanzen bereinigen
Erstellen Sie eine EC2-Instanz:
Schnappschuss erstellen:
Instanz löschen:
Sobald der Snapshot fertig ist, beenden Sie die test-ebs-Instanz. Dadurch bleibt ein Snapshot einer nicht vorhandenen Instanz zurück, die nun überflüssig ist.
Führen Sie die Lambda-Funktion aus:
Überprüfen Sie den Löschvorgang im Abschnitt „Snapshots“ des EC2-Dashboards.
2. Zweiter Anwendungsfall: Bereinigen von Snapshots gelöschter Volumes
Erstellen Sie ein EBS-Volume:
Schnappschuss erstellen:
Volume löschen:
Sobald der Snapshot fertig ist, löschen Sie das ebs-Volume. Dadurch bleibt ein Snapshot zurück, der keinem Volume zugeordnet ist.
Führen Sie die Lambda-Funktion aus:
Durch die erfolgreiche Bewältigung dieser beiden Szenarien demonstriert die Lambda-Funktion ihre Fähigkeit, redundante EBS-Snapshots zu identifizieren und zu bereinigen, wodurch Kosten gespart und das Ressourcenmanagement optimiert werden.
Herzlichen Glückwunsch! ? Sie haben gerade eine Kostenoptimierungslösung auf AWS mit Python und Lambda erstellt. In diesem Projekt haben wir untersucht, wie Sie redundante EBS-Snapshots, die keinen Zweck mehr erfüllen, identifizieren und bereinigen können, um Ihnen dabei zu helfen, Cloud-Kosten zu sparen und gleichzeitig das Ressourcenmanagement zu verbessern.
Hier ist eine kurze Zusammenfassung dessen, was wir erreicht haben:
Dieses Projekt unterstreicht die Bedeutung der Ressourcenoptimierung in einer Cloud-Umgebung und vermittelt Ihnen praktische Erfahrung in der Automatisierung von AWS-Aufgaben mit Python.
Sie können diese Funktion gerne weiter anpassen und erweitern. Sie könnten beispielsweise eine CloudWatch-Regel einrichten, um die Funktion regelmäßig auszulösen, oder die Logik erweitern, um zusätzliche Bereinigungsszenarien zu verarbeiten.
Vielen Dank, dass Sie uns folgen, und bleiben Sie gespannt auf weitere spannende DevOps- und Cloud-Projekte! ?
? Für einen informativeren Blog folgen Sie mir auf Hashnode, X(Twitter) und LinkedIn.
Bis dahin viel Spaß beim Lernen! ?
Das obige ist der detaillierte Inhalt vonOptimieren Sie die AWS-Kosten: Automatisieren Sie die Bereinigung ungenutzter EBS-Snapshots mit Lambda. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!