AWS bietet uns viele Möglichkeiten manuelle Schritte zu automatisieren. Wir können auf Ereignisse aus dem Monitoring Service CloudWatch reagieren und dadurch Systeme schaffen, die sich selbst wiederherstellen können.
In verwalteten Services sind diese automatischen Wiederherstellungsmöglichkeiten oftmals integriert. Mit Lambda Funktionen können wir die automatische Wiederherstellungen nach einem Fehler auch für andere Systeme umsetzen.
Mithilfe von Infrastructure-as-Code Templates können wir Änderungen an unserer Infrastruktur automatisieren . Die Code Templates können wir in Version Control Systemen (wie Git) verwalten, das Deployment automatisieren und als Dokumentation der Infrastruktur nutzen. Hierdurch können mehrere gleichartige (Entwicklungs-, Test-, Produktiv-) Umgebungen geschaffen werden.
Damit wir die Verfügbarkeit von Workloads bei steigenden Nachfragen gewährleisten können, müssen diese skalierbar sein. Im Wesentlichen gibt es zwei Arten der Skalierung:
- Vertikale Skalierung ist die Erhöhung von Ressourcen, durch Ändern der Instanzklasse. In den meisten Fällen wird hierdurch der Betrieb unterbrochen.
- Horizontale Skalierung bezeichnet das Hinzufügen weiterer Server zur Verteilung der Last.
Die horizontale Skalierung ist im Cloud-Umfeld die bevorzugte Variante, da dies kosteneffizienter ist, keine Unterbrechung verursacht und (nahezu) beliebige Anfragelasten bewältigen kann.
Indem wir unseren Ressourcenbedarf auf Basis einer Analyse bestimmen und Schritt für Schritt an den Idealzustand anpassen, vermeiden wir die Überlastung und Verschwendung von Ressourcen.
Bei einer Lift-and-Shift Migration werden die Ressourcen häufig anhand der vorherigen Konfigurationen getroffen. Dies ist valides Vorgehen. Jedoch muss eine konstante Anpassung erfolgen, falls sich anhand von Metriken herausstellen sollte, dass eine Verschwendung oder Überlastung vorliegt.
Datensicherungen herzustellen ist in AWS sehr simpel. Mithilfe von AMIs, Snapshots oder Datenexporten nach S3 kann dies in kürzester Zeit realisiert werden. Durch AWS Backup wurde dieser Vorgang noch einmal vereinfacht.
Der entscheidende Schritt wird jedoch häufig vernachlässigt. Wir sollten zwingend die Wiederherstellung von Backups testen! Nur so können wir sicher sein, dass unsere Anwendungen auch nach einem Absturz wieder funktionsfähig sind und der Geschäftsbetrieb wiederhergestellt werden kann.