Szenarien für resiliente und hochverfügbare Architekturen
Bearbeiten Sie Szenarien zu Multi-AZ-Datenbank-Failover, Auto Scaling bei plötzlich ansteigendem Datenverkehr und Route-53-Health-Check-Failover, um Ihre Kenntnisse zu Zuverlässigkeitskonzepten zu festigen.
Szenarien für resiliente und hochverfügbare Architekturen ist eine kostenlose Cloud & IT Cert Prep-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Cloud & IT Cert Prep-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Szenario 1: Webanwendung über mehrere Availability Zones
Szenario: Ein Unternehmen betreibt eine zweistufige Webanwendung (ALB → EC2 → RDS) und möchte innerhalb der AWS-Region jeden Single Point of Failure beseitigen. Lösung: Stellen Sie EC2-Instances in einer Auto Scaling Group bereit, die sich über mindestens 2 Availability Zones erstreckt, und platzieren Sie diese hinter einem ALB (der grundsätzlich mehrere Availability Zones nutzt). Aktivieren Sie RDS Multi-AZ für die synchrone Replikation auf einen Standby. Konfigurieren Sie Health Checks auf dem ALB, damit der Datenverkehr automatisch von fehlerhaften Instances weggeleitet wird. Bei dieser Architektur führt der Ausfall einer einzelnen AZ auf jeder Ebene zu einem automatischen Failover.
# Create RDS with Multi-AZ enabled
aws rds create-db-instance \
--db-instance-identifier prod-mysql \
--db-instance-class db.t3.large \
--engine mysql \
--multi-az \
--master-username admin \
--master-user-password Pass123! \
--allocated-storage 100
# Create ASG across 3 AZs
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name web-asg \
--min-size 2 --max-size 10 --desired-capacity 3 \
--availability-zones us-east-1a us-east-1b us-east-1c \
--target-group-arns arn:aws:elasticloadbalancing:us-east-1:123:targetgroup/web-tg/abcSzenario 2: RDS-Leseskalierung bei hoher Last
Szenario: Die RDS-Instance einer E-Commerce-Anwendung stößt während der Spitzenzeiten an CPU-Grenzen, weil das Business-Intelligence-Team leseintensive Analyseabfragen ausführt. Lösung: Erstellen Sie RDS Read Replicas und leiten Sie BI-Abfragen an den Replica-Endpunkt weiter. Read Replicas verwenden eine asynchrone Replikation – eine geringe Verzögerung ist für Analysen akzeptabel. Dadurch wird der Leseverkehr von der primären RDS-Instance ausgelagert, die für Schreibvorgänge und Lesezugriffe der Anwendung reserviert bleibt. Bei extrem leseintensiven Workloads können Sie vor RDS zusätzlich eine ElastiCache-Ebene für häufig abgerufene Daten einsetzen.
# Create a Read Replica from the primary RDS instance
aws rds create-db-instance-read-replica \
--db-instance-identifier prod-mysql-replica \
--source-db-instance-identifier prod-mysql \
--db-instance-class db.t3.large \
--availability-zone us-east-1b
# Application code: use replica endpoint for reads
# Primary endpoint: prod-mysql.cluster.us-east-1.rds.amazonaws.com (writes)
# Replica endpoint: prod-mysql-replica.xyz.us-east-1.rds.amazonaws.com (reads)Szenario 3: Auto Scaling bei CPU-Spitzen
Szenario: Eine zustandslose API läuft auf EC2 hinter einem ALB. Während der Geschäftszeiten steigt die CPU-Auslastung auf 90 %, nachts fällt sie nahezu auf null. Das Unternehmen möchte die Flotte automatisch skalieren. Lösung: Konfigurieren Sie eine Auto Scaling Group mit einer Target-Tracking-Skalierungsrichtlinie, die eine durchschnittliche CPU-Auslastung von 60 % anstrebt. Die ASG fügt automatisch Instances hinzu, wenn die CPU-Auslastung 60 % überschreitet, und entfernt Instances, wenn sie unter den Zielwert fällt. Fügen Sie eine geplante Skalierungsaktion hinzu, um die Mindestkapazität vor Beginn der Geschäftszeiten vorab bereitzustellen und dadurch Verzögerungen beim morgendlichen Verkehrsschub zu vermeiden.
# Target tracking policy: scale to keep CPU at 60%
aws autoscaling put-scaling-policy \
--auto-scaling-group-name api-asg \
--policy-name cpu-tracking \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {"PredefinedMetricType": "ASGAverageCPUUtilization"},
"TargetValue": 60.0,
"DisableScaleIn": false
}'
# Scheduled action: pre-warm to 5 instances at 8 AM weekdays
aws autoscaling put-scheduled-update-group-action \
--auto-scaling-group-name api-asg \
--scheduled-action-name morning-scale-out \
--recurrence '0 8 * * MON-FRI' \
--min-size 5Szenario 4: Route-53-Failover zu einer Disaster-Recovery-Site
Szenario: Ein Unternehmen betreibt eine primäre Webanwendung in us-east-1 und möchte bei einer Störung auf eine statische, in S3 gehostete Wartungsseite in us-west-2 umschalten. Lösung: Erstellen Sie einen Route-53-Health-Check, der den primären ALB-Endpunkt überwacht. Erstellen Sie zwei Route-53-Datensätze mit einer Failover-Routing-Richtlinie: einen primären Datensatz, der auf den ALB verweist und mit dem Health Check verknüpft ist, sowie einen sekundären Datensatz, der auf die statische S3-Website verweist. Wenn der Health Check fehlschlägt, liefert Route 53 automatisch die DNS-Antwort des sekundären Datensatzes aus.
# Create Route 53 health check for primary ALB
aws route53 create-health-check \
--caller-reference $(date +%s) \
--health-check-config '{
"Type": "HTTPS",
"FullyQualifiedDomainName": "app.example.com",
"Port": 443,
"RequestInterval": 30,
"FailureThreshold": 3
}'
# Primary failover record (associated with health check)
# Secondary failover record -> S3 static website endpoint
# Route 53 automatically switches if health check failsSzenario 5: Entkopplung mit SQS für Ausfallsicherheit
Szenario: Ein Backend zur Bestellverarbeitung schreibt in eine Datenbank. Während Wartungsfenstern ist die Datenbank jedoch gelegentlich nicht verfügbar, wodurch Bestellungen verloren gehen. Lösung: Platzieren Sie eine SQS-Warteschlange zwischen dem Frontend, das Bestellungen annimmt, und dem Backend, das sie verarbeitet. Bestellungen werden sofort in die Warteschlange gestellt, sodass der Kunde unmittelbar eine Bestätigung erhält. Hintergrund-Worker lesen die Bestellungen aus der Warteschlange und verarbeiten sie, sobald die Datenbank verfügbar ist. Während der Wartung werden Bestellungen daher aufgereiht, statt verworfen zu werden – das sorgt durch asynchrone Entkopplung für Ausfallsicherheit.
# SQS-based order decoupling pattern
# 1. Frontend: PUT order to SQS (returns 200 immediately to customer)
aws sqs send-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
--message-body '{"orderId": "ORD-123", "items": [...]}'
# 2. Backend worker: polls SQS when DB is available
aws sqs receive-message \
--queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
--max-number-of-messages 10
# 3. On success: delete message from queue
# 4. On failure: visibility timeout expires -> message reappears for retry
# 5. After max retries: message goes to Dead Letter Queue (DLQ)Szenario 6: Pilot-Light-Disaster-Recovery
Szenario: Ein Unternehmen benötigt für ein mittleres Budget eine Disaster-Recovery-Lösung mit einem RPO von 1 Stunde und einem RTO von 4 Stunden. Lösung: Implementieren Sie eine Pilot-Light-DR-Strategie. Halten Sie die zentrale Datenbank mithilfe einer RDS Cross-Region Read Replica in der DR-Region repliziert. Die Anwendungsserver laufen während des Normalbetriebs nicht in der DR-Region – nur der minimale „Kern“ (die Datenbank) bleibt aktiv. Im Katastrophenfall stufen Sie die Read Replica zu einer eigenständigen Datenbank hoch und starten die Anwendungsserver aus vorbereiteten AMIs mithilfe von CloudFormation. Das RTO liegt bei Stunden statt Minuten, da die Server erst gestartet werden müssen.
# Pilot Light: replicate database to DR Region
aws rds create-db-instance-read-replica \
--db-instance-identifier prod-mysql-dr \
--source-db-instance-identifier prod-mysql \
--db-instance-class db.t3.large \
--source-region us-east-1 \
--destination-region us-west-2
# During disaster: promote replica in us-west-2 to standalone
aws rds promote-read-replica \
--db-instance-identifier prod-mysql-dr \
--region us-west-2
# Then launch app servers from AMIs using CloudFormation in us-west-2Szenario 7: SQS-Dead-Letter-Queue für fehlerhafte Nachrichten
Szenario: Nachrichten in einer SQS-Warteschlange können aufgrund eines Fehlers in der Consumer-Lambda-Funktion wiederholt nicht verarbeitet werden. Die Nachrichten erscheinen immer wieder und blockieren die Warteschlange. Lösung: Konfigurieren Sie für die Hauptwarteschlange eine Dead-Letter Queue (DLQ). Nachdem die Verarbeitung einer Nachricht eine konfigurierbare Anzahl von Malen fehlgeschlagen ist (maxReceiveCount), verschiebt SQS sie automatisch in die DLQ, statt sie unbegrenzt erneut auszuliefern. Dadurch wird die Hauptwarteschlange für fehlerfreie Nachrichten freigegeben. Richten Sie einen CloudWatch-Alarm für die DLQ-Metrik ApproximateNumberOfMessagesVisible ein, um das Engineering-Team zu benachrichtigen, sobald sich Nachrichten in der DLQ ansammeln.
# Set redrive policy to move failed messages to DLQ after 3 attempts
aws sqs set-queue-attributes \
--queue-url https://sqs.us-east-1.amazonaws.com/123/orders \
--attributes '{
"RedrivePolicy": "{\"deadLetterTargetArn\": \"arn:aws:sqs:us-east-1:123:orders-dlq\", \"maxReceiveCount\": \"3\"}"
}'
# CloudWatch alarm on DLQ depth
aws cloudwatch put-metric-alarm \
--alarm-name orders-dlq-depth \
--metric-name ApproximateNumberOfMessagesVisible \
--namespace AWS/SQS \
--dimensions Name=QueueName,Value=orders-dlq \
--threshold 1 --comparison-operator GreaterThanOrEqualToThreshold \
--evaluation-periods 1 --period 60 --statistic SumSzenario 8: Aurora Global Database
Szenario: Ein Unternehmen ist in den USA und Europa tätig. Nutzer in Europa erleben eine hohe Latenz bei Datenbanklesevorgängen, da sich RDS in us-east-1 befindet. Lösung: Verwenden Sie Amazon Aurora Global Database. Der primäre Cluster befindet sich in us-east-1; ein sekundärer schreibgeschützter Cluster wird in eu-west-1 hinzugefügt. Aurora repliziert die Daten mithilfe der Replikation auf Speicherebene mit einer typischen Latenz von unter 1 Sekunde in die sekundäre Region. Europäische Nutzer lesen die Daten aus dem sekundären Cluster in eu-west-1. Bei einer regionalen Katastrophe kann der sekundäre Cluster in weniger als 1 Minute zum primären Cluster hochgestuft werden (das beste RTO aller AWS-Datenbankoptionen über mehrere Regionen hinweg).
# Add a secondary region to an Aurora Global Database
aws rds create-global-cluster \
--global-cluster-identifier prod-global \
--source-db-cluster-identifier arn:aws:rds:us-east-1:123:cluster:prod-aurora
# Add secondary Region cluster
aws rds create-db-cluster \
--db-cluster-identifier prod-aurora-eu \
--engine aurora-postgresql \
--global-cluster-identifier prod-global \
--region eu-west-1Szenario 9: ECS-Service mit ALB und Auto Scaling
Szenario: Ein containerisierter API-Service, der auf ECS Fargate läuft, muss anhand der CPU-Auslastung skalieren und Ausfälle von Availability Zones überstehen. Lösung: Registrieren Sie den ECS-Service bei einer Application-Load-Balancer-Target-Gruppe, damit der Datenverkehr auf die laufenden Tasks verteilt wird. Platzieren Sie die Tasks über mehrere AZs, indem Sie in der Servicekonfiguration mehrere Subnetze angeben. Konfigurieren Sie ECS Service Auto Scaling mit einer Target-Tracking-Richtlinie für die CPU-Auslastung des ECS-Services, damit die Anzahl der Tasks automatisch nach oben und unten skaliert wird. Wenn eine AZ ausfällt, startet ECS die ausgefallenen Tasks in fehlerfreien AZs neu.
# Create ECS Fargate service with ALB and multi-AZ placement
aws ecs create-service \
--cluster prod-cluster \
--service-name api-service \
--task-definition api-task:5 \
--desired-count 3 \
--launch-type FARGATE \
--network-configuration '{
"awsvpcConfiguration": {
"subnets": ["subnet-1a", "subnet-1b", "subnet-1c"],
"securityGroups": ["sg-app"],
"assignPublicIp": "DISABLED"
}
}' \
--load-balancers '[{
"targetGroupArn": "arn:...:targetgroup/api-tg/abc",
"containerName": "api",
"containerPort": 8080
}]'Szenario 10: Failover per Health Check mit Route 53
Szenario: Ein Unternehmen betreibt zwei EC2-Instances in unterschiedlichen AZs, die dieselbe Domain bedienen. Route 53 soll den Datenverkehr automatisch nicht mehr an eine fehlerhafte Instance senden. Lösung: Verwenden Sie Route-53-Weighted-Routing mit gleichen Gewichtungen (50/50) und verknüpfen Sie mit jedem Datensatz einen Endpunkt-Health-Check. Wenn Route 53 einen fehlerhaften Endpunkt erkennt, entfernt es den zugehörigen Datensatz aus den DNS-Antworten und leitet 100 % des Datenverkehrs an den fehlerfreien Endpunkt. Sobald sich die Instance erholt hat und die Health Checks wieder erfolgreich sind, verteilt Route 53 den Datenverkehr automatisch neu – manuelle DNS-Änderungen sind nicht erforderlich.
# Route 53 weighted record with health check association
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "instance-1a",
"Weight": 50,
"HealthCheckId": "hc-abc123",
"TTL": 30,
"ResourceRecords": [{"Value": "10.0.1.10"}]
}
}]
}'Szenario 11: DynamoDB Global Tables für Multi-Region-HA
Szenario: Eine mobile Gaming-Anwendung benötigt für ihre Spielerdaten sowohl Lese- als auch Schreibzugriffe mit geringer Latenz aus us-east-1 und ap-southeast-1. Eine DynamoDB-Tabelle in nur einer Region verursacht für asiatische Nutzer eine hohe Latenz. Lösung: Aktivieren Sie DynamoDB Global Tables. Global Tables repliziert Daten automatisch über die angegebenen Regionen hinweg mithilfe der Multi-Master-Replikation – jede Region kann Schreibvorgänge annehmen. Asiatische Nutzer schreiben in das Replikat in ap-southeast-1 und lesen daraus mit lokaler Latenz (~5 ms). Global Tables löst Konflikte mithilfe einer „Last-Writer-Wins“-Strategie auf Grundlage von Zeitstempeln. Das RTO bei einem vollständigen regionalen Ausfall liegt nahezu bei null – der Datenverkehr wird einfach an die verbleibende Region weitergeleitet.
# Convert a DynamoDB table to a Global Table
# (table must exist in all target Regions first)
aws dynamodb create-global-table \
--global-table-name PlayerData \
--replication-group '[{"RegionName": "us-east-1"}, {"RegionName": "ap-southeast-1"}]'
# Add another Region to an existing Global Table
aws dynamodb update-global-table \
--global-table-name PlayerData \
--replica-updates '[{"Create": {"RegionName": "eu-west-1"}}]'Schnelltest
Testen Sie Ihr Verständnis der Konzepte aus dieser Lektion für AWS Solutions Architect (SAA-C03).
Lektionsrückblick
In dieser Lektion haben Sie Szenarien zu folgenden Themen bearbeitet: Multi-AZ-ASG und RDS für Hochverfügbarkeit innerhalb einer Region, Failover-Routing mit Route 53 für Disaster Recovery über mehrere Regionen hinweg, SQS-DLQ zur Isolierung fehlerhafter Nachrichten, ohne Warteschlangen zu blockieren sowie Aurora Global Database für Leseskalierung über mehrere Regionen und Failover mit einem RTO von unter einer Minute. Als Nächstes behandeln wir Szenarien für hochperformante und kostenoptimierte Architekturen.
Häufig gestellte Fragen
Ist die Lektion „Szenarien für resiliente und hochverfügbare Architekturen“ kostenlos?
Ja — der vollständige Text von „Szenarien für resiliente und hochverfügbare Architekturen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Cloud & IT Cert Prep-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Cloud & IT Cert Prep-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Szenarien für resiliente und hochverfügbare Architekturen“?
Bearbeiten Sie Szenarien zu Multi-AZ-Datenbank-Failover, Auto Scaling bei plötzlich ansteigendem Datenverkehr und Route-53-Health-Check-Failover, um Ihre Kenntnisse zu Zuverlässigkeitskonzepten zu fe… Du übst Cloud & IT Cert Prep mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Cloud & IT Cert Prep zu starten?
Keine Vorkenntnisse erforderlich. Cloud & IT Cert Prep auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Szenarien für resiliente und hochverfügbare Architekturen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Cloud & IT Cert Prep-Lektion Code schreiben und ausführen?
Ja. Jede Cloud & IT Cert Prep-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Szenarien für sichere Architekturen
- Szenarien für resiliente und hochverfügbare Architekturen
- Szenarien zu hoher Performance und Kostenoptimierung
- Gemischte Mini-Prüfung über alle Bereiche