1.1 Why cloud exists (the power-plant analogy)
Imagine every apartment building running its own diesel generator in the basement. That is classic on-premises IT: you buy capacity for peak summer heat, pay for it year-round, hire people to maintain it, and still risk blackouts. Cloud computing is the municipal power grid for compute, storage, and networking. You plug in with APIs instead of copper, and you pay for kilowatt-hours of capacity-time rather than owning the turbines.
AWS is one of those grids — the largest by many measures — exposing hundreds of services behind a consistent identity, billing, and regional topology. Your job as an engineer is not to memorize every service logo; it is to understand the control planes (APIs that create/configure) and data planes (paths that carry traffic and bytes), then compose them into reliable systems.
1.2 Service models: IaaS, PaaS, SaaS (and where AWS sits)
Think of building a pizza business. IaaS rents you the kitchen (ovens, counters, utilities) — you bring recipes and chefs. PaaS gives you a managed kitchen line that auto-refills dough — you focus on toppings and orders. SaaS is ordering pizza from an app — you consume the finished product.
- IaaS examples: Amazon EC2, Amazon VPC, Amazon EBS — maximum control, maximum responsibility.
- PaaS-like: Elastic Beanstalk, App Runner, many ECS/EKS patterns with managed control planes — less OS toil.
- SaaS-like: Amazon WorkMail, managed collaboration tools — you configure, rarely SSH.
- Serverless compute: AWS Lambda sits near PaaS but with event-driven billing and no server lifecycle for you to manage.
1.3 Shared Responsibility Model (memorize this early)
AWS is responsible for security of the cloud: data centers, hardware, virtualization hosts, and the managed control planes of services. You are responsible for security in the cloud: identities, network reachability you configure, guest OS patches on EC2, application code, encryption choices, and data classification.
Rule of thumb: the more AWS manages the runtime, the less OS work you do — but IAM mistakes and open data stores remain your blast radius.
1.4 Prerequisites checklist
Knowledge
- Comfortable with HTTP, DNS basics, SSH concepts
- JSON literacy (IAM policies are JSON documents)
- Basic Linux shell (ls, cd, env, pipes)
- Git clone/commit (for IaC later)
Environment
- Personal email + phone for MFA
- Credit/debit card for account verification
- Laptop with admin rights to install CLI
- Optional: VS Code / Cursor + AWS Toolkit
1.5 Creating an AWS account (safe day-one sequence)
- Create the account at aws.amazon.com — verify email and phone.
- Enable MFA on the root user immediately (hardware key preferred; TOTP app acceptable).
- Do not create root access keys. Ever, unless a rare break-glass procedure demands it — and then delete them.
- Create an administrator via IAM Identity Center (recommended) or an IAM user with MFA for daily console use.
- Turn on AWS CloudTrail (management events) in all Regions via a trail writing to a dedicated S3 bucket.
- Create a billing alarm / AWS Budget (e.g., actual cost > $5 or $10).
- Note your 12-digit Account ID; treat it as public-ish metadata, not a secret — but don’t paste credentials anywhere.
Free Tier is a training wheels allowance, not a force field. NAT Gateways, idle load balancers, public IPv4 addresses, and forgotten gp3 volumes are classic “why is my bill $40?” stories.
1.6 Install and verify the AWS CLI (v2)
The CLI is your thin client to every service API. Prefer AWS CLI v2.
macOS (official pkg) or package managers:
# macOS (Homebrew example) brew install awscli # Verify aws --version # After configuring credentials / SSO: aws sts get-caller-identity
Modern teams prefer IAM Identity Center (SSO) profiles over long-lived access keys:
aws configure sso # follow prompts: start URL, Region, account, role aws sso login --profile my-admin aws sts get-caller-identity --profile my-admin
Expected shape of a successful identity call:
{
"UserId": "AROA...:session-name",
"Account": "123456789012",
"Arn": "arn:aws:sts::123456789012:assumed-role/..."
}
1.7 Console, APIs, SDKs — one control plane, many cockpits
The AWS Management Console, CLI, Terraform/CloudFormation, and SDKs (boto3, AWS SDK for JavaScript/Java/Go) all speak the same service APIs. If you can do it in the console, there is almost always an API equivalent — and production automation should prefer the API/IaC path so changes are reviewable.
1.8 First-week mission control flow
Step 1
Account + MFA
Step 2
Admin via SSO/IAM
Step 3
CloudTrail + Budget
Step 4
CLI identity check
1.9 Cost primitives you must know before labbing
- On-Demand: flexible, highest unit price — fine for labs if you terminate resources.
- Savings Plans / Reserved Instances: commit spend/usage for discounts — rarely needed for learning accounts.
- Spot: spare capacity at steep discounts with interruption risk — advanced compute module territory.
- Data transfer: ingress often free; egress and cross-AZ/cross-Region transfer can dominate bills.
Bookmark the AWS Pricing Calculator and learn to read Cost Explorer filters by service and Region.
1.10 Multi-account foreshadowing
Serious AWS estates use AWS Organizations: separate accounts for prod, non-prod, security tooling, and logging. Service Control Policies (SCPs) set guardrails. You do not need Organizations on day one of learning — but you should know that a single “playground” account is a sandbox, not a production pattern.
1.11 Lab: prove your cockpit works
- Sign in as non-root admin with MFA.
- Confirm billing alerts deliver to your email.
- Run
aws sts get-caller-identitysuccessfully. - In the console, open EC2 → Regions dropdown — notice how the world is sliced (Module 02).
- Intentionally create nothing billable yet; destroy habits beat create habits.