Skip to main content
Cloud

AWS Tutorial with Examples.

AWS tutorial for beginners: EC2, S3, Lambda, IAM, VPC, RDS and the core cloud architecture patterns of Amazon Web Services.

Architecture at a glance

Click any box to open the lesson that teaches it

AWS architecture at a glance

CLI → IAM → VPC → EC2 / Lambda → S3 / RDS, watched by CloudWatch

AWS architecture at a glance An AWS CLI call runs as an IAM identity restricted to a policy. Compute lives inside a VPC's subnets, route tables and security groups: EC2 for servers you manage, Lambda for serverless functions. Both call S3 for object storage and RDS for a managed database. CloudFormation provisions the whole stack as one template and CloudWatch watches it with metrics, logs and alarms, with Cost Explorer and the Well-Architected Framework's six pillars as the final check. AWS CLI region · CLI IAM users · roles VPC subnet · SG EC2 security group Lambda serverless Data S3 buckets · objects RDS managed Postgres Watches & provisions CloudFormation stack · template CloudWatch metrics · alarms Cost & reliability Cost & Well-Architected Cost Explorer · pillars
How it fits together (5 steps)
  1. Every request starts from the AWS CLI, configured for a region and confirmed against an identity before anything else runs — against LocalStack with zero account, or against real AWS once credentials are set.
  2. That identity is only as powerful as its IAM policy: a user with no permissions gets a real AccessDenied until a least-privilege policy is attached — roles skip the long-lived keys entirely.
  3. Compute runs inside a VPC, where a subnet only reaches the internet once its route table points at an internet gateway, independently of whatever its security group allows — both have to be right. EC2 launches an instance there you SSH into directly; Lambda runs the same code with no server to manage, at the cost of a cold start on the first invocation.
  4. Both call the data layer: S3 holds objects in a versioned bucket, and RDS runs a managed Postgres instance you can snapshot and restore.
  5. Two services wrap the whole stack: CloudFormation deploys every resource above as one template that rolls back together on failure, and CloudWatch collects the metrics, logs, and alarms that watch it while it runs. Cost Explorer and the Well-Architected Framework's six pillars are the last check before calling it production-ready.

Beginner

Start here — no prior experience needed

4 lessons

Intermediate

For developers with core concepts down

13 lessons
aws intermediate
5 min read

Build a subnet, route table, and internet gateway, then walk through the exact debugging sequence for an EC2 instance that can't reach the internet.

aws intermediate
5 min read

Launch a managed Postgres instance on RDS, connect to it with psql, take a snapshot, and restore it into a brand-new instance.

aws intermediate
5 min read

Write, deploy, and invoke a real Lambda function through the CLI, then measure cold start against warm invocation with the numbers AWS actually reports.

aws intermediate
5 min read

Deploy a minimal CloudFormation stack, break it on purpose with a bad parameter, and read exactly what a failed rollback prints in the events log.

aws intermediate
5 min read

Push a custom metric, create a log group with a metric filter, and set an alarm that actually transitions to ALARM state on real threshold breaches.

aws intermediate
5 min read

Create a DynamoDB table with a partition key and sort key, put two items under the same partition, and query them with begins_with — all against the real DynamoDB Local emulator, no AWS account needed.

aws intermediate
5 min read

Scan a DynamoDB table with a filter and watch Count diverge from ScannedCount, hit the real reserved-word error on an attribute named total, fix it with an alias, then add and query a Global Secondary Index.

aws intermediate
5 min read

Block a duplicate write with a ConditionExpression, increment a counter atomically with an update expression, then read the resulting change straight off DynamoDB Streams — all against the real DynamoDB Local emulator.

aws intermediate
5 min read

Send one SQS message, watch its ApproximateReceiveCount climb across a 2-second visibility timeout, and see it redrive into a dead-letter queue the moment maxReceiveCount is exceeded — against the moto emulator, no AWS account.

aws intermediate
5 min read

Send the same message body twice to a FIFO queue and watch content-based deduplication deliver it only once, then interleave two message groups and confirm each group's own order is preserved — against the moto emulator.

aws intermediate
5 min read

Fan one SNS topic out to two SQS queues, give one of them a FilterPolicy, and watch it get only the messages that match — while the unfiltered queue gets everything — against the moto emulator.

aws intermediate
5 min read

Wire a launch template, an Auto Scaling Group, and an Application Load Balancer's target group together, watch a terminated instance get replaced automatically, then hit several real moto emulator gaps this lesson states plainly.

aws intermediate
5 min read

Register two revisions of an ECS task definition, create a service that reports desiredCount without ever running anything, then docker run the same image/port/cpu/memory/env to see what a task actually is — against moto.

Advanced

Production-grade patterns for experienced engineers

2 lessons

Also part of AWS

Taught in other topics. Each link opens the lesson in its home topic.

8 lessons
cloud-security intermediate
5 min read

Lint IAM policy JSON locally with parliament: catch s3:* on *, a mistyped action and a resource mismatch, then gate CI on a least-privilege rewrite.

cloud-security intermediate
5 min read

Parse an AWS IAM credential report with Python's csv module: find active root keys, users without MFA, keys over 90 days old and unused credentials.

cloud-security intermediate
5 min read

Search CloudTrail JSON with Python for root console logins, new access keys, IAM policy changes and public buckets, then build a sorted attack timeline.

event-driven intermediate
5 min read

A consumer retrying a poison message forever wastes work on something that will never succeed — route it to a dead-letter queue, then replay once fixed.

event-driven intermediate
5 min read

The outbox pattern can deliver the same event twice; a consumer that tracks processed event IDs stays correct even when it does.

system-design beginner
5 min read

Round robin sends every server an equal share regardless of load; least connections adapts to which servers are actually busy right now.

kubernetes beginner
5 min read

Learn the core concepts of Kubernetes—clusters, pods, deployments, services, namespaces, and how to reason about orchestration.

kubernetes intermediate
5 min read

Deploy a CPU-hungry container behind an HPA and watch replica count climb in real time as metrics-server reports real utilization — no simulated numbers, just kubectl get hpa polled while it happens.