Amazon CloudWatch stellt eine Echtzeit Überwachungsfunktion für EC2-Instanzen bereit. Dabei wird der gesamte Ressourcenverbrauch wie die CPU-Auslastung, die Schreib/Lesezugriffe der Festplatten sowie die Netzlast/ Traffic visualisiert. Die Werte werden jede Minute aktualisiert und zwei Wochen gespeichert. Für die Nutzung von CloudWatch muss der Dienst nur einer EC2-Instanz zugewiesen werden. Die Datenauswertung erfolgt anschließend über die AWS Management Console, die Webservice APIs oder über die Kommandozeile.
Bei Elastic Load Balancing [1] handelt es sich um einen Loadbalancer von Amazon für sein EC2. Dabei wird der eingehende Traffic auf mehrere dahinter liegende EC2-Instanzen verteilt um damit Überlastungen zu vermeiden und einen unterbrechungsfreien Dienst zu garantieren. Fällt eine Instanz temporär aus, wird der Traffic durch den Loadbalancer automatisch auf die restlichen funktionsfähigen Instanzen umgeleitet, bis die ausgefallene Instanz wiederhergestellt ist. Das Elastic Load Balancing funktioniert für einzelne oder aber auch über mehrere Verfügbarkeitszonen hinweg. Entwickler haben darüber hinaus die Möglichkeit über sogenannte Health Checks z.B. mittels Pings oder URL-Fetches die Verfügbarkeit der Instanzen zu prüfen.
[2]
Um garantiert nie weniger als z.B. zwei funktionsfähige EC2 Instanzen hinter dem Elastic Load Balancer arbeiten zu lassen, kann das Elastic Load Balancing mit dem Autoscaling kombiniert werden. Dazu wird das Autoscaling so konfiguriert, dass nie weniger als zwei funktionsfähige EC2 Instanzen vorhanden sein dürfen. Der Ausfall einer Instanz wird dann durch das Autoscaling erkannt, was dazu führt, dass automatisch die erforderliche Menge von EC2-Instanzen zu der Autoscaling Gruppe hinzugefügt werden.
Ein kurzes Video Tutorial zeigt den Start eines Linux Webservers auf einer Amazon EC2-Instanz mit dem Firefox EC UI Plugin und einem anschließenden Zugriff per SSH.
Autoscaling [1] sorgt dafür, dass die Anzahl der Server innerhalb einer Server-Farm automatisch skaliert. Bei steigender Serverlast wird die Arbeit dann von einer größeren Anzahl an Servern übernommen. Sinkt die Serverlast werden die nicht mehr benötigten Server automatisch heruntergefahren.
[2]
Autoscaling ist typisch für das Cloud Computing und ist dann vorteilhaft, wenn die Auslastung der Server großen Schwankungen zugrunde liegt. Ein typischer Fall sind Webseiten, die nur zeitlich oder saisonal stark betroffen sind. Viele Webseiten “schlafen” am Tag und müssen in der Nacht Spitzenlasten verarbeiten. Ein anderes Beispiel sind Webshops, die über das Jahr hinweg eine konstante Besucherzahl haben, aber zu Feiertagen, wie z.B. Weihnachten zunehmend “überlaufen” werden. Das Gleiche gilt für Online Reisebüros, die im Sommer und im Winter ihre Spitzenzeiten haben, im Früjahr und Herbst aber eher weniger ausgelastet sind. Das Autoscaling sorgt in diesen Fällen dafür, dass während der Spitzenzeiten automatisch die Performance der Webseiten mitwächst und in den Zeiten, wo weniger Last zu verarbeiten ist, die überschüssigen Server “abgestossen” werden. Es handelt sich also um eine dynamische Skalierung der zum jeweiligen Zeitpunkt benötigten Performance.
Die technischen als auch wirtschaftlichen Vorteile liegen somit auf der Hand. Da im Cloud Computing die Server pro Stunde “gemietet” und abgerechnet werden, können durch die Verringerung der eingesetzten Server während geringer Lastzeiten ebenfalls die Kosten reduziert werden. Auf Grund der Nutzung einer höheren Anzahl an Servern zu Spitzenzeiten, werden Performanceprobleme vermieden.
Ein Video der Elusive KG veranschaulicht wie autoscaling funktioniert.