Task Statement 2.2: Design highly available and/or fault-tolerant architectures.
📘AWS Certified Solutions Architect – (SAA-C03)
🔹 1. What is a Proxy?
A proxy is a middle layer (intermediary) between a client and a server.
- The client sends a request → goes to the proxy
- The proxy forwards the request → to the backend server
- The server responds → to the proxy → then back to the client
✅ Key Idea:
A proxy does not replace the server, but sits in front of it to manage requests.
🔹 2. Why Use a Proxy?
In cloud architectures, proxies are used to:
✅ Improve performance
- Reuse existing connections instead of creating new ones
✅ Increase scalability
- Handle many users without overloading backend systems
✅ Improve availability
- Prevent failures due to too many connections
✅ Enhance security
- Hide backend resources from direct access
🔹 3. Types of Proxies (Exam Overview)
🔸 Forward Proxy
- Used by clients to access external resources
- Example: internal users accessing the internet via a proxy
🔸 Reverse Proxy (Important for AWS)
- Sits in front of backend servers
- Clients don’t know the actual backend servers
👉 AWS services like load balancers and RDS Proxy act as reverse proxies
🔹 4. Database Problem Without Proxy
When applications connect directly to a database (like Amazon RDS):
❌ Problems:
- Each application request opens a new DB connection
- Databases have limited connection capacity
- Too many connections → database overload
- Leads to:
- Slow performance
- Connection failures
- Application crashes
🔹 5. What is Amazon RDS Proxy?
Amazon RDS Proxy is a fully managed database proxy service.
It sits between:
- Your application
- Your RDS database (MySQL, PostgreSQL, etc.)
🔁 Flow:
Application → RDS Proxy → RDS Database
🔹 6. How RDS Proxy Works
🔹 Connection Pooling (Very Important for Exam)
Instead of opening a new connection every time:
- Proxy maintains a pool of database connections
- Applications reuse existing connections
✅ Result:
- Faster response
- Fewer connections to database
- Better performance
🔹 Connection Multiplexing
- Many application requests share fewer database connections
- Efficient use of DB resources
🔹 Automatic Failover Handling
- If database fails:
- Proxy automatically connects to standby DB
- Applications do not need to reconnect manually
🔹 7. Key Features of RDS Proxy
✅ 1. Connection Pooling
- Reduces number of open DB connections
✅ 2. Improved Scalability
- Supports high number of application requests
✅ 3. Faster Failover
- Works with Multi-AZ RDS deployments
✅ 4. Security Integration
- Works with:
- IAM authentication
- AWS Secrets Manager (for credentials)
✅ 5. High Availability
- Managed service → automatically scales and recovers
🔹 8. When to Use RDS Proxy (Exam Scenarios)
Use RDS Proxy when:
✅ Serverless Applications
- Example: AWS Lambda
- Problem: Lambda creates many short-lived connections
- Solution: RDS Proxy manages connections efficiently
✅ High-Concurrency Applications
- Many users accessing database at the same time
✅ Unstable or Spiky Traffic
- Traffic suddenly increases
- Proxy prevents DB overload
✅ Frequent Failovers
- Need faster recovery with minimal downtime
🔹 9. When NOT to Use RDS Proxy
❌ Low traffic applications
- No need for connection pooling
❌ Simple architectures
- Direct DB connection is enough
🔹 10. RDS Proxy vs Direct DB Connection
| Feature | Direct Connection | RDS Proxy |
|---|---|---|
| Connection handling | Each request creates new connection | Reuses connections |
| Scalability | Limited | High |
| Failover handling | Manual | Automatic |
| Performance | Lower under load | Better |
| Cost | Lower | Additional cost |
🔹 11. RDS Proxy vs Load Balancer (Important Difference)
| Feature | Load Balancer | RDS Proxy |
|---|---|---|
| Works with | Web traffic (HTTP/HTTPS) | Database traffic |
| Purpose | Distribute requests | Manage DB connections |
| Example | ALB | RDS Proxy |
🔹 12. Security in RDS Proxy
✅ IAM Authentication
- Applications connect using IAM roles (no hardcoded passwords)
✅ Secrets Manager Integration
- Stores DB credentials securely
✅ Network Security
- Works inside VPC
- Uses security groups
🔹 13. High Availability with RDS Proxy
- Automatically spans multiple Availability Zones
- Works with Multi-AZ RDS
- During failover:
- Proxy reconnects automatically
- Reduces downtime
🔹 14. Common Exam Traps ⚠️
❗ Trap 1:
Problem: Too many database connections
👉 Answer: Use RDS Proxy
❗ Trap 2:
Problem: Lambda causing DB connection exhaustion
👉 Answer: Use RDS Proxy
❗ Trap 3:
Problem: Need faster DB failover
👉 Answer: Use RDS Proxy
❗ Trap 4:
Confusion: Load balancer vs RDS Proxy
👉 Load balancer ≠ database proxy
🔹 15. Quick Exam Summary (Must Remember)
- Proxy = middle layer between client and server
- RDS Proxy = database proxy for Amazon RDS
- Main benefit = connection pooling
- Best for:
- Lambda
- High traffic apps
- Frequent DB connections
- Improves:
- Scalability
- Availability
- Performance
- Integrates with:
- IAM
- Secrets Manager
- Helps in:
- Failover handling
🧠 Final Tip for SAA-C03
If the question mentions:
- “Too many DB connections”
- “Serverless hitting database”
- “Improve DB scalability”
👉 The correct answer is Amazon RDS Proxy
