Designing on AWS

Design a production workload on AWS, choosing its compute, data, and integration services for their trade-offs rather than their marketing.

For
Developers and architects designing systems on AWS
Assumes
You've built and deployed web applications, and know the architecture basics that Developer to Architect covers in its first three stages. No AWS experience needed.
16 steps in 4 stages About 4 h 45 min of reading

Steps open in a new tab, so this page stays where you left it. Steps you've opened turn grey.

Stage 1 · Foundations

Thinking in cloud trade-offs

The trade-offs every AWS design is judged by, and the networking every AWS service assumes.

  1. Guide 13 min
    AWS Well-Architected Framework

    The six pillars are the cloud's architecture characteristics. Every service choice later in the path trades among them.

  2. Guide 23 min
    Network Fundamentals for Developers

    Subnets, routing, and load balancers all assume this. Cloud networking is ordinary networking with an API in front of it.

Stage 2 · Basics

Identity, network, compute, storage

The four things every AWS workload is built on.

  1. Guide 21 min
    AWS IAM: Identity and Access Management for Architects

    Every request to AWS is an IAM decision, so identity comes before anything you build.

  2. Guide 17 min
    AWS VPC: Network Architecture

    Where your workloads live and what can reach them. Most later services sit in, or next to, a VPC.

  3. Guide 22 min
    AWS Elastic Load Balancing for System Architects

    The front door for most workloads, and the first place health checks, scaling, and TLS meet.

  4. Guide 19 min
    Choosing AWS Compute: EC2, Lambda, and Containers on ECS, EKS, and Fargate

    Chooses between EC2, Lambda, and containers, and between ECS, EKS, and Fargate once containers win.

  5. Guide 30 min
    AWS Lambda for System Architects

    The compute model that changes design the most: invocation models, retries, and cold starts shape everything around a function.

  6. Guide 20 min
    Amazon S3 for System Architects

    The storage nearly every AWS system touches, and the cheapest home for data that doesn't need a database.

Go deeper EC2 for System Architects AWS Route 53 for System Architects AWS CloudFront for System Architects AWS Block and File Storage: EBS, EFS, and FSx AWS Diagrams

Stage 3 · Intermediate

Data

Where each workload's data lives, and designing for the store you chose.

  1. Guide 14 min
    Choosing an AWS Database

    Relational first, and when DynamoDB or a cache earns its place. The next two steps go deep on the likely answers.

  2. Guide 20 min
    Amazon RDS and Aurora for System Architects

    What AWS manages for a relational database, what you still own, and when Aurora is worth it.

  3. Guide 18 min
    Amazon DynamoDB for System Architects

    Designing around keys and access patterns instead of queries, which runs against relational habit.

  4. Resource 1 min
    Database Selection Matrix

    Access patterns mapped to store types, for the workloads that need more than one database. Keep it open for your next data decision.

Go deeper Amazon ElastiCache for System Architects

Stage 4 · Intermediate

Integration

Connecting services without coupling them: APIs, queues, and events.

  1. Guide 15 min
    AWS API Gateway for System Architects

    The managed front for APIs: authorizers, throttling, and choosing the API type that fits.

  2. Guide 18 min
    Amazon SQS and SNS for System Architects

    Queues and fan-out, the backbone of decoupled AWS systems, with the delivery and retry semantics you have to design for.

  3. Guide 16 min
    Amazon EventBridge for System Architects

    Events routed by their content rather than by queue, for when producers shouldn't know their consumers.

  4. Guide 15 min
    AWS Step Functions for System Architects

    Multi-step workflows with retries and error handling owned by the service, not written into your code.

Go deeper Amazon Kinesis Data Streams and Data Firehose for System Architects