WAF-REL-030 – Multi-AZ High Availability Deployment
Beschreibung
Alle Produktions-Workloads MÜSSEN über mindestens 2 Availability Zones verteilt sein. Single-AZ-Deployments in Produktion sind ohne schriftliche Risk Acceptance nicht zulässig. Datenbanken MÜSSEN Multi-AZ mit automatischem Failover konfigurieren. Kubernetes MUSS Topology Spread Constraints zur AZ-Verteilung verwenden.
Rationale
AZ-Ausfälle sind der häufigste cloud-infrastrukturelle Störungstyp. Ein System in einer einzigen AZ erleidet bei einem AZ-Ereignis 100% Ausfall. Der Kostenzuwachs für Multi-AZ ist im Vergleich zu einem einzelnen Produktionsausfall vernachlässigbar. Multi-AZ ist der absolute Mindeststandard für produktive High-Availability-Systeme.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
AZ-Ausfall = Totalausfall |
Single-AZ Deployment: Jede AZ-Störung führt zu vollständigem Service-Ausfall. |
Datenbank Single Point of Failure |
Single-AZ RDS: Bei AZ-Ausfall ist Datenbank stundenlang nicht erreichbar. |
Kubernetes Pod-Konzentration |
Ohne Topology Spread landen alle Pods in einer AZ: Single-Pod-Klasse als SPOF. |
Automatisches Failover fehlt |
Multi-AZ konfiguriert, aber Failover nicht automatisch → manuelle Intervention bei AZ-Ausfall. |
Anforderung
-
Alle Produktions-Compute-Ressourcen: mindestens 2 AZs
-
Auto Scaling Groups:
min_size >= 2, Subnets in min. 2 AZs -
Alle Produktionsdatenbanken: Multi-AZ mit automatischem Failover
-
Kubernetes:
topologySpreadConstraintsmit Zone-Key konfiguriert -
Load Balancer: Subnets in min. 2 AZs
Implementierungsanleitung
-
ASG Subnets:
vpc_zone_identifiermit Subnets aus min. 2 AZs -
ASG Min Size:
min_size = 2– eine Instanz kann AZ-Ausfall nicht überstehen -
RDS Multi-AZ:
multi_az = true– synchrone Replikation, Auto Failover < 2 Minuten -
ElastiCache: Multi-AZ Replication Group mit
automatic_failover_enabled = true -
Kubernetes:
topologySpreadConstraints.topologyKey = topology.kubernetes.io/zone -
AZ-Failover testen: Instanzen in einer AZ terminieren und Recovery beobachten
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Single-AZ |
Alle Ressourcen in einer AZ; keine Redundanz. |
2 |
DB Multi-AZ |
Datenbanken Multi-AZ; Compute noch Single-AZ. |
3 |
Vollständig Multi-AZ |
Alles in min. 2 AZs; LB und ASG multi-AZ konfiguriert; AZ-Test quartalsweise. |
4 |
Auto-Failover getestet |
Automatischer Failover dokumentiert und gemessen; Kubernetes Topology Spread erzwungen. |
5 |
Multi-Region |
Kritische Workloads multi-regional; Global Load Balancing mit Auto-Region-Failover. |
Terraform Checks
waf-rel-030.tf.aws.rds-multi-az
Prüft: RDS Instance hat multi_az = true und deletion_protection = true.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: multi_az = true und deletion_protection = true auf der
aws_db_instance Ressource setzen.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
IaC |
✅ Pflicht |
Terraform mit Multi-AZ-Konfiguration für Compute, DB und Load Balancer. |
Config |
✅ Pflicht |
Cloud Console oder IaC zeigt min. 2 AZs je Produktionsressource. |
Process |
Optional |
AZ-Failover-Testbericht mit gemessener Recovery-Zeit. |