Skip to content

S3 Express Hot Lookup Walkthrough

Amazon S3 Express One Zone keeps hot objects in one AZ next to compute — this lab shows how that fits shared hot lookup versus S3 Standard.

Many services share a small set of keys that clients read constantly — feature flags, pricing tables, session metadata. That is a shared hot lookup
Workload pattern where many clients repeatedly read a small, shared set of keys (config, feature flags, hot catalog rows). Express co-located with compute is a fit when GET latency dominates.
pattern: latency and consistency matter more than multi-AZ durability for those hot objects.

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
puts object storage in a single Availability Zone next to your compute. You use a directory-bucket
S3 bucket type that hosts the S3 Express One Zone storage class. Names follow bucket-base-name--zone-id--x-s3 and live in a single Availability Zone.
and session-based 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.
auth so zonal GETs stay in the single-digit millisecond range when the client is co-located.

Same-AZ shared hot lookup: an m7g.large harness in a public subnet (apse2-az1) GETs identical hot keys from an Express directory bucket via CreateSession and from a Standard general-purpose bucket as the bakeoff baseline.
Standard general purposeThis lab (Express)
Latency targetGood for most appsSingle-digit ms GET/PUT when same-AZ
Durability modelMulti-AZSingle AZ (by design)
Auth for object opsSigV4 as usualCreateSession then zonal ops
NetworkingRegional S3 endpointRegional + s3express gateway endpoint

Create a dedicated VPC

CIDR 10.87.0.0/16, public subnet in the AZ that maps to apse2-az1
Availability Zone ID — a unique, account-stable identifier such as apse2-az1. Directory bucket names and Express location config use the AZ ID, not the account-local AZ name (for example ap-southeast-2a).
, IGW, and both S3 gateway endpoints
VPC gateway endpoint for private S3 access without a NAT gateway. This lab creates both com.amazonaws.ap-southeast-2.s3 and com.amazonaws.ap-southeast-2.s3express.
.

Create the buckets

Express directory bucket plus a Standard general-purpose bucket for the bakeoff.

IAM, EC2, and harness

Instance profile with CreateSession, m7g.large in that AZ, seed keys, then run the harness
Docker container on the lab EC2 instance that continuously GETs the same keys from Express and Standard, exposes a dashboard on :8080, and reports p50/p90 latency ratios.
on :8080.

Read the dash, then tear down

Compare p50/p90 ratios, then remove everything./scripts/demo.sh down and ./scripts/image.sh down.

ExpectationNotes
Lab lengthUnder an hour once tooling is ready (verified this account)
Express AZSydney has one Express AZ ID: apse2-az1
CostBillable until lab and image stack are deleted