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)
- Go to aws.amazon.com/free. Click "Create a Free Account."
- Credit card is required (standard for AWS). The free tier limits prevent charges if you're careful, and the cost alarms in Step 4 are your seat belt.
- Region:
us-west-2(Oregon). Closest to you; matches Snowflake.
Step 2 โ Create a dedicated IAM user
Do not use root. The root account is for billing only.
- IAM โ Users โ Create user. Name:
ude-admin. - Attach policies:
AdministratorAccess(learning only; for real work you'd scope down). - Create an access key. Save to a password manager. Add to your local AWS CLI:
aws configure --profile ude. - Enable MFA on root + on this user.
Step 3 โ The cost seat belt (do this even if account exists)
3a ยท Budget alerts
AWS Console โ Billing โ Budgets โ Create budget โ Customize:
- Budget type: Cost budget
- Monthly amount: $5
- Alerts: email at 50%, 80%, 100%, and 120%
- Recipient: your email
3b ยท CloudWatch billing alarm (stronger)
A CloudWatch alarm can page you via SNS. Minimum viable:
- CloudWatch โ Alarms โ Create. Metric: Billing โ Total Estimated Charges, USD.
- Threshold:
GreaterThanThreshold 1(yes โ one dollar) - Create an SNS topic
billing-alerts, subscribe your email. Confirm the subscription from your inbox.
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
- AWS account ID
- IAM user name:
ude-admin - CLI profile name:
ude - Learning S3 bucket name
- Default region:
us-west-2 - Budget & CloudWatch alarm confirmed
Step 7 โ Quick-reference: free-tier limits you'll touch
| Service | Free forever | 12-month trial | Paid after |
|---|---|---|---|
| S3 | โ | 5 GB storage, 20k GET, 2k PUT/mo | $0.023/GB/mo |
| Lambda | 1M invocations, 400k GB-sec/mo | โ | $0.20/1M invokes |
| Step Functions (Standard) | 4k state transitions/mo | โ | $0.025/1k transitions |
| Glue | 1M Catalog requests/mo | โ | $0.44/DPU-hr (no ETL free tier) |
| Kinesis Data Streams | โ | โ | $0.015/shard-hr + $0.014/1M records |
| CloudWatch Logs | 5 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.