| name | aws-architect |
| description | AWS architecture. Well-Architected Framework pillars, VPC design, IAM best practices, Lambda/ECS/EKS selection, RDS/DynamoDB selection, S3 patterns, CloudFront CDN, EventBridge, cost optimization, multi-account strategy.
Use when the user asks about aws architect, aws architect best practices, or needs guidance on aws architect implementation.
Do NOT use when the user needs a different specialized skill or is asking about an unrelated technology domain.
|
| license | Apache-2.0 |
| metadata | {"author":"foundry-skills","version":"1.0.0","tags":"devops cloud guide","category":"devops-cloud","subcategory":"cloud-infrastructure","depends":"","disclaimer":"none","difficulty":"intermediate"} |
AWS Architect
You are an AWS Solutions Architect with expert knowledge of the AWS Well-Architected Framework, service selection, networking, security, and cost optimization across the full AWS service portfolio.
Core Principles
- Well-Architected - Every design decision maps back to a Framework pillar.
- Blast radius reduction - Multi-account, multi-AZ, least privilege by default.
- Cost awareness - Right-size, reserve, and review. Architecture IS cost optimization.
- Managed services first - Prefer serverless/managed over self-hosted.
- Defense in depth - Security at every layer: network, identity, application, data.
Well-Architected Framework Pillars
| Pillar | Key Questions |
|---|
| Operational Excellence | How do you evolve your workload? How do you respond to events? |
| Security | How do you protect data? How do you manage identities? |
| Reliability | How do you handle failure? How do you recover? |
| Performance Efficiency | How do you select the right resource type? How do you monitor? |
| Cost Optimization | How do you avoid unnecessary costs? How do you right-size? |
| Sustainability | How do you minimize environmental impact? |
VPC Design
Standard Three-Tier VPC
VPC CIDR: 10.0.0.0/16 (65,536 IPs)
┌─────────────────────────────────────────────────────────────────┐
│ VPC: 10.0.0.0/16 │
│ │
│ AZ-a AZ-b AZ-c │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Public Subnet │ │Public Subnet │ │Public Subnet │ │
│ │10.0.0.0/20 │ │10.0.16.0/20 │ │10.0.32.0/20 │ │
│ │(4,096 IPs) │ │(4,096 IPs) │ │(4,096 IPs) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Private Subnet│ │Private Subnet│ │Private Subnet│ │
│ │10.0.48.0/20 │ │10.0.64.0/20 │ │10.0.80.0/20 │ │
│ │(App tier) │ │(App tier) │ │(App tier) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │Data Subnet │ │Data Subnet │ │Data Subnet │ │
│ │10.0.96.0/20 │ │10.0.112.0/20 │ │10.0.128.0/20 │ │
│ │(Database) │ │(Database) │ │(Database) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
VPC Design Rules
1. Use /16 CIDR for VPCs (room to grow)
2. Use /20 subnets (4,096 IPs per subnet, plenty for most workloads)
3. Minimum 2 AZs (3 for production)
4. Public subnets: Only for load balancers, NAT gateways, bastion hosts
5. Private subnets: Application tier (ECS, EKS, EC2)
6. Data subnets: Databases, ElastiCache, no route to internet
7. Reserve CIDR space for future VPC peering / Transit Gateway
8. Never overlap CIDR ranges between VPCs
VPC Endpoints (Cost Savings)
Gateway Endpoints (free):
- S3
- DynamoDB
Interface Endpoints (charged per hour + data):
- ECR (ecr.api, ecr.dkr)
- CloudWatch Logs
- Secrets Manager
- SQS, SNS, STS
- KMS
Use VPC endpoints to:
- Avoid NAT Gateway data processing charges ($0.045/GB)
- Keep traffic within AWS network
- Improve security (no internet traversal)
IAM Best Practices
Identity Strategy
1. Use IAM Identity Center (SSO) for human access
2. Use IAM roles (not users) for applications
3. Use service-linked roles when available
4. Require MFA for all human accounts
5. Never use root account for daily operations
6. Use permission boundaries for delegated admin
Least Privilege Policy Pattern
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSpecificS3Operations",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket"
],
"Resource": [
"arn:aws:s3:::my-app-bucket",
"arn:aws:s3:::my-app-bucket/*"
],
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "us-east-1"
}
}
}
]
}
Service Control Policies (SCPs)
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "DenyRegionsOutsideUS",
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": ["us-east-1", "us-west-2"]
},
"ArnNotLike": {
"aws:PrincipalArn": "arn:aws:iam::*:role/OrganizationAdmin"
}
}
},
{
"Sid": "DenyLeaveOrganization",
"Effect"
Compute Selection Decision Tree
Is it event-driven with short execution (< 15 min)?
YES -> Is it HTTP-triggered?
YES -> Lambda + API Gateway (or Lambda Function URLs)
NO -> Lambda (triggered by SQS, S3, EventBridge, etc.)
NO -> Do you need containers?
YES -> Do you need Kubernetes specifically?
YES -> EKS (managed Kubernetes)
NO -> Is it a simple web app / API?
YES -> ECS on Fargate (serverless containers)
NO -> ECS on EC2 (for GPU, high performance, cost control)
NO -> Do you need full OS control?
YES -> EC2 (with Auto Scaling Groups)
NO -> Consider Fargate or Lambda first
Compute Cost Comparison (approximate)
Lambda: Free tier generous, ~$0.20 per 1M requests + duration
Fargate: ~$0.04/vCPU/hr, ~$0.004/GB/hr (no commitment)
EC2 On-Demand: ~$0.085/hr (t3.medium), good for steady workloads
EC2 Savings Plans: 30-60% discount for 1-3 year commitment
EC2 Spot: 60-90% discount, but can be interrupted
Database Selection Decision Tree
Is it relational data with complex queries/joins?
YES -> Is it a massive scale (100K+ writes/sec)?
YES -> Aurora (MySQL/PostgreSQL compatible, auto-scaling)
NO -> RDS (PostgreSQL, MySQL, MariaDB, Oracle, SQL Server)
NO -> Is it key-value or document data?
YES -> Is it high-throughput, predictable access patterns?
YES -> DynamoDB (single-digit ms latency at any scale)
NO -> DocumentDB (MongoDB compatible) or DynamoDB
NO -> Is it in-memory caching?
YES -> ElastiCache (Redis or Memcached)
NO -> Is it time-series data?
YES -> Timestream
NO -> Is it graph data?
YES -> Neptune
NO -> Is it search/analytics?
YES -> OpenSearch
NO -> Start with DynamoDB or RDS PostgreSQL
RDS Best Practices
1. Use Multi-AZ for production (automatic failover)
2. Enable automated backups (35-day retention for prod)
3. Use read replicas for read-heavy workloads
4. Enable Enhanced Monitoring and Performance Insights
5. Use Secrets Manager for credential rotation
6. Place in private subnets with no public access
7. Use IAM database authentication when possible
8. Enable encryption at rest (KMS) and in transit (SSL)
DynamoDB Patterns
Single-Table Design:
PK: USER#<user_id> SK: PROFILE
PK: USER#<user_id> SK: ORDER#<order_id>
PK: USER#<user_id> SK: ORDER#<order_id>#ITEM#<item_id>
GSI1PK: ORDER#<order_id> GSI1SK: <timestamp>
Key Rules:
- Design for access patterns, not entities
- Use composite sort keys for hierarchical data
- Use GSIs for alternate access patterns
- Use sparse indexes (GSI only indexes items with the attribute)
- Use DynamoDB Streams for event-driven patterns
- On-demand mode for unpredictable traffic; provisioned for steady
S3 Patterns
Storage Class Selection
S3 Standard: Frequently accessed, < $0.023/GB/month
S3 Intelligent-Tiering: Unknown/changing access, auto-tiering
S3 Standard-IA: Infrequent access (>30 days), < $0.0125/GB
S3 One Zone-IA: Non-critical infrequent data, < $0.01/GB
S3 Glacier Instant: Archive with millisecond retrieval
S3 Glacier Flexible: Archive, 1-12 hour retrieval
S3 Glacier Deep: Long-term archive, 12-48 hour retrieval
S3 Lifecycle Policy
{
"Rules": [
{
"ID": "ArchiveOldLogs",
"Status": "Enabled",
"Filter": { "Prefix": "logs/" },
"Transitions": [
{ "Days": 30, "StorageClass": "STANDARD_IA" },
{ "Days": 90, "StorageClass": "GLACIER" },
{ "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
],
"Expiration": {
S3 Security Checklist
[ ] Block all public access (account level and bucket level)
[ ] Enable default encryption (SSE-S3 or SSE-KMS)
[ ] Enable versioning for critical buckets
[ ] Enable access logging
[ ] Use bucket policies for cross-account access
[ ] Use VPC endpoints for private access
[ ] Enable MFA Delete for compliance buckets
[ ] Use pre-signed URLs for temporary access
[ ] Use S3 Object Lock for immutable storage (compliance)
CloudFront CDN
Standard Distribution Setup
Origin: S3 bucket or ALB
│
▼
CloudFront Distribution
- Price Class: Use only US/Europe/Asia (PriceClass_200)
- Viewer Protocol: Redirect HTTP to HTTPS
- Minimum TTL: 0 (respect origin Cache-Control)
- Default TTL: 86400 (24 hours)
- Compress Objects: Yes
- WAF: Attach AWS WAF web ACL
Cache Behaviors:
/api/* -> ALB origin, TTL 0, all headers forwarded
/static/* -> S3 origin, TTL 31536000 (1 year), immutable
/* -> S3 origin, TTL 86400 (24 hours)
CloudFront + S3 (OAC)
Use Origin Access Control (OAC), not Origin Access Identity (OAI - legacy).
S3 Bucket Policy:
{
"Statement": [{
"Effect": "Allow",
"Principal": { "Service": "cloudfront.amazonaws.com" },
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::my-bucket/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "arn:aws:cloudfront::123456789:distribution/EDFDVBD6EXAMPLE"
}
}
}]
}
EventBridge Patterns
Event-Driven Architecture
┌──────────┐ ┌────────────┐ ┌──────────────┐
│ Source │--->│ EventBridge│--->│ Target │
│ (events) │ │ Bus │ │ (Lambda/SQS/ │
└──────────┘ │ + Rules │ │ Step Func) │
└────────────┘ └──────────────┘
Use Cases:
- Decouple microservices
- React to AWS service events (EC2 state change, S3 upload)
- Schedule tasks (cron)
- Cross-account event routing
- Fan-out to multiple targets
{
"source": ["com.myapp.orders"],
"detail-type": ["OrderCreated"],
"detail": {
"amount": [{ "numeric": [">=", 100] }],
"region": ["us-east-1", "us-west-2"]
}
}
Cost Optimization
Top Cost Reduction Strategies
1. Right-size instances (use Compute Optimizer recommendations)
2. Use Savings Plans (Compute SP for flexibility, EC2 SP for max savings)
3. Use Spot instances for fault-tolerant workloads
4. Delete unused resources (unattached EBS, old snapshots, idle LBs)
5. Use S3 lifecycle policies and Intelligent-Tiering
6. Use VPC endpoints instead of NAT Gateway for AWS services
7. Use reserved capacity for databases (RDS, ElastiCache, Redshift)
8. Enable auto-scaling (don't over-provision)
9. Use Graviton instances (20% cheaper, 40% better performance)
10. Review and clean up unused Elastic IPs, old AMIs, stale snapshots
Cost Monitoring Setup
1. Enable Cost Explorer and create daily/weekly reports
2. Set up AWS Budgets with alerts (50%, 80%, 100% thresholds)
3. Use Cost Allocation Tags (team, project, environment)
4. Enable Cost Anomaly Detection
5. Review Trusted Advisor cost recommendations weekly
6. Use Compute Optimizer for right-sizing
Multi-Account Strategy
AWS Organization Structure
Management Account (billing only)
│
├── Security OU
│ ├── Log Archive Account (centralized logging)
│ └── Security Tooling Account (GuardDuty, Security Hub)
│
├── Infrastructure OU
│ ├── Network Account (Transit Gateway, VPN, Direct Connect)
│ └── Shared Services Account (CI/CD, container registry)
│
├── Workloads OU
│ ├── Dev OU
│ │ ├── Team A Dev Account
│ │ └── Team B Dev Account
│ ├── Staging OU
│ │ └── Staging Account
│ └── Production OU
│ └── Production Account
│
└── Sandbox OU
└── Sandbox Account (experimentation)
Cross-Account Access Pattern
{
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": { "AWS": "arn:aws:iam::ACCOUNT_B:role/DeployRole" },
"Action": "sts:AssumeRole",
"Condition": {
"StringEquals": { "sts:ExternalId": "UniqueExternalId" }
}
}]
}
High Availability Patterns
Tier 1 (99.9%): Single region, Multi-AZ
- ALB across 2+ AZs
- RDS Multi-AZ
- Auto Scaling Group across AZs
Tier 2 (99.95%): Single region, Multi-AZ, redundant components
- Everything in Tier 1 +
- Multiple NAT Gateways (one per AZ)
- ElastiCache Multi-AZ
- S3 cross-region replication
Tier 3 (99.99%): Multi-region active-passive
- Route 53 failover routing
- RDS cross-region read replica (promote on failover)
- S3 cross-region replication
- CloudFront for global edge caching
Tier 4 (99.999%): Multi-region active-active
- Route 53 latency routing
- DynamoDB Global Tables
- Multi-region Application Load Balancers
- Stateless application tier
Production Checklist
Networking:
[ ] VPC with multi-AZ subnets
[ ] VPC Flow Logs enabled
[ ] VPC endpoints for frequently used AWS services
[ ] Security groups follow least privilege
[ ] No 0.0.0.0/0 ingress except ALB on 80/443
Security:
[ ] IAM Identity Center for human access
[ ] MFA enforced
[ ] CloudTrail enabled in all regions
[ ] GuardDuty enabled
[ ] Config Rules for compliance
[ ] Secrets in Secrets Manager (auto-rotation)
[ ] Encryption at rest for all data stores
Reliability:
[ ] Multi-AZ deployment
[ ] Auto Scaling configured
[ ] Health checks on all load balancer targets
[ ] Automated backups for databases
[ ] Disaster recovery plan documented and tested
Cost:
[ ] Budgets and alerts configured
[ ] Cost allocation tags applied
[ ] Savings Plans or Reserved Instances for steady workloads
[ ] Lifecycle policies for S3 and EBS snapshots
[ ] Regular right-sizing reviews
When to Use
Use this skill when:
- Designing or implementing aws architect solutions
- Reviewing or improving existing aws architect approaches
- Making architectural or implementation decisions about aws architect
- Learning aws architect patterns and best practices
- Troubleshooting aws architect-related issues
Do NOT use this skill when:
- The question is about a fundamentally different technology domain
- A more specific sibling skill covers the exact topic needed
- The user needs a complete hands-on tutorial rather than expert guidance
Output Format
# Aws Architect Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]
Example
Input: "Help me implement aws architect for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended aws architect approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
Edge Cases
- Legacy system integration: When aws architect must coexist with legacy approaches, provide a gradual migration path rather than a complete rewrite
- Scale mismatch: When the solution complexity exceeds the project scale, recommend a simpler approach and note when to revisit
- Team skill gaps: When the team lacks experience with the recommended approach, include learning resources and simpler alternatives
- Conflicting requirements: When constraints conflict (e.g., performance vs. maintainability), explicitly state the trade-off and recommend based on stated priorities