Costs and limits
Progress checklist
Overview
Section titled “Overview”Do not hardcode per-GB or hourly rates — they age. Link pricing pages. The usual surprise is an
m7g.large left running; objects and public IPv4 also bill until cleaned up.
Billing reminders
Section titled “Billing reminders”| Resource | Stops billing when |
|---|---|
EC2 m7g.large | Terminated (main hourly cost) |
| Public IPv4 on the instance | Instance terminated (or address released) |
| EBS root volume | Deleted with the instance (or separately) |
| Standard + Express objects | Deleted |
| Directory / Standard buckets | Deleted after empty |
| Gateway VPC endpoints | Deleted (no NAT in this lab) |
| IAM roles / instance profiles | Free — delete to avoid leftover permissions |
| ECR images / CodeBuild | Not removed by demo.sh down — run image.sh down too (Tear down) |
See S3 pricing and EC2 On-Demand pricing.
Lab default opens TCP 8080 to 0.0.0.0/0. Prefer
SSM port-forward for local viewing when you do not need a public dash.
Single-AZ durability
Section titled “Single-AZ durability”S3 Express One Zone
Amazon S3 Express One Zone — single-AZ storage class optimized for consistent single-digit millisecond latency, used only with directory buckets.
S3 Express One Zone stores data redundantly within one
Availability Zone. That is by design for latency — not multi-AZ durability like Standard.
Use it for regenerable or explicitly single-AZ hot data, not as a sole copy of irreplaceable
archives. See Where Express fits.
Directory bucket limits (high level)
Section titled “Directory bucket limits (high level)”| Constraint | Detail |
|---|---|
| Naming | base--zone-id--x-s3 (lab: --apse2-az1--x-s3) |
| Location | Single AZ; Sydney Express AZ ID is apse2-az1 only |
| Auth for zonal ops | CreateSession s3express:CreateSession — session-based auth for zonal (object-level) operations on a directory bucket. The SDK or CLI obtains temporary credentials scoped to that bucket before GET/PUT/LIST. |
| Networking | Same-AZ compute + gateway endpoints s3 and s3express |
| Tagging | s3control TagResource (not s3api put-bucket-tagging) |
| Sync | aws s3 sync is rejected — use aws s3 cp --recursive |
| Feature parity | Not every general-purpose S3 feature applies |
Exact request-rate and quota numbers belong on the AWS docs — re-read them rather than copying numbers that may change.