System Design Optimizer
Tune the architecture. Watch it react.
Cost, scalability, availability, networking and security puzzles on real AWS building blocks. Pick instance classes, dial in autoscaling, place subnets, lock down access — every change updates the system health live. Difficulty ranges from beginner to expert.
34 challenges
Trim the idle dev/test bill
A dev/test environment runs oversized, on-demand, 24×7 — for a workload that's idle nights and weekends. Cut the bill hard without breaking it.
Run batch jobs on Spot
A fault-tolerant nightly batch cluster runs on oversized On-Demand instances 24×7. It's interruptible work — pay accordingly.
Right-size the runaway fleet
You inherited a service running an oversized, single-AZ fleet on-demand — no CDN, no cache, and a lone database. It's burning cash, it's too slow, and it's fragile. Meet a tight SLA on a quarter of the bill.
Purchasing strategy under an SLA
The cheapest purchasing option isn't always allowed. Hit a strict availability SLA at the lowest cost — and learn why pure Spot won't cut it here.
Multi-region cost blowout
Someone deployed active-active across two regions 'to be safe' — doubling the bill for an SLA a single region meets easily. Right-size the footprint.
FinOps overhaul
Every tier of this two-tier app is mis-provisioned at once — prev-gen on-demand fleets in one AZ, no CDN or cache, an oversized database, and cold data on hot storage.
Offload static traffic with a CDN
Most of this site's traffic is static assets hitting the origin fleet directly. Put a CDN in front so the origin can shrink dramatically.
Cache a read-heavy API
A read-heavy API is hammering its database and running in a single AZ. Add the missing pieces to meet the SLA — without over-building.
Handle a flash-sale spike
Traffic is flat all day, then explodes 20× for one hour during the sale. A fixed fleet either bankrupts you or falls over. Ride the spike efficiently.
Scale the read platform to 12k rps
Growth pushed this content platform to 12,000 rps. The origin fleet and database can't keep up. Absorb the load with edge caching and a cache tier — cheaply.
Global low-latency at scale
Users worldwide need sub-85ms p99. One region — however well tuned — can't beat the speed of light to every continent. Go global without wasting money.
Kill the single points of failure
One app instance, one database, one AZ. Any failure takes the whole service down. Make it survive an instance or AZ loss.
Multi-AZ everything (four nines)
The business now needs 99.99% — four nines. Two AZs and a Multi-AZ database aren't enough; every tier has to tolerate an AZ loss with headroom.
Survive an AZ outage
Two instances in two AZs looks redundant — until an AZ fails and the other half can't carry the load, and the single-standby database has nowhere to fail to.
Survive the viral launch
15,000 rps, four-nines availability, a 110 ms latency ceiling, and a real budget. Every tier has to be fast, redundant across three AZs, and lean at once.
Five nines across regions
The board wants 99.995% — you can't get there inside a single region, no matter how many AZs. Build a multi-region posture that survives a whole region.
NAT for private egress
The app servers are exposed in a public subnet just so they can download updates. Move them private and give them a safe way out.
Public vs private subnets
The load balancer is hidden while the app and database sit on the public internet — exactly backwards. Lay out the VPC the right way.
Segment a multi-tier VPC
Web, app, and data tiers all sit in one flat, public network trusting each other over the whole VPC. Segment them properly with least-privilege paths.
Least-privilege security groups
Subnets are fine, but every tier's security group trusts the whole VPC. Tighten each one to accept traffic only from the tier directly in front of it.
Connect VPCs privately
An app needs a shared-services database that lives in another VPC. Right now it reaches it over the public internet. Wire the two VPCs together privately.
Zero-trust network segmentation
A flat, public, mutually-trusting network across web, app, and data tiers. Rebuild it as a fully segmented, least-privilege, defense-in-depth VPC.
Stop the public exposure
A public database, a world-readable S3 bucket, and SSH open to the internet. Shut the three classic exposures without taking the site offline.
Encrypt everything (rest & transit)
A compliance audit requires encryption everywhere — at rest and in transit. Right now almost nothing is encrypted. Close every gap.
Close public SSH with SSM
Admins reach the fleet over SSH open to the whole internet, on instances in a public subnet. Provide safe admin access with no inbound SSH.
Lock down the database
The database is publicly reachable, accepts traffic from anywhere, and stores data in the clear. Close every gap without breaking the app path.
WAF and edge protection
The load balancer takes raw internet traffic with no filtering, and the tiers behind it are exposed. Put a WAF at the edge and lock everything behind it.
Defense in depth
Layer every control at once: edge filtering, private placement, no public admin access, and encryption across the database, cache, and object store.
Tiered storage lifecycle
40 TB of cold archival data sits in S3 Standard, and the app server is oversized. Move rarely-touched data to the right storage class and trim compute.
Tune the data tier
A tiny burstable database is choking a busy service, with no cache and no redundancy. Choose the right database size and protect the data.
Right-size DynamoDB
A steady key-value workload runs on wildly over-provisioned DynamoDB in a single AZ compute tier. Match capacity to demand and stop paying for idle units.
Scale database reads
A read-dominated workload has outgrown a single database, even a big one. Scale reads with caching plus read replicas — cheaper than brute-forcing the class.
Pick the right DynamoDB mode
Traffic is flat then spikes 20× for an hour. Provisioned capacity either throttles the spike or sits idle all day. Choose the mode that fits unpredictable load.
Global-scale datastore
20,000 rps of global key-value traffic, five-nines, and a 100 ms ceiling. Choose the capacity model and footprint that scale without incinerating the budget.
For learning purposes only. Costs and capacities are illustrative and are not live AWS prices. Not affiliated with or endorsed by Amazon Web Services.