4.2.2. Key Concepts Review: Core Design Patterns (Compute, Storage, Network, Database)
š” First Principle: Optimal architectural design involves selecting and integrating purpose-built services across compute, storage, network, and database layers, based on workload characteristics and architectural best practices.
Scenario: You need to design a new backend for a mobile application that will handle user authentication, store profile data (flexible schema), manage real-time user sessions, and process asynchronous notifications.
These are the fundamental building blocks of any AWS solution.
- Compute:
- Services:
"EC2"(IaaS),"ECS"/"EKS"(Containers),"Lambda"(Serverless Functions),"Fargate"(Serverless Containers),"Batch". - Patterns:
"Auto Scaling"(elasticity),"Load Balancing"(distribution),"Multi-AZ"("HA"), immutable infrastructure.
- Services:
- Storage:
- Services:
"S3"(Object),"EBS"(Block),"EFS"/"FSx"(File),"Glacier"(Archive). - Patterns: Data Durability (
"CRR"), Tiering ("Lifecycle Policies"), Access Patterns (Hot/Warm/Cold).
- Services:
- Network:
- Services:
"VPC"(Isolation),"Route 53"(DNS/Traffic),"Direct Connect"/"VPN"(Hybrid),"Transit Gateway"(Inter-"VPC"),"Security Groups"/"NACLs"(Security). - Patterns: Multi-Tier Architecture (Public/Private Subnets), Defense-in-Depth, Network Performance Optimization.
- Services:
- Database:
- Services:
"RDS"/"Aurora"(Relational),"DynamoDB"(NoSQLKey-Value/Document),"Redshift"(Data Warehouse),"ElastiCache"(Caching),"Neptune"(Graph),"QLDB"(Ledger),"Timestream"(Time Series). - Patterns:
"Read Replicas"(Read Scaling),"Multi-AZ"("HA"),"Global Tables"(Multi-Region HA/"DR"), Sharding.
- Services:
Visual: Core Design Patterns Interconnection
Loading diagram...
ā ļø Common Pitfall: Using a service for a purpose it wasn't designed for (an "anti-pattern"), such as using "EFS" as a database back-end.
Key Trade-Offs:
- Managed vs. Self-Managed: Using a managed service (like
"RDS") reduces operational overhead but offers less control than managing the software yourself on"EC2".
Reflection Question: How would you integrate specific AWS services from the Compute, Storage, Network, and Database categories (e.g., "Lambda", "DynamoDB", "ElastiCache", "API Gateway") to form a scalable, highly available, and loosely coupled architecture for a mobile backend that handles user authentication, stores flexible profile data, manages real-time user sessions, and processes asynchronous notifications?
