Question

We run a busy web app, with most traffic being USA based. Our IT department is currently in the process of migrating our web server to the Amazon AWS EC2 environment and I'd like to make sure we set it up correctly geographically ...

Currently, the test environment AMI instance they set up is in the USA West region (North California). However, our traffic originates much more from Eastern than Western/Mountain regions (though the latter are hardly negligible). Our original hosting server is in Texas.

1) I think we will need to move the test AMI instance to USA East (Virginia) region where most of our traffic is. Is it easy to "move" or "mirror" an AMI to another region? Ideally, our primary instance would be in Virginia and we'd have another instance "mirrored" in California, which would sync any changes that we make to the primary instance.

2) Perhaps we should create a CloudFront CDN distribution instead of multiple AMIs in different regions? Or utilize both CloudFront CDN + two AMI instances set up, one for each coast?

3) [side question] Seems like we would need two separate AMI instances set up anyway to enable the load balancing feature in EC2?

Was it helpful?

Solution

First of all, think about having some kind of configuration management system available. With this you basically define a set of "roles" or "recipes" and assign your servers or instances to these roles. They will then automatically install, which makes tasks like changing the AWS region very easy. Have a look at this Wiki page for an overview.

While the latency inside the US is not that big compared to sending packages of the ocean, I would suggest to move your instance to your main traffic region, that is US east. However I do not think it is necessary in the first step to have another machine up and running in another region. I would suggest to use a service like Pingdom to measure your latency from different geographical regions. If you have the need to have another server up and running, you can still add it afterwards.

However what I would strongly suggest is using Cloudfront or another CDN. As most webpages have a lot of static files like images, css or javascript files, make sure they get delivered fast to the user. With Cloudfront you can always make sure that they will be served from the nearest endpoint. You will have a significant speedup through this.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top