Resilient and Highly Available Architecture Scenarios
Tackle multi-AZ database failover, auto scaling under burst traffic, and Route 53 health-check failover scenarios to solidify reliability concepts.
Scenario 1: Multi-AZ Web Application
Scenario: A company runs a two-tier web application (ALB → EC2 → RDS) and wants to eliminate any single point of failure within the AWS Region. Solution: Deploy EC2 instances in an Auto Scaling Group spanning at least 2 Availability Zones behind an ALB (which is inherently multi-AZ). Enable RDS Multi-AZ for synchronous standby replication. Configure health checks on the ALB to automatically route away from unhealthy instances. With this architecture, the loss of any single AZ causes automatic failover at every tier.
# 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/abcScenario 2: RDS Read Scaling Under Load
Scenario: An e-commerce application's RDS instance is hitting CPU limits during peak hours due to read-heavy analytics queries from the business intelligence team. Solution: Create RDS Read Replicas and point BI queries to the replica endpoint. Read Replicas use asynchronous replication — slight lag is acceptable for analytics. This offloads read traffic from the primary RDS instance, which is reserved for write operations and application reads. For extremely read-heavy workloads, add an ElastiCache layer in front of RDS for frequently accessed data.
# 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)All lessons in this course
- Secure Architecture Scenarios
- Resilient and Highly Available Architecture Scenarios
- High-Performance and Cost-Optimised Scenarios
- Mixed Domain Full-Length Mini Exam