Exercise 4.1 โ€” Free-Tier AWS Setup + Cost Alarms

If you already have an AWS account (personal or from a current role), skip to Step 3. Otherwise, 30 min start to finish โ€” with iron-clad cost guardrails so this never bites you.

Step 1 โ€” Sign up (or reuse)

Step 2 โ€” Create a dedicated IAM user

Do not use root. The root account is for billing only.

Step 3 โ€” The cost seat belt (do this even if account exists)

3a ยท Budget alerts

AWS Console โ†’ Billing โ†’ Budgets โ†’ Create budget โ†’ Customize:

3b ยท CloudWatch billing alarm (stronger)

A CloudWatch alarm can page you via SNS. Minimum viable:

After this: any unexpected dollar of charge emails you within an hour.

Step 4 โ€” Install the AWS CLI & verify

brew install awscli   # macOS. For Linux: distro package or pipx install awscli
aws --profile ude sts get-caller-identity

Should return your account ID and user ARN. You're in.

Step 5 โ€” Create a learning S3 bucket

aws --profile ude s3 mb s3://ude-learner-$(uuidgen | head -c 8 | tr A-Z a-z) --region us-west-2
aws --profile ude s3 ls

Remember the exact bucket name โ€” you'll reference it in Exercise 3.1 and 4.2.

Step 6 โ€” Notepad โ€” save for future you

Step 7 โ€” Quick-reference: free-tier limits you'll touch

ServiceFree forever12-month trialPaid after
S3โ€”5 GB storage, 20k GET, 2k PUT/mo$0.023/GB/mo
Lambda1M invocations, 400k GB-sec/moโ€”$0.20/1M invokes
Step Functions (Standard)4k state transitions/moโ€”$0.025/1k transitions
Glue1M Catalog requests/moโ€”$0.44/DPU-hr (no ETL free tier)
Kinesis Data Streamsโ€”โ€”$0.015/shard-hr + $0.014/1M records
CloudWatch Logs5 GB ingestion + 5 GB storageโ€”$0.50/GB ingested

Rule of thumb: S3 + Lambda + Step Functions exercises cost <$0.01. Glue + Kinesis need attention โ€” always delete resources when the exercise ends.