DEV Community

Cover image for Finally understanding Outposts and Local Zones
Brian Tarbox
Brian Tarbox

Posted on • Edited on

Finally understanding Outposts and Local Zones

I've been developing with AWS for over ten years, have about five certifications,I run the local Boston User Group and I've been to seven re:Invents. I'm pretty deep into the platform. And yet, there are still lots of services I've never touched. For example, though I actually have written software that runs on the National Polar Orbital Observatory I've never used Ground Station.

Some of the AWS services are just so specialized that unless you've had a customer need for them its unusual to have experience with them. Until recently Local Zones and Outposts were in that category for me.

I could certainly tell you what they were but without any real understanding. An Outpost is an AWS supplied rack running a subset of AWS services that you install in your on-premises location. It has very specific requirements, as you might imagine, but basically you can install AWS locally. You can create subnets on your Outpost and specify them when you create AWS resources such as EC2 instances, EBS volumes, ECS clusters, and RDS instances. Instances in Outpost subnets communicate with other instances in the AWS Region using private IP addresses, all within the same VPC. Each Outpost has a network connection back to an AWS region as well as to the rest of your on-premise network.

A Local Zone solves a similar problem by providing an AWS presence closer to end users so as to provide single digit latency. While we're not supposed to know exactly where the actual hardware for a given AZ lives, the location of a Local Zone is the whole point.

Outposts can be a standard 42U rack or a 1U or 2U server. Racks support more AWS services than Servers. As an example EC2 and ECS are supported by both Racks and Servers while EKS is not available on servers.

Without having used either or even really understood a use case for them however, my knowledge was quite thin.

Recently however I had the opportunity to attend the AWS/Riot Games Valorant World Championship. A group of AWS Heros and Community Builders were invited to attend the games and get behind the scenes looks at the technology behind the games.

If you're new to Valorant its a five v. five first person shooter game with an enormous following. We watched the finals in an 18,000 seat arena with 189,000 twitch followers. The folks at Riot Games have an incredibly tuned system that runs at a blistering 132 frames a second, giving them 7.5 milliseconds per frame. Latency, especially unpredictable latency is a game killer for Riot. If a player has just a few tens of milliseconds of advantage they can "peek" around a corner and get back before their opponent can see them.

Image description

For the in person championship Riot ran the entire tournament on a single outpost at the tournament site. All ten players had a latency that was as identical as can be measured. The tournament team did say that if the single server were to go down they would be dead in the water. They actually had a security guard preventing anyone from going physically anywhere near the server!

For general game play Riot has a system for finding a location to run a game that provides all of the players equitable latency. So, for example a game between players in Boston might run in US-East1 while a game with players in New England and Florida might run in Ohio. These games will not have 7.5 millisecond latency but the latency will be equitable.

The Riot Games strategy is to add Outposts as needed but to then encourage AWS to add Local Zones in those locations. A Local Zone is a middle ground between "regular" AZs which are of course fully AWS managed and an Outpost which lives in your site.

An Outpost is not a cheap solution. In large part this is due to the fact that you are running an Outpost 24x7 as you are not sharing it with anyone. An EC2 configuration with 4 m5.12xlarge costs over five thousand dollars per month, while a 12 r5.24xlarge configuration runs nearly $25,000/month and 380 TB of S3 costs just under $40,000/month..

Local Zone pricing is different because you are back to a pay as you go model. Running an m5.8xlarge instance in the Boston Local Zone costs $1.92 / hour. This is slightly higher than the normal regional cost of $1.536 /hour but much lower than the $6.9 / monthly cost for a similar Outpost.

So, Local Zones are more expensive than "normal" regions, and Outposts are more expensive than Local Zones, but there are times when the trade off is worth it.

If we're got your attention and would like to learn more the Boston AWS User Group is planning on an Outpost/Local Zone Deep Dive in mid November.

Top comments (0)