Türchen #19: Darf es etwas mehr sein?
Von Dirk Piethan am 19. Dezember 2019
AWS Auto Scaling
Gerade für AWS Einsteiger ist Auto Scaling ein interessantes Thema, denn im On Premises Bereich ist das Handling
auf mögliche Lastspitzen indes mit erhöhten Aufwand zu betreiben und somit wirtschaftlich schwierig zu kalkulieren.
Genau in diesem Punkt spielen Cloud Anbieter wie AWS ihre Stärken aus, den hier sind die Limits häufig soft und können daher einfach angepasst werden.
Wir wollen heute zeigen, für welche Dienste ihr Auto Scaling nutzen könnt, anders als meist bekannt skalieren nicht nur EC2 Instanzen, sondern
auch andere Services.
AWS Dienste mit Auto Scaling
- Amozon EC2 Instances
- Amazon ECS
- Amazon DynamoDB
- AWS RDS Aurora
Wie skalieren welche Services?
In diesen Abschnitt möchten wir erläutern, wie die AWS Services skalieren. AWS bietet uns hier zwei unterschiedliche Wege an,
der klassische durch Metriken geplante und einen durch Machine Learning beeinflusste.
Für die durch Metriken geführte Skalierung werfen wir einen Blick auf CloudWatch, dieser Dienst überwacht deine AWS Services in Echtzeit, stellt Metriken und benutzerdefinierte Dashboards bereit. Zusätzlich ist CloudWatch in der Lage Alarme auszulösen, die über andere AWS Service wiederum
Aktionen triggern (Emails oder Slack Benachrichtigungen). Ein weiterer Trigger ist dabei, dass Aktionen der Auto Scaling Konfigurationen ausgelöst werden, und so Dienste dynamisch skalieren können.
Bei der Predictive Scaling, wird die Skalierung durch Machine Learning gelenkt. Diese Art der intelligenten Steuerung werden Perfomance Daten erhoben und durch das Machine Learning ausgewertet. Das Predictive Scaling berechnet auf Basis von täglichen und wöchentlichen Beobachtungen einen Forecast für die nächsten 48 Stunden, wobei dieser alle 24 Stunden evaluiert wird.
Amazon EC2 Instanzen
Bei Amazon EC2 Auto Scaling unterscheidet man zwischen Scheduled Scaling und Dynamic Scaling. Scheduled Scaling bietet sich dann an, wenn die Lasten vorhersehbar sind, wie z.B. wenn
morgens die Mitarbeiter sich anmelden und abends abmelden. Für diesen Zeitraum ist somit eine höhere Auslastung zu erwarten.
Beim Dynamic Scaling gehen wir einen anderen Weg, und nutzen Metriken, mit denen die Kapazität der EC2 Instanzen gesteuert wird,
dies kann z.B. die CPU-Auslastung sein, z.B. wenn diese über 50 Prozent steigt, sollen weitere zwei Server bereitgestellt werden, sinkt die CPU Last z.B. auf 10 Prozent herab, werden diese wieder um zwei Instanzen reduziert.
Amazon ECS
Bei Amazon ECS Service Auto Scaling unerscheidet man ebenfalls zwischen Scheduled Scaling und Dynamic Scaling. Weshalb auch hier analog zu den EC2 Instanzen verfahren werden kann, nur dass eben mehr ECS Task gestartet werden.
Amazon DynamoDB
Auch die Amazon DynamoDB nutzt den AWS Auto Scaling Service, hier können bei Tabellen oder globalen sekundären Indizes eine höhere Schreib- und/oder Lesekapazität eingeplant werden.
Amazon Aurora
Amazon Aurora ist ein MySQL oder PostgreSQL kompatibler AWS RDS Service, so kannst Du auch hier auf höhere Lasten mit weiteren Aurora Replikas reagieren.