WAF-PERF-030 – Caching Strategy Defined & Implemented
Beschreibung
Alle Workloads mit wiederholenden Lesemustern oder hochlatenten Datenquellen MÜSSEN eine dokumentierte Caching-Strategie haben. Die Strategie MUSS Cache-Layer, TTL-Policies und Invalidierungsmechanismen spezifizieren. CDN MUSS für alle öffentlichen statischen und cachefähigen Inhalte konfiguriert sein. Distributed Cache (Redis, Memcached) MUSS für Session-Daten und hochfrequente Read-Heavy-Lookups eingesetzt werden.
Rationale
Wiederholte identische Datenbankabfragen ohne Caching erzeugen unnötige Last auf dem Datenbankserver, unnötige Latenz für den Nutzer und unnötige Kosten für Datentransfer. Ein gut konfigurierter Cache kann die Datenbankauslastung um 60–90% reduzieren. Schlechtes Caching (falsche TTLs, fehlende Invalidierung) erzeugt Stale-Data-Probleme, die schwerer zu debuggen sind als kein Caching.
Bedrohungskontext
| Risiko | Beschreibung |
|---|---|
Datenbanküberlastung |
Identische Queries hundertfach pro Sekunde sättigen I/O und CPU des Datenbankservers. |
Thundering Herd |
Cache-Expiry vieler gleichzeitiger Keys → simultane Backend-Anfragen → Datenbankausfall. |
Stale Data |
Fehlende Cache-Invalidierung bei Datenmutationen → Nutzer sehen veraltete Daten. |
Kein CDN → hohe Latenz |
Statische Assets ohne CDN von Origin ausgeliefert → unnötige Latenz für Nutzer außerhalb der Region. |
Anforderung
-
Caching-Strategie MUSS dokumentiert sein (Layer, TTL pro Datentyp, Invalidierungsmechanismus)
-
Distributed Cache MUSS für Session-Daten und hochfrequente Lookups verwendet werden
-
CDN MUSS für alle öffentlichen statischen Inhalte konfiguriert sein
-
Cache-Hit-Raten MÜSSEN gemessen und gemonitored werden (Ziel: >= 80% App-Cache, >= 95% CDN)
Implementierungsanleitung
-
Zugriffsmuster analysieren: Top-20-Datenbankabfragen identifizieren; Wiederholungsfrequenz messen
-
Caching-Strategie-Dokument erstellen:
docs/caching-strategy.ymlmit Layer, TTL, Invalidierungslogik -
Redis/ElastiCache deployen: Multi-AZ, Automatic Failover, Encryption in Transit
-
Cache-Aside Pattern implementieren: Stampede-Schutz via Lock oder Probabilistic Early Expiration
-
CDN konfigurieren: CloudFront/Azure CDN/Cloud CDN für statische Assets
-
Hit-Rate-Monitoring: CloudWatch ElastiCache Metrics; Alert bei Hit-Rate < 70%
-
Invalidierungslogik sicherstellen: Jede Datenmutation muss zugehörige Cache-Entries invalidieren
Reifegrad-Abstufung
| Level | Bezeichnung | Kriterien |
|---|---|---|
1 |
Kein Cache |
Alle Requests gehen auf Origin; keine CDN; keine distributed Cache. |
2 |
Ad-hoc Cache |
Einige Dinge gecacht ohne Strategie; TTLs arbiträr; keine Hit-Rate-Messung. |
3 |
Dokumentierte Strategie |
Caching-Strategie-Dokument; Hit-Rate gemessen; CDN aktiv; HA-Redis deployed. |
4 |
Optimierter Cache |
Hit-Rate >= 80% erreicht; automatische Invalidierung; Stampede-Schutz. |
5 |
Adaptiver Cache |
ML-basiertes Cache-Warming; adaptive TTLs; intelligentes Edge-Caching. |
Terraform Checks
waf-perf-030.tf.aws.elasticache-cluster-configured
Prüft: ElastiCache Replication Group muss Automatic Failover, multi-node und Encryption haben.
| Compliant | Non-Compliant |
|---|---|
|
|
Remediation: aws_elasticache_replication_group mit automatic_failover_enabled = true,
num_cache_clusters >= 2, at_rest_encryption_enabled = true verwenden.
Evidenz
| Typ | Pflicht | Beschreibung |
|---|---|---|
Governance |
✅ Pflicht |
Caching-Strategie-Dokument mit Layer, TTL-Policies und Invalidierungsmechanismus. |
IaC |
✅ Pflicht |
Terraform-Konfiguration für Redis/ElastiCache und CDN mit Cache-Rules. |
Config |
Optional |
Cache-Hit-Rate-Dashboard (Ziel: >= 80% Applikations-Cache). |
Process |
Optional |
Cache-Invalidierungs-Runbook für Datenmutationen. |