|
| 1 | +# Selection of AWS Regions |
| 2 | + |
| 3 | +The Rust project has deployed a lot of resources on AWS, and most of them are in |
| 4 | +`us-west-1`. As we are growing our footprint and expand to more international |
| 5 | +locations, we are reconsidering which regions we want to use. |
| 6 | + |
| 7 | +Please note that this is mainly for new resources that we are deploying, such as |
| 8 | +new AWS accounts. Existing resources might get migrated, but this is a |
| 9 | +significant effort that might not be worth it given our limited time. |
| 10 | + |
| 11 | +## Selection Criteria |
| 12 | + |
| 13 | +We have two criteria that we use to make this decision: |
| 14 | + |
| 15 | +- **Price** - Pricing differs between regions, and we can reduce our costs by |
| 16 | + deploying to cheaper regions. |
| 17 | +- **Location** - We want to host our services close to most of our users. But |
| 18 | + given that Rust is used globally, we won't be able to satisfy everyone. |
| 19 | + |
| 20 | +## Price |
| 21 | + |
| 22 | +Looking at the current distribution of our bill, outbound traffic is by far the |
| 23 | +most expensive item. This severely limits the price savings we might enjoy by |
| 24 | +switching to a cheaper region. |
| 25 | + |
| 26 | +Even if we assume that we will be able to significantly reduce our outbound |
| 27 | +traffic cost on AWS (e.g. by moving to Fastly), the difference between regions |
| 28 | +is not massive. |
| 29 | + |
| 30 | +## Locations |
| 31 | + |
| 32 | +Because most of our traffic comes from the US, we want to run most of our |
| 33 | +infrastructure here. The following regions are interesting to us: |
| 34 | + |
| 35 | +- `us-east-1` or `us-east-2` (cheaper) |
| 36 | +- `us-west-1` (already in use) |
| 37 | + |
| 38 | +Services we want to distribute more globally, e.g. the dev-desktops, we also |
| 39 | +want to deploy to Europe. Here, the following regions seem the most reasonable: |
| 40 | + |
| 41 | +- `eu-west-1` (cheaper) |
| 42 | +- `eu-central-1` (more central location) |
| 43 | + |
| 44 | +## Decision |
| 45 | + |
| 46 | +[We decided](https://rust-lang.zulipchat.com/#narrow/stream/242791-t-infra/topic/meeting.202022-12-12) |
| 47 | +to use the following regions for new resources: |
| 48 | + |
| 49 | +- `us-east-2` - Given that most of our infrastructure is hosted in the US, we |
| 50 | + want to use a cheaper region here to benefit at least a little bit. |
| 51 | +- `eu-central-1` - Since we're not deploying that many resources to Europe, we |
| 52 | + want to optimize for location here. |
| 53 | + |
| 54 | +When deploying new resources, they should be deployed to `us-east-2` by default. |
| 55 | +Only resources that need to be geographically distributed should be deployed to |
| 56 | +`eu-central-1`. |
0 commit comments