AWS Local Zones: when the latency win is worth the price premium
Deploy an m6i.large in us-west-2-lax-1, AWS’s Los Angeles Local Zone, and you pay 20% more per hour than the identical instance in us-west-2 itself. Deploy in us-east-1-atl-1, Atlanta, and the same size premium is 25%. Neither number is a rounding error, and neither is the whole story. A Local Zone also carries a fraction of the instance types its parent region offers, so the real cost of using one is the premium plus whatever you give up in selection.
So when does that trade make sense? This guide covers what a Local Zone actually is, the real premium and instance-selection limits pulled from the pricing dataset, and a framework for deciding between a Local Zone and just eating the parent region’s latency. For the pricing tools themselves: the instance explorer filters by region including every Local Zone in this dataset, each region browser page shows exactly what’s on offer in that zone, and the comparison tool puts a Local Zone instance and its parent-region equivalent side by side.
What a Local Zone actually is
A Local Zone is not a region. It’s an extension of a parent AWS region, physically sited in a metro area the parent region doesn’t reach, and connected back to that parent over AWS’s own network backbone. us-west-2-lax-1 is an extension of us-west-2 (Oregon), placed in Los Angeles. us-east-1-atl-1 is an extension of us-east-1 (Virginia), placed in Atlanta. The naming pattern makes the relationship explicit: every Local Zone ID in this dataset is its parent region’s ID with a city code and a number appended, and that pattern holds without exception across all 37 Local Zones AWS publishes pricing for here.
You get compute and low-latency storage physically close to a specific metro area, so traffic from users or devices there doesn’t have to round-trip to the parent region. You don’t get a full region: a Local Zone runs a subset of EC2 instance types and a subset of other AWS services, all controlled through the parent region’s console and APIs, billed on the same account. There’s no separate control plane to learn, but there is a materially smaller menu.
This is a different product from choosing a cheaper standard region for a workload with no latency requirement, which is its own decision covered in how much region affects your bill. That guide is about arbitrage between full regions with equivalent capability. This one is about paying more for a real capability standard regions don’t offer: physical proximity you can’t get any other way short of building your own edge.
The real premium
Pulled directly from the pricing dataset, on-demand Linux, current-generation instance types, Local Zone against parent region:
| Local Zone | Parent | Instance | Local Zone price | Parent price | Premium |
|---|---|---|---|---|---|
| us-west-2-lax-1 (Los Angeles) | us-west-2 | m5.large | $0.1150/hr | $0.0960/hr | 19.8% |
| us-west-2-lax-1 (Los Angeles) | us-west-2 | c5.xlarge | $0.2040/hr | $0.1700/hr | 20.0% |
| us-east-1-atl-1 (Atlanta) | us-east-1 | m6i.large | $0.1200/hr | $0.0960/hr | 25.0% |
| us-east-1-atl-1 (Atlanta) | us-east-1 | c6i.xlarge | $0.2125/hr | $0.1700/hr | 25.0% |
| us-west-2-phx-1 (Phoenix) | us-west-2 | m6i.large | $0.1152/hr | $0.0960/hr | 20.0% |
| us-west-2-phx-1 (Phoenix) | us-west-2 | t3.medium | $0.0520/hr | $0.0416/hr | 25.0% |
| us-east-1-mia-1 (Miami) | us-east-1 | m6i.xlarge | $0.2400/hr | $0.1920/hr | 25.0% |
Two patterns stand out. First, the premium is flat within a zone for most sizes and families: every m5/c5/r5/t3 comparison in Los Angeles landed at 19.8-20.0%, and every m6i/c6i/r6i comparison in Atlanta and Miami landed at exactly 25%. Second, the premium varies by which Local Zone, not by which instance you pick within it: LA runs about 20%, while Atlanta and Miami run about 25%. Phoenix is the one exception found in this data, splitting between 20% on the current-generation m6i/c6i/r6i line and 25% on t3.medium and m5.xlarge, so don’t assume a single number holds for every family even within one zone. Check the actual pair on the comparison tool before committing to a number.
The instance menu is a lot smaller
This is the limitation that doesn’t show up until you go looking for a specific instance type. The parent regions in this dataset offer over 1,000 Linux on-demand instance type/size combinations each. The Local Zones offer a sliver of that:
| Local Zone | Instance types offered | Families offered |
|---|---|---|
| us-east-1 (parent, for scale) | 1,225 | all current families |
| us-east-1-atl-1 (Atlanta) | 104 | c5d, c6gn, c6i, c7i, c8gn, g4dn, m6i, m6id, m7i, p5, p5en, p6-b200, p6-b300, r5d, r6i, r6in, r7i, t3 |
| us-west-2-lax-1 (Los Angeles) | 64 | c5, g4dn, g5, g7e, i3en, m5, m6g, r5, r5d, t3 |
| us-west-2-phx-1 (Phoenix) | 61 | c5d, c6gn, c6i, c8gn, g4dn, m5, m6i, r5d, r6i, t3 |
| us-east-1-mia-1 (Miami) | 46 | c5d, c6gn, c6i, g4dn, m5, m6i, r5d, r6i, t3 |
| us-east-1-nyc-1 (New York City) | 48 | c5d, c6in, c7i, g4dn, m6i, m6in, r5d, r7i, t3 |
Atlanta is the outlier: it carries GPU families up to p6, unusual for a Local Zone, and worth checking directly if your workload needs Nvidia accelerators close to a specific metro. Every other zone sampled here tops out at g4dn or g5, and Los Angeles is still running c5/m5/r5 rather than the newer c6i/m6i/r6i line that Atlanta, Phoenix, and Miami carry. New York, despite being one of the largest and most latency-sensitive metros AWS serves, offers fewer types than Phoenix or Miami and has no plain m5 at all.
The practical consequence: don’t assume your current instance type is available in the Local Zone you want. Check the region browser for that specific zone before you plan around it, and expect to resize or re-family your workload to fit what’s actually offered there, not what you’re running in the parent region today.
Who actually needs the latency
The premium and the narrower menu are the cost side. The benefit side is single-digit-millisecond round-trip time to a specific metro area, instead of however many milliseconds it takes to reach the parent region. That’s a real, measurable difference, but it only matters to a specific category of workload:
- Real-time multiplayer gaming and game streaming. Input lag is the product. Every extra 20-40ms round trip is a worse game, and players in a given metro notice the difference between a nearby Local Zone and a parent region three states or an ocean away.
- Real-time bidding and ad auctions. Bid windows are measured in tens of milliseconds. An auction server sited near the exchange it talks to wins auctions a more distant one physically can’t respond to in time.
- Live video production and broadcast contribution. Camera-to-cloud encoding and switching for live events wants the shortest possible path between the venue and the compute doing the work.
- Financial trading edge cases. Not the exchange matching engine itself, but pre-trade risk checks, market data normalization, and order routing logic that benefits from sitting close to a trading hub. New York’s
c6in/m6innetwork-optimized families, present in that zone despite its otherwise narrow menu, point at exactly this use case. - AR/VR and some industrial/robotics control loops. Motion-to-photon latency budgets in AR/VR, and control loops for remotely operated equipment, both have hard latency ceilings that a distant region can blow through even on a good network day.
None of these are “our app feels a bit slow.” They’re workloads with a specific, quantifiable latency budget, where a Local Zone is buying back milliseconds that have a direct, measurable effect on the product.
How to decide
- Quantify the latency budget, not the latency feeling. What’s the actual deadline? A 60fps multiplayer game wants well under 16ms of added network latency per frame; a REST API serving a dashboard has slack measured in hundreds of milliseconds. If you can’t state a number, you probably don’t have a hard requirement yet.
- Measure current round-trip time from the metro to the parent region. If your users in Los Angeles are already seeing 15-20ms to
us-west-2, a Local Zone buys you single digits, a real but small win. If they’re seeing 80-100ms because you’re actually serving them fromus-east-1or a region on another continent, moving to the nearer parent region alone may close most of the gap before a Local Zone enters the picture at all. - Check what’s actually offered in the target zone. Look up the specific Local Zone on its region page and confirm your instance family, or an acceptable substitute, is on the list. This dataset shows real gaps: no
m5in New York, noc6i/m6iline in Los Angeles, GPU support that varies zone to zone. - Price the actual pair. Use the comparison tool to set the parent-region instance against the Local Zone equivalent and confirm the premium for your specific size and family; this data shows it moves from about 20% to 25% depending on the zone, and Phoenix shows it can even vary by family within one zone.
- Plan for a smaller, not just pricier, deployment. Local Zones are typically single-AZ extensions with a narrower service footprint than a full region. Budget for a hybrid architecture: latency-critical compute in the Local Zone, everything else (database, control plane, batch processing) in the parent region, connected over the AWS backbone rather than the public internet.
Making the call
Clear yes. A quantified, hard latency ceiling under roughly 15-20ms round trip, tied to a specific metro area, for a workload where that ceiling has a direct product or revenue impact: competitive gaming, real-time ad auctions, live broadcast production, trading-adjacent systems. The 20-25% compute premium is a rounding error against what missing the latency budget costs.
Worth checking the menu first. Workloads that want the latency win but haven’t confirmed the Local Zone actually carries the instance type or GPU they need. Don’t commit to the architecture before confirming the zone’s instance list covers your requirements; several zones in this data carry a fraction of the parent region’s families, and some skip the newest generation entirely.
Stay on the parent region. Anything where “faster would be nice” is the honest description of the requirement, not “faster is required.” Batch jobs, internal tools, most user-facing web and API traffic that’s already served through a CDN or edge cache, and any workload where the current round-trip time to the parent region is already well inside its actual latency budget. You’d be paying a 20-25% premium and accepting a narrower instance menu for milliseconds nothing in your product actually spends.
Bottom line: the premium in this data runs 20-25% over the parent region for equivalent current-generation instances, consistent within a given zone but not identical across zones, and the instance menu shrinks from over a thousand types in the parent region to well under a couple hundred, sometimes under fifty, in the Local Zone. That’s a fair price for single-digit-millisecond latency to a specific metro when a workload genuinely needs it, and a needless one when it doesn’t. The question that decides it isn’t whether the Local Zone is “worth it” in the abstract. It’s whether you can state, in milliseconds, what missing the parent region’s latency actually costs you.