T-Systems-Claim-Logo
Suchen
Glühbirnen auf violettem Hintergrund, von denen eine eingeschaltet ist

EC2-Kostenoptimierung durch nächtliche Shutdowns

Geld sparen mit unserer Schritt-für-Schritt-Anleitung. Erfahren Sie, wie Sie Ihre EC2-Instanzen automatisch abschalten

20. August 2021Aleksa Perovic

Einsparungspotenzial in der Cloud ermitteln

Pay-as-you-go-Preismodelle der Cloud-Anbieter bieten enorme Flexibilität. Software und Apps 24/7 laufen zu lassen, kann teuer sein. Bei großen Unternehmen bleiben Kostenblöcke oft unentdeckt hoch, da sich Kosten meist nicht separat abrechnen lassen. Als AWS-Partner haben wir einen Weg gefunden, Kosten zu sparen: Nicht benötigte Amazon Elastic Compute Cloud (EC2) Instanzen über Nacht abschalten. Wir erklären Schritt für Schritt, wie das geht.

Planen von Instanzen in Amazon Web Services

Eine Hand, die eine Münze in ein mit Münzen gefülltes Glas steckt und eine Hand, die auf einem Taschenrechner tippt

Die AWS Solutions Library enthält einen Instance Scheduler: ein serverloses Tool für das automatische Starten und Stoppen von Amazon EC2- und Amazon Relational Database Service (RDS) Instanzen. Eine EC2-Instanz ist ein virtueller Server in der Amazon Elastic Compute Cloud zur Ausführung von Anwendungen auf der AWS-Infrastruktur. Diese ist Teil der Cloud Computing Plattform AWS von Amazon. RDS hingegen vereinfacht das Einrichten, Verwalten und Skalieren einer relationalen Datenbank in der Cloud. 
Mit dem Instance Scheduler lassen sich mehrere Zeitpläne für unterschiedliche Anwendungsfälle festlegen. So können Benutzer beispielsweise Zeitpläne erstellen für:

  • Anwendungen, die von Montag bis Freitag während der Geschäftszeiten laufen
  • Instanzen, die jeden Abend für eine Stunde Auswertungen durchführen 

In der IT-Umgebung unserer Kunden wird der Instance Scheduler zentral verwaltet, sodass keine zusätzlichen Betriebskosten anfallen. Die Lösung ist äußerst benutzerfreundlich, da der Nutzer lediglich das entsprechende Zeitplan-Tag zu den Instanzen hinzufügen muss.

Diagramm des AWS Instance Scheduler

AWS Instance Scheduler

AWS-Lösungsimplementierung für die Cloud

Diagramm des AWS Instance Scheduler

Der AWS Instance Scheduler ist eine skalierbare Lösung vom Anbieter Amazon für die Cloud. Der Vorteil: Die Lösungsimplementierung ist für große AWS-Organisationen mit einer großen Anzahl von Konten ebenso gut geeignet, wie für Umgebungen mit nur einem Konto. Große AWS-Organisationen benötigen für die Nutzung der Cloud-Lösung folgende Anpassungen:

  1. Rollout einer AWS-Rolle auf alle Konten, über die der Instance Scheduler einzelne Instanzen starten und stoppen kann.
  2. Die Rolle in jedem Konto gilt es zur zentralen DynamoDB-Tabelle des Instance Scheduler hinzuzufügen.
  3. Die Lambda-Funktion – die, die API-Aufrufe zum Starten und Stoppen verarbeitet – gilt es für die Verwaltung von Tausenden von Instanzen anzupassen. Die Anpassung erfordert im Speicher mehr Speicherplatz sowie eine verringerte Aufrufhäufigkeit, um die Last zu bewältigen. 

Liste neuer Instanzen mit Zeitplan versehen

Nachdem Sie den Instance Scheduler konfiguriert haben, müssen Sie die EC2-Instanzen mit dem entsprechenden Zeitplan versehen. In AWS-Organisationen mit Hunderten von Konten ist dies nicht einfach. Denn oft sind Instanzen nicht einheitlich oder gar nicht mit Tags versehen. Um dieses Problem anzugehen, haben wir für einen unserer Kunden folgende Automatisierung umgesetzt:   

  1. In jedem Projektkonto wird eine EventBridge-Regel ausgerollt (zuvor CloudWatch Events genannt). Sie wird ausgelöst, wenn CloudTrail den API-Aufruf „RunInstances“ erfasst.
  2. Das Ereignis wird bei Erstellen einer EC2-Instanz veröffentlicht und an einen Event-Bus in einem zentralen Konto und dann an die Lambda-Funktion AutoTag weitergeleitet.
  3. Die Lambda-Funktion prüft das eingehende Ereignis und filtert Instanzen heraus, die:  
    - Teil einer Autoscaling-Gruppe sind
    - von AWS-Services wie EKS/ECS, Beanstalk, Cloud9 usw. erstellt wurden
    - bereits mit einem Zeitplan-Tag versehen sind
  4. Für alle Instanzen, die über Nacht heruntergefahren werden sollen, übernimmt der Lambda eine Rolle im jeweiligen Projektkonto und markiert die neu erstellte EC2-Instanz.

Automatisches tagging von EC2 Instanzen 

Zugriff auf bestehende Instanzen verwalten

Da nun alle neuen Instanzen automatisch und vollständig gekennzeichnet sind, liegt die nächste Herausforderung bei den bestehenden EC2-Instanzen. Sie sind die eigentlichen Kostentreiber und daher gilt es sie in die nächtlichen Einsparungen einzubeziehen. Für einen unserer Unternehmenskunden haben wir dieses Problem gelöst. Wir ließen allen Projektkontoinhabern die Information zukommen, dass wir Instanzen in nicht produktiven Konten zu einem bestimmten Datum zentral kennzeichnen werden.

Am Fälligkeitstag haben wir ein zentrales Lambda ähnlich dem Auto-Tag-Lambda aufgerufen. Es übernahm eine Rolle in jedem Projektkonto und fügte mit dem bereits erwähnten Filtermechanismus Tags zu bestehenden Instanzen hinzu. Es wurde auch ein Zeitplan speziell für den Ausstieg aus dem Projekt festgelegt und den Projektkontoinhabern im Voraus mitgeteilt, falls sie ihre Instanzen rund um die Uhr ausführen mussten.

Zeit-Management in der Cloud senkt Kosten

Der Instance Scheduler automatisiert das Starten und Stoppen von virtuellen Servern in der EC2. Mit einigen Anpassungen ist es möglich, das Tool in großen AWS-Organisationen einzusetzen, um Instanzen über Nacht abzuschalten und messbare Kosteneinsparungen zu erzielen. Bei der Nutzung mehrerer Autoscaling-Gruppen oder den zuvor erwähnten AWS-Services (EKS/ECS, Beanstalk, Cloud9), ist das Einsparpotenzial im Vergleich möglicherweise geringer. Bei dem Beispiel unseres Unternehmenskunden konnten wir die Kosten für EC2-Instanzen um 15 Prozent senken, obwohl mehrere Autoscaling-Gruppen im Einsatz waren.

Wenn Ihnen dieser Blogbeitrag gefallen hat, lesen Sie auch in unseren zukünftigen Beiträgen weitere Informationen über Möglichkeiten, Ihre Cloud-Kosten zu senken.

Zur Person
Aleksa Perovic, Cloud Solution Architekt

Aleksa Perovic

Cloud Solution Architekt, T-Systems International GmbH

Profil und alle Artikel ansehen

Das könnte Sie auch interessieren

Besuchen Sie t-systems.com außerhalb von Germany? Besuchen Sie die lokale Website für weiterführende Informationen und Angebote für Ihr Land.