WAF-PERF-020 – Auto-Scaling Configured & Tested
Beschreibung
Alle zustandslosen Produktions-Workloads mit variablem oder unvorhergesagtem Traffic MÜSSEN Auto-Scaling konfiguriert haben. Auto-Scaling-Policies MÜSSEN auf aussagekräftigen Metriken basieren (Anfrage-Latenz, Request-Rate, Queue-Tiefe). Auto-Scaling-Konfigurationen MÜSSEN unter realistischer Last getestet werden, bevor sie in Produktion gehen.
Kein Deployment in Produktion ohne validierten Skalierungspfad.
Rationale
Statische Kapazität erzeugt ein unlösbares Dilemma: Überprovisionierung für Peaks (teuer) oder Unterprovisionierung und Degradation bei unerwarteter Last (riskant). Auto-Scaling löst dieses Dilemma – aber nur, wenn korrekt konfiguriert. Falsche Schwellenwerte, fehlende Cooldowns oder das Fehlen von Instance Warmup-Konfiguration führen zu Scaling-Versagen im kritischen Moment.
Jede Auto-Scaling-Konfiguration, die nie unter Last getestet wurde, ist faktisch nicht vorhanden.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Kapazitätsengpass bei Lastspitze |
Nicht-skalierender Service degradiert oder fällt aus während Traffic-Peaks. |
Scaling-Oscillation |
Falsch konfigurierte Cooldowns führen zu konstantem Scale-out/Scale-in (Kosten + Instabilität). |
Zu spätes Scaling |
Threshold zu hoch oder Skalierungsmetrik falsch → Scaling triggers erst wenn SLO bereits verletzt. |
Cold-Start-Latenz |
Instance Warmup fehlt → neue Instanzen werden sofort mit vollem Traffic belastet. |
Anforderung
-
Alle zustandslosen Produktions-Workloads MÜSSEN Auto-Scaling konfiguriert haben (min >= 1, max >= 2)
-
Scaling-Metriken MÜSSEN auf Anwendungsverhalten basieren, nicht nur auf CPU
-
Auto-Scaling MUSS durch Lasttest validiert werden (Nachweis: Test-Report)
-
Scale-in-Cooldown MUSS >= Scale-out-Cooldown (konservativer Scale-in)
Implementierungsanleitung
-
Scaling-Metrik wählen: ALB-Request-Count (HTTP-APIs), Queue-Depth (Worker), Custom Metrics (spezielle Workloads)
-
Schwellenwerte aus Lasttest ableiten: Welcher Request/s-Wert führt zur P95-Latenz von SLO/2?
-
min/max konfigurieren: min >= 2 für Redundanz; max = 3–5x erwartete Normallast
-
Cooldowns konfigurieren: Scale-out 60s, Scale-in 300s (konservativ)
-
Instance Warmup konfigurieren: 60–120s, damit neue Instanzen nicht sofort belastet werden
-
Lasttest ausführen: Gradual-Load-Profil bis 2x Peak; Auto-Scaling-Trigger validieren
-
Monitoring konfigurieren: Alert wenn Desired Capacity >= 80% Max Capacity
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Statische Kapazität |
Kein Auto-Scaling; manuelle Anpassung bei Lastspitzen; typischerweise unkritisch überprovisioniert. |
2 |
Konfiguriert, nicht validiert |
ASG/VMSS konfiguriert; Default-CPU-Threshold; nie unter Last getestet. |
3 |
Validiert mit Lasttest |
Richtige Metriken; Lasttest-Validierung; dokumentierte Grenzen; Health-Check-Typ konfiguriert. |
4 |
Predictive & Event-Driven |
Predictive Scaling; Queue-basiertes Scaling; Scale-out-Dauer im SLO gemessen. |
5 |
Autonomes Capacity Management |
Vollständig automatisiert; ML-basierte Policies; SLO-Breach-Prediction vor Eintreten. |
Terraform Checks
waf-perf-020.tf.aws.autoscaling-group-policy
Prüft: AWS Auto Scaling Groups müssen min >= 1, max >= 2 und Health-Check-Type haben.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: min_size >= 2 für Produktions-Redundanz, max_size >= 3 für Scaling-Fähigkeit.
Scaling-Policy hinzufügen (TargetTracking oder StepScaling). Health-Check-Type auf ELB setzen.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Auto-Scaling-Konfiguration mit min/max und Scaling-Policy. |
Process |
✅ Pflicht |
Lasttest-Ergebnisse die belegen, dass Scaling innerhalb des Latenz-SLO auslöst. |
Config |
Optional |
CloudWatch/Azure Monitor/GCP-Alerts für Scaling-Events konfiguriert. |
Governance |
Optional |
Runbook mit dokumentierten Skalierungsgrenzen und bekannten Engpässen. |