Skip to content

Architecture

Progress checklist

A same-AZ shared hot lookup bakeoff in ap-southeast-2. An

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
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.

sits in 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).
. A Graviton EC2 instance in that AZ continuously GETs the same small keys from Express and from a Standard general-purpose bucket, then shows live latency on a built-in 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.
dashboard.

You are not building a production cache, Mountpoint, or multi-AZ design — see Where Express fits for the single-AZ durability trade-off.

Durable image pipeline: operator runs image.sh through CodeBuild into ECR. Lab VPC 10.87.0.0/16 with a public subnet in apse2-az1 hosts an m7g.large running the harness on :8080; gateway endpoints s3 and s3express reach the Standard bakeoff bucket and the Express directory bucket. Dashboard shows p50/p90 and Standard divided by Express.
PieceWhat it is
Image pipeline./scripts/image.sh — ECR + CodeBuild (arm64). Survives demo.sh down; remove with image.sh down.
Lab stack./scripts/demo.sh — VPC, dual gateway endpoints, two buckets, IAM (+ SSM), m7g.large, seed.
HarnessContainer on EC2: continuous GETs to both buckets; dashboard at :8080.
Dashboardp50 / p90 / p99 and Standard÷Express ratio — public URL or SSM port-forward.
ConstraintWhy it matters
Compute in apse2-az1Express is single-AZ. Cross-AZ or laptop GETs hide the product.
Two gateway endpoints….s3 for Standard; ….s3express for the directory bucket.
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.
Zonal object APIs use session auth, not classic s3:GetObject on Express.
Identical seed keysBakeoff is fair only when both buckets hold the same objects.
arm64 image + m7g.largeCodeBuild builds for Graviton; EC2 pulls that tag from ECR.
AmazonSSMManagedInstanceCoreSession Manager / port-forward without opening a bastion.
Once (or when the harness changes)
./scripts/image.sh up
./scripts/image.sh build → ECR :tag
Each lab run
./scripts/demo.sh up → VPC + buckets + EC2 (pulls image)
./scripts/demo.sh status|dash|port-forward
./scripts/demo.sh down → lab only (image stack remains)
When finished — remove everything
./scripts/demo.sh down → lab (if still up)
./scripts/image.sh down → ECR + CodeBuild + source bucket