AWS Architecture Patterns¶
Common AWS architecture patterns for real-world applications.
Architecture Diagram Resources
AWS Architecture Icons - Official icon set for creating AWS architecture diagrams (PPT, Draw.io, Visio formats). Essential for documentation and presentations.
Three-Tier Web Application¶
Classic pattern: presentation, application, data layers with high availability.
graph TB
subgraph "Internet"
Users[Users]
end
subgraph "AWS Cloud"
subgraph "Availability Zone 1"
ALB1[Application<br/>Load Balancer]
EC2_1[EC2 Instance<br/>App Server]
RDS_Primary[(RDS Primary<br/>PostgreSQL)]
end
subgraph "Availability Zone 2"
EC2_2[EC2 Instance<br/>App Server]
RDS_Standby[(RDS Standby<br/>Read Replica)]
end
S3[S3 Bucket<br/>Static Assets]
CloudFront[CloudFront CDN]
end
Users -->|HTTPS| CloudFront
CloudFront -->|Static| S3
CloudFront -->|Dynamic| ALB1
ALB1 --> EC2_1
ALB1 --> EC2_2
EC2_1 -->|Read/Write| RDS_Primary
EC2_2 -->|Read/Write| RDS_Primary
RDS_Primary -.->|Replicate| RDS_Standby
style Users fill:#e1f5ff
style CloudFront fill:#ff9900
style S3 fill:#569a31
style ALB1 fill:#ff9900
style EC2_1 fill:#ff9900
style EC2_2 fill:#ff9900
style RDS_Primary fill:#527fff
style RDS_Standby fill:#527fff Components:
- CloudFront: Global CDN, caches static assets at edge locations
- S3: Object storage for images, CSS, JavaScript
- ALB: Distributes traffic across EC2 instances in multiple AZs
- EC2: Application servers running in Auto Scaling group
- RDS: Managed PostgreSQL with multi-AZ failover
Real talk: This pattern handles 10k-100k requests/day. Add auto-scaling for growth.
Serverless Microservices¶
Event-driven architecture with Lambda, API Gateway, and DynamoDB.
graph LR
Client[Mobile/Web<br/>Client] -->|HTTPS| APIGW[API Gateway<br/>REST API]
APIGW -->|Invoke| Auth[Lambda<br/>Auth Function]
APIGW -->|Invoke| Users[Lambda<br/>Users Service]
APIGW -->|Invoke| Orders[Lambda<br/>Orders Service]
Auth -->|Read/Write| Cognito[Cognito<br/>User Pool]
Users -->|Read/Write| UserDB[(DynamoDB<br/>Users Table)]
Orders -->|Read/Write| OrderDB[(DynamoDB<br/>Orders Table)]
Orders -->|Publish| SNS[SNS Topic<br/>Order Events]
SNS -->|Subscribe| Email[Lambda<br/>Email Service]
SNS -->|Subscribe| SQS[SQS Queue]
SQS -->|Process| Worker[Lambda<br/>Worker Function]
style Client fill:#e1f5ff
style APIGW fill:#ff9900
style Auth fill:#ff9900
style Users fill:#ff9900
style Orders fill:#ff9900
style Email fill:#ff9900
style Worker fill:#ff9900
style Cognito fill:#dd344c
style UserDB fill:#527fff
style OrderDB fill:#527fff
style SNS fill:#ff9900
style SQS fill:#ff9900 Components:
- API Gateway: RESTful API with authentication, rate limiting, caching
- Lambda: Stateless functions, auto-scale, pay-per-invocation
- DynamoDB: NoSQL database with single-digit millisecond latency
- SNS/SQS: Async messaging for decoupled microservices
- Cognito: User authentication and authorization
Real talk: Scales to millions of requests, costs pennies at low traffic. Cold starts are 100-500ms.
Data Pipeline Architecture¶
ETL pattern for processing large datasets with S3, Glue, and Athena.
graph TB
Sources[Data Sources<br/>Logs, APIs, Databases] -->|Stream| Kinesis[Kinesis Data<br/>Streams]
Sources -->|Batch| S3_Raw[S3 Raw Bucket<br/>Landing Zone]
Kinesis -->|Real-time| Firehose[Kinesis Data<br/>Firehose]
Firehose --> S3_Raw
S3_Raw -->|Trigger| Glue[AWS Glue<br/>ETL Jobs]
Glue -->|Transform| S3_Processed[S3 Processed<br/>Parquet Format]
S3_Processed -->|Catalog| GlueCatalog[Glue Data<br/>Catalog]
GlueCatalog -->|Query| Athena[Athena<br/>SQL Queries]
GlueCatalog -->|Visualize| QuickSight[QuickSight<br/>Dashboards]
S3_Processed -->|Train| SageMaker[SageMaker<br/>ML Models]
style Sources fill:#e1f5ff
style Kinesis fill:#ff9900
style Firehose fill:#ff9900
style S3_Raw fill:#569a31
style Glue fill:#ff9900
style S3_Processed fill:#569a31
style GlueCatalog fill:#ff9900
style Athena fill:#ff9900
style QuickSight fill:#ff9900
style SageMaker fill:#ff9900 Components:
- Kinesis: Real-time data streaming (alternative to Kafka)
- S3: Data lake storage (raw and processed data)
- Glue: Serverless ETL, converts JSON/CSV to optimized Parquet
- Athena: Query S3 data with SQL, pay per query ($5/TB scanned)
- QuickSight: BI dashboards, ML-powered insights
Real talk: Processes terabytes for cents. Use Parquet format (10x cheaper queries than JSON).
Well-Architected Framework¶
AWS's five pillars for building reliable, secure, efficient systems.
Security¶
Design Principles:
- Identity and Access Management - Use IAM roles, never embed credentials
- Detective Controls - Enable CloudTrail, GuardDuty, Config
- Infrastructure Protection - VPC isolation, security groups, NACLs
- Data Protection - Encrypt at rest (KMS) and in transit (TLS)
- Incident Response - Automated remediation with Lambda
Security Checklist
- Root account MFA enabled
- IAM users have MFA
- S3 buckets are private (no public access)
- RDS encryption enabled
- CloudTrail logging to S3
- GuardDuty threat detection active
- Security groups follow least privilege
- Secrets stored in Secrets Manager
- VPC Flow Logs enabled
- AWS Config rules for compliance
Reliability¶
Design Principles:
- Multi-AZ Deployment - RDS, ALB, EC2 across 2+ availability zones
- Auto Scaling - Respond to demand changes automatically
- Backup and Recovery - Automated snapshots, cross-region replication
- Change Management - Infrastructure as code (CloudFormation/Terraform)
- Failure Isolation - Bulkheads prevent cascading failures
Reliability Targets
| Availability | Downtime/Year | Architecture |
|---|---|---|
| 99.0% (2 nines) | 3.65 days | Single AZ |
| 99.9% (3 nines) | 8.76 hours | Multi-AZ |
| 99.95% | 4.38 hours | Multi-AZ + Auto Scaling |
| 99.99% (4 nines) | 52.56 minutes | Multi-region |
| 99.999% (5 nines) | 5.26 minutes | Multi-region + Failover |
Performance Efficiency¶
Design Principles:
- Selection - Choose right compute (EC2 vs Lambda vs Fargate)
- Review - Continuously evaluate new services
- Monitoring - CloudWatch metrics, X-Ray tracing
- Trade-offs - Consistency vs latency, normalization vs denormalization
Service Selection Guide
graph TD
Start{Compute Need?} -->|Containers| Container{Orchestration?}
Start -->|VMs| VM{Persistent?}
Start -->|Functions| Lambda[Lambda<br/>Event-driven]
Container -->|Yes| EKS[EKS<br/>Kubernetes]
Container -->|No| ECS[ECS/Fargate<br/>Simpler]
VM -->|Yes| EC2[EC2<br/>Full Control]
VM -->|No| Batch[AWS Batch<br/>Job Scheduling]
style Start fill:#e1f5ff
style Lambda fill:#ff9900
style EKS fill:#ff9900
style ECS fill:#ff9900
style EC2 fill:#ff9900
style Batch fill:#ff9900 Cost Optimization¶
Design Principles:
- Right Sizing - Match instance size to workload (don't over-provision)
- Elasticity - Auto-scale down during off-peak hours
- Pricing Models - Reserved Instances (72% off), Spot (90% off)
- Managed Services - RDS cheaper than self-managed EC2 databases
- Cost Allocation - Tag everything for chargeback/showback
Cost Saving Strategies
| Strategy | Savings | Best For |
|---|---|---|
| Reserved Instances (1yr) | 40% | Predictable workloads |
| Reserved Instances (3yr) | 72% | Long-term commitments |
| Spot Instances | 90% | Fault-tolerant, flexible |
| Savings Plans | 72% | Flexible compute usage |
| S3 Intelligent-Tiering | 70% | Infrequently accessed data |
| Lambda vs EC2 | 80% | Low-traffic APIs |
| Graviton Instances | 40% | ARM-compatible workloads |
Operational Excellence¶
Design Principles:
- Operations as Code - Infrastructure as code, runbooks as code
- Frequent, Small Changes - Reduce blast radius of failures
- Refine Operations - Learn from failures, improve processes
- Anticipate Failure - Chaos engineering, game days
- Learn from Failures - Post-mortems without blame
Operational Metrics
- MTTR - Mean Time To Recovery (target: <1 hour)
- Change Failure Rate - Failed changes / total changes (target: <15%)
- Deployment Frequency - Daily for high-performing teams
- Lead Time - Code commit to production (target: <1 day)
Last Updated: 2026-01-31 | Vibe Check: Structural - These patterns are industry-standard. Not innovative, but proven at scale. Use them unless you have a compelling reason not to.
Tags: aws, architecture, well-architected, patterns