99
1010import Intro from " @site/src/components/Intro" ;
1111import KeyPoints from " @site/src/components/KeyPoints" ;
12+ import Steps from " @site/src/components/Steps" ;
1213
1314While the company might operate in multiple regions, one region should be selected as the primary region. There are
1415certain resources that will not be geographically distributed and these should be provisioned in this default region.
1516
1617When starting from scratch with a new AWS account, it's a good time to revisit decisions that might have been made
1718decades ago. There are many new AWS regions that might be better suited for the business.
1819
20+ ## Considerations
21+
1922### Customer Proximity
2023
2124One good option is picking a default region that is closest to the where the majority of end-users reside.
@@ -34,47 +37,53 @@ over `us-east-1` and the latencies between these regions is very minimal.
3437
3538### High Availability / Availability Zones
3639
37- Not all AWS regions support the same number of availability zones.
38- [ Many regions only offer (2) availability zones] ( https://howto.lintel.in/list-of-aws-regions-and-availability-zones/ )
39- when a minimum of (3) is recommended when operating kubernetes to avoid "split-brain" problems.
40+ Not all AWS regions support the same number of availability zones. A minimum of 3 AZs is recommended when operating
41+ Kubernetes to avoid "split-brain" problems. Most AWS regions now have at least 3 AZs, but there are exceptions:
4042
41- ### Cost
43+ - ` us-west-1 ` (US West, N. California) — newer accounts only have access to 2 AZs
44+ - Some opt-in regions may have fewer AZs
4245
43- Not all regions cost the same to operate.
46+ See the [ AWS Regions documentation] ( https://docs.aws.amazon.com/global-infrastructure/latest/regions/aws-regions.html )
47+ for the current AZ count per region.
4448
4549### Service Availability
4650
47- Not all regions offer the full suite of AWS services or receive new services at the same rate as others. Other times,
48- certain regions receive platform infrastructure updates slower than others. Also, recently AWS launched
51+ Not all regions offer the full suite of AWS services or receive new services at the same rate as others. Some regions
52+ receive platform infrastructure updates slower than others. AWS also offers
4953[ Local Zones] ( https://aws.amazon.com/about-aws/global-infrastructure/regions_az/#AWS_Local_Zones ) (e.g.
5054` us-west-2-lax-1a ` ) which operate a subset of AWS services.
5155
5256See [ AWS Regional Services List] ( https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/ ) for
5357a complete breakdown of service availability by region.
5458
55- ### Reference Architecture Component Availability
59+ Several services used in the reference architecture are only available in a subset of AWS regions:
5660
57- Beyond standard AWS services, certain components in the reference architecture have their own regional constraints that
58- should factor into your primary region decision.
61+ <Steps >
62+ 1 . ** [ AWS App Runner] ( https://aws.amazon.com/apprunner/ ) ** is only available in these regions:
63+ ` us-east-1 ` , ` us-east-2 ` , ` us-west-2 ` ,
64+ ` eu-central-1 ` , ` eu-west-1 ` , ` eu-west-2 ` , ` eu-west-3 ` ,
65+ ` ap-south-1 ` , ` ap-southeast-1 ` , ` ap-southeast-2 ` , ` ap-northeast-1 ` .
66+ We use App Runner for [ RunsOn] ( /layers/github-actions/runs-on/ ) , our recommended solution for self-hosted GitHub runners.
5967
60- #### RunsOn (Self-Hosted GitHub Runners)
68+ 1 . ** [ Amazon Managed Grafana] ( https://aws.amazon.com/grafana/ ) ** is only available in these regions:
69+ ` us-east-1 ` , ` us-east-2 ` , ` us-west-2 ` ,
70+ ` eu-central-1 ` , ` eu-west-1 ` , ` eu-west-2 ` ,
71+ ` ap-northeast-1 ` , ` ap-northeast-2 ` , ` ap-southeast-1 ` , ` ap-southeast-2 ` .
72+ We use Managed Grafana for centralized monitoring dashboards in the
73+ [ Grafana monitoring stack] ( /layers/monitoring/ ) .
74+ </Steps >
6175
62- [ RunsOn] ( /layers/github-actions/runs-on/ ) is our recommended solution for self-hosted GitHub runners. It relies on
63- [ AWS App Runner] ( https://aws.amazon.com/apprunner/ ) , which is only available in a subset of AWS regions:
76+ #### Deploying in Unsupported Regions
6477
65- - ` us-east-1 ` , ` us-east-2 ` , ` us-west-2 `
66- - ` eu-central-1 ` , ` eu-west-1 ` , ` eu-west-2 ` , ` eu-west-3 `
67- - ` ap-south-1 ` , ` ap-southeast-1 ` , ` ap-southeast-2 ` , ` ap-northeast-1 `
78+ If your primary region doesn't support one of these services, you can still use that region by deploying the service
79+ in a supported region and connecting it back. Depending on the service, this may require connecting the alternate region
80+ via [ Transit Gateway] ( /components/library/aws/tgw/hub/ ) with a cross-region peering connection, deploying cross-region
81+ IAM roles, or a combination of both. These workarounds add complexity and cost (e.g. Transit Gateway cross-region
82+ data transfer adds approximately ** $80/month** ).
6883
69- Notably, ** ` us-west-1 ` does not support App Runner** , and therefore RunsOn cannot be deployed there directly.
70-
71- If your primary region doesn't support App Runner but you still want to use that region, you'll need to deploy RunsOn
72- in a supported region and connect it to your primary region. We recommend using Transit Gateway with a cross-region
73- peering connection for this, though other connectivity options exist. This adds approximately ** $80/month** in Transit
74- Gateway cross-region data transfer costs.
84+ ### Cost
7585
76- For most deployments, we recommend choosing a primary region that supports App Runner to avoid this additional
77- complexity and cost.
86+ Not all regions cost the same to operate.
7887
7988### Instance Types
8089
@@ -85,7 +94,25 @@ Not all instance types are available in all regions
8594Latency between v1 infrastructure and v2 infrastructure could be a factor. See
8695[ cloudping.co/grid] ( https://www.cloudping.co/grid ) for more information.
8796
88- ### References
97+ ## Recommendation
98+
99+ Taking all of the above into consideration, we recommend choosing a primary region that supports the services you need,
100+ has at least 3 availability zones, and is not ` us-east-1 ` (due to its history of service interruptions). The regions
101+ that support both App Runner and Managed Grafana while meeting these criteria are:
102+
103+ - ` us-east-2 ` (US East, Ohio)
104+ - ` us-west-2 ` (US West, Oregon)
105+ - ` eu-central-1 ` (Europe, Frankfurt)
106+ - ` eu-west-1 ` (Europe, Ireland)
107+ - ` eu-west-2 ` (Europe, London)
108+ - ` ap-southeast-1 ` (Asia Pacific, Singapore)
109+ - ` ap-southeast-2 ` (Asia Pacific, Sydney)
110+ - ` ap-northeast-1 ` (Asia Pacific, Tokyo)
111+
112+ For US-based organizations, ` us-east-2 ` and ` us-west-2 ` are both solid choices. They avoid the stability concerns of
113+ ` us-east-1 ` , offer low latency to other US regions, and support the full reference architecture without workarounds.
114+
115+ ## References
89116
90117- [ https://www.geekwire.com/2017/analysis-rethinking-cloud-architecture-outage-amazon-web-services/ ] ( https://www.geekwire.com/2017/analysis-rethinking-cloud-architecture-outage-amazon-web-services/ )
91118- [ https://www.concurrencylabs.com/blog/choose-your-aws-region-wisely/ ] ( https://www.concurrencylabs.com/blog/choose-your-aws-region-wisely/ )
0 commit comments