WAF++ WAF++
Back to WAF++ Homepage

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

  1. Scaling-Metrik wählen: ALB-Request-Count (HTTP-APIs), Queue-Depth (Worker), Custom Metrics (spezielle Workloads)

  2. Schwellenwerte aus Lasttest ableiten: Welcher Request/s-Wert führt zur P95-Latenz von SLO/2?

  3. min/max konfigurieren: min >= 2 für Redundanz; max = 3–5x erwartete Normallast

  4. Cooldowns konfigurieren: Scale-out 60s, Scale-in 300s (konservativ)

  5. Instance Warmup konfigurieren: 60–120s, damit neue Instanzen nicht sofort belastet werden

  6. Lasttest ausführen: Gradual-Load-Profil bis 2x Peak; Auto-Scaling-Trigger validieren

  7. 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
resource "aws_autoscaling_group" "api" {
  min_size          = 2
  max_size          = 10
  desired_capacity  = 2
  health_check_type = "ELB"
}
resource "aws_autoscaling_policy" "scale" {
  policy_type = "TargetTrackingScaling"
  target_tracking_configuration {
    predefined_metric_specification {
      predefined_metric_type = "ALBRequestCountPerTarget"
    }
    target_value = 1000.0
  }
}
resource "aws_autoscaling_group" "api" {
  min_size = 1
  max_size = 1
  # max=min=1 – kein Scaling
  # WAF-PERF-020 Violation
}

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.