Decide on Primary AWS Region
While the company might operate in multiple regions, one region should be selected as the primary region. There are certain resources that will not be geographically distributed and these should be provisioned in this default region.
When starting from scratch with a new AWS account, it's a good time to revisit decisions that might have been made decades ago. There are many new AWS regions that might be better suited for the business.
Considerations
Customer Proximity
One good option is picking a default region that is closest to the where the majority of end-users reside.
Business Headquarters
One good option is picking a default region that is closest to where the majority of business operations take place. This is especially true if most of the services in the default region will be consumed by the business itself.
Stability
When operating on AWS, selecting a region other than us-east-1 is advisable as this is the default region (or used to
be) for most AWS users. It has historically had the most service interruptions presumably because it is one of the most
heavily-used regions and operates at a scale much larger than other AWS regions. Therefore we advise using us-east-2
over us-east-1 and the latencies between these regions is very minimal.
High Availability / Availability Zones
Not all AWS regions support the same number of availability zones. A minimum of 3 AZs is recommended when operating Kubernetes to avoid "split-brain" problems. Most AWS regions now have at least 3 AZs, but there are exceptions:
us-west-1(US West, N. California) — newer accounts only have access to 2 AZs- Some opt-in regions may have fewer AZs
See the AWS Regions documentation for the current AZ count per region.
Service Availability
Not all regions offer the full suite of AWS services or receive new services at the same rate as others. Some regions
receive platform infrastructure updates slower than others. AWS also offers
Local Zones (e.g.
us-west-2-lax-1a) which operate a subset of AWS services.
See AWS Regional Services List for a complete breakdown of service availability by region.
Several services used in the reference architecture are only available in a subset of AWS regions:
-
AWS App Runner is only available in these regions:
us-east-1,us-east-2,us-west-2,eu-central-1,eu-west-1,eu-west-2,eu-west-3,ap-south-1,ap-southeast-1,ap-southeast-2,ap-northeast-1. We use App Runner for RunsOn, our recommended solution for self-hosted GitHub runners. -
Amazon Managed Grafana is only available in these regions:
us-east-1,us-east-2,us-west-2,eu-central-1,eu-west-1,eu-west-2,ap-northeast-1,ap-northeast-2,ap-southeast-1,ap-southeast-2. We use Managed Grafana for centralized monitoring dashboards in the Grafana monitoring stack.
Deploying in Unsupported Regions
If your primary region doesn't support one of these services, you can still use that region by deploying the service in a supported region and connecting it back. Depending on the service, this may require connecting the alternate region via Transit Gateway with a cross-region peering connection, deploying cross-region IAM roles, or a combination of both. These workarounds add complexity and cost (e.g. Transit Gateway cross-region data transfer adds approximately $80/month).
Cost
Not all regions cost the same to operate.
Instance Types
Not all instance types are available in all regions
Latency
Latency between v1 infrastructure and v2 infrastructure could be a factor. See cloudping.co/grid for more information.
Recommendation
Taking all of the above into consideration, we recommend choosing a primary region that supports the services you need,
has at least 3 availability zones, and is not us-east-1 (due to its history of service interruptions). The regions
that support both App Runner and Managed Grafana while meeting these criteria are:
us-east-2(US East, Ohio)us-west-2(US West, Oregon)eu-central-1(Europe, Frankfurt)eu-west-1(Europe, Ireland)eu-west-2(Europe, London)ap-southeast-1(Asia Pacific, Singapore)ap-southeast-2(Asia Pacific, Sydney)ap-northeast-1(Asia Pacific, Tokyo)
For US-based organizations, us-east-2 and us-west-2 are both solid choices. They avoid the stability concerns of
us-east-1, offer low latency to other US regions, and support the full reference architecture without workarounds.