AWS
Beginner 12 min read AWS

AWS Platform Overview

AWS is the largest public cloud platform, offering compute, storage, database and networking services on demand. Learn regions, availability zones, the core service families, the management plane (console, CLI, SDKs), and how billing and the free tier work so you can navigate any account.

regionsavailability zonesEC2S3IAMAWS CLIconsolebillingfree tierservice families
Introduction

What is this?

Amazon Web Services (AWS) is a public cloud platform that offers more than 200 services — compute, storage, databases, networking, machine learning and more — over the internet with pay-as-you-go pricing. Infrastructure is organized by regions (geographic clusters of data centers) and availability zones (isolated data centers within a region). You manage everything through a shared control plane: the web console, the AWS CLI, SDKs, or infrastructure-as-code tools.

Motivation

Why do you need it?

  • AWS is the market leader in cloud computing, so most DevOps job postings mention it explicitly.
  • Every other concept in this module (EC2, S3, VPC, EKS) is a specific AWS service — you need the map before the services.
  • Regions and availability zones drive latency, cost and high-availability decisions on every AWS project.
  • The management plane (console, CLI, SDK) is how you will deploy and operate everything, so fluency with it matters.
  • Billing awareness — free tier limits, on-demand versus reserved pricing, data transfer costs — is part of being a good DevOps engineer.
Think about it

Mental model

Imagine

A self-service hardware warehouse

Think of

AWS

Walk in with a request, grab a server, database or storage rack from the shelves, pay for exactly what you used, and walk out. The warehouse is split into wings (regions) and each wing has aisles that keep working even if one aisle floods (availability zones). The checkout desk (console or CLI) is the only place you touch; you never visit the warehouse floor.

Mechanics

How it works

  • AWS builds and operates data centers worldwide, grouped into regions; each region has multiple availability zones connected by low-latency links.
  • You create resources through the control plane — console, AWS CLI, SDKs or IaC tools like Terraform and CloudFormation — and the service provisions them in seconds.
  • Resources live in a specific region and often a specific availability zone; a service not present in your region cannot be used there.
  • Identity is enforced by IAM: every console user or CLI call is authenticated as a user, role or service principal with attached policies.
  • Usage is metered — instance-hours, GB stored, requests, data transfer — and billed monthly; the free tier lets you experiment within limits.

How an AWS resource is requested, run and billed.

You authenticate
Pick a region
Control plane
Service runs
Metering
Monthly bill
Reference

Key commands

aws sts get-caller-identity

Verify which account and user the CLI is authenticated as.

aws ec2 describe-regions

List the regions where the account can provision compute.

aws s3 ls

List the buckets in your account (empty on a fresh account).

aws iam list-users

Enumerate IAM users; you will see only yourself on a new account.

curl -s https://status.aws.amazon.com/rss/all.rss

Check live AWS service health before blaming your config.

Hands-on

Examples

Inspect your AWS identity and available regions

Inspect your AWS identity and available regions
$ aws sts get-caller-identity
{
"UserId": "AIDAEXAMPLEUSERID",
"Account": "123456789012",
"Arn": "arn:aws:iam::123456789012:user/devops-admin"
}
$ aws ec2 describe-regions --query "Regions[].RegionName" --output text
eu-north-1 ap-south-1 eu-west-3 us-east-1 us-east-2

aws sts get-caller-identity tells you exactly which identity the CLI is acting as — the account and the user. describe-regions lists where you can actually create resources. Every AWS command you run starts with the same pattern: aws <service> <action>, authenticated by credentials the CLI reads from ~/.aws.

Real world

In production

  • Choose regions close to your users to minimize latency, and spread workloads across availability zones for high availability.
  • Tag every resource (environment, owner, cost-center) so the monthly bill can be split across teams.
  • Use CloudFormation or Terraform to provision everything from code instead of clicking through the console.
  • Set up AWS Budgets and billing alarms so surprise spend is caught in hours, not weeks.
  • Adopt the free tier for learning environments, but always review limits before running production-sized workloads.
Guidelines

Best practices

  • Always create resources in the region you intend — 'it works in us-east-1' fails if the team is on ap-south-1.
  • Use IAM roles and short-lived credentials over long-lived access keys where possible.
  • Tag resources from day one; retro-tagging is painful and easy to miss.
  • Write down your AWS account ID and root email somewhere safe, and enable MFA on the root account.
  • Prefer infrastructure as code so every environment is reproducible and reviewable.
Watch out

Common mistakes

  • Accidentally leaving resources running in the wrong region, then wondering why the bill is high.
  • Sharing the root account credentials with teammates instead of creating IAM users.
  • Forgetting that data transfer out of AWS is billed, which surprises data-heavy workloads.
  • Running dev workloads 24/7 on on-demand pricing when schedules or spot instances would cut costs.
  • Assuming every service exists in every region — some newer services are regional only.
Root cause analysis

Common issues

Error
Unable to locate credentials
Root cause

The CLI has no access keys configured, or ~/.aws/credentials is missing.

Fix

Run aws configure or set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY, then retry.

Error
AccessDenied when calling the ListBuckets operation
Root cause

The identity lacks an IAM policy that allows s3:ListBucket or s3:ListAllMyBuckets.

Fix

Attach a least-privilege policy to the user or role, or use an identity that already has it.

Error
The instance type t3.micro is not supported in this region
Root cause

Some instance families are not offered in every region.

Fix

Query aws ec2 describe-instance-type-offerings for the region and switch to a supported type.

When things break

Debugging tips

  • Start every debugging session with aws sts get-caller-identity to confirm which identity you are.
  • Check the region you are targeting; many 'permission denied' errors are actually wrong-region requests.
  • Use the AWS Status page and Service Health Dashboard to separate provider incidents from your own config.
  • Inspect the actual API error code (AccessDenied, NoSuchBucket...) before guessing at the cause.
  • Enable CloudTrail to see who did what in your account when something changes unexpectedly.
Interviews

Interview checkpoint

Practice

Hands-on lab

Tour Your First AWS Sandbox
20 min · beginner
In progress
Objectives
  • Identify the host, OS and user as a cloud instance would
  • Verify outbound internet and DNS from the sandbox
  • Inspect environment variables and resource limits
  • Practice reading the same signals a provisioning script would

Tour Your First AWS Sandbox

20 min · beginner

0/6 steps
0%
sandbox · Linux sandbox
$
Try these commands
Test yourself

Quick quiz

0/3
1

Which AWS construct is an isolated data center or group of data centers within a region?

2

Every AWS service is available in every region.

3

A teammate created a test EC2 instance in us-west-2 while your team works in ap-south-1. What is the most likely problem you will hit?

Quick reference

Cheat sheet

Core service families
EC2Virtual servers — compute
S3Object storage — files, backups, static assets
VPCPrivate network with subnets and routing
RDS / DynamoDBRelational and NoSQL databases
IAMUsers, roles, policies and access keys
Global structure
Regione.g. us-east-1, ap-south-1 — geographic cluster
Availability zoneIsolated data center within a region
Edge locationCloudFront cache point for the CDN
Control planeConsole, CLI, SDKs, IaC
Go deeper

Official documentation