Auto-Scaling (deutsch „automatische Skalierung") passt die Rechenressourcen einer Anwendung automatisch an die aktuelle Last an: Bei viel Verkehr kommen Server hinzu, bei wenig werden sie wieder abgebaut. So zahlt man nur für das, was wirklich gebraucht wird, und die Anwendung bleibt auch bei Lastspitzen verfügbar. Auto-Scaling ist ein Kernfeature des Cloud-Computing-Modells.
Vertikal vs. horizontal
Vertikal (Scale-up): ein Server bekommt mehr CPU/RAM → Grenze erreicht
Horizontal (Scale-out): weitere Server kommen dazu → praktisch unbegrenzt
- Vertikale Skalierung: Die vorhandene Maschine wird größer (mehr Kerne, mehr RAM). Einfach, aber begrenzt durch die Maximalgröße eines Servers — und ein Neustart ist oft nötig.
- Horizontale Skalierung: Mehrere gleiche Instanzen teilen sich die Arbeit, ein Load Balancer verteilt die Anfragen. Nahezu unbegrenzt und der Standard in der Cloud.
Wie Auto-Scaling funktioniert
- Metriken beobachten: CPU-Auslastung, RAM, Anzahl der Anfragen, Antwortzeiten oder Warteschlangenlänge werden kontinuierlich gemessen — verwandt mit Throughput und Latenz.
- Schwellwerte setzen: z. B. „Wenn die CPU über 70 % steigt, eine Instanz hinzufügen; unter 30 % eine entfernen".
- Richtlinien und Grenzen: Min/Max-Instanzen definieren, damit die Kosten kontrollierbar bleiben — niemand will unbegrenzt skalieren.
- Automatisch handeln: Die Cloud-Plattform startet oder beendet Instanzen ohne menschliches Zutun.
Beispiele aus der Praxis
- AWS Auto Scaling: EC2-Instanzgruppen und -Dienste werden nach Metriken automatisch vergrößert oder verkleinert.
- Kubernetes HPA (Horizontal Pod Autoscaler): Skaliert Kubernetes-Container automatisch nach CPU oder eigenen Metriken.
- Serverless-Plattformen: Bei Serverless-Funktionen übernimmt der Anbieter die Skalierung vollständig — bis auf null bei Inaktivität.
- Datenbanken: Auch verwaltete Datenbanken lassen sich automatisch vergrößern (Storage, Replikate).
Vorteile und Risiken
- Kosten sparen: Im IaaS-Modell mit Pay-as-you-go zahlt man nur die tatsächlich laufenden Instanzen — außerhalb der Stoßzeiten sind es oft nur wenige.
- Verfügbarkeit: Lastspitzen (Sale, Launch, Angriff) werden abgefangen, Ausfälle einzelner Instanzen durch frische ersetzt — das unterstützt Hochverfügbarkeit.
- Risiko Fehlkonfiguration: Zu aggressive Regeln erzeugen Kostenexplosionen, zu träge Regeln lassen die Anwendung bei Lastspitzen langsam werden. Skalierungsregeln gehören deshalb ins Monitoring und in Lasttests.
- Stateless designen: Anwendungen müssen so gebaut sein, dass jede Instanz austauschbar ist — Sitzungen und Dateien gehören in geteilte Speicher (Object Storage, Datenbanken, Session-Stores), nicht auf die lokale Platte.
Verwandte Grundlagen: Skalierung, Cloud Computing, Kubernetes, Container, Load Balancer, Serverless, IaaS, PaaS, SaaS.