How could I determine which AWS location is best for serving customers from a particular region?
AWS has several locations for storage and EC2 instances to run upon with different pricing. How could I determine which location is best for a particular region. Is it intuitive (closer to your serving region is the best) or are there any reliability concerns (particular AWS location facing more outages than others). Is there any data available for making such decision?
I am developing an application that is mainly targeted towards Indian customers. So, I am considering Singapore or Tokyo as an option.
Determining lowest latency AWS location for custom usage
The smart and innovative folks from TurnKey Linux recently open sourced their solution to your problem, see AWS Regional Data Centers mapping on GitHub:
This project is used to generate the indexes (and visual map for reference) used by the TurnKey Hub to find the closest AWS data center for a user. [emphasis mine]
The algorithm in use is further detailed in Finding the closest data center using GeoIP and indexing as well as the follow up post Finding the closest APT package archive using GeoIP and indexing.
While a bit of a gimmick, the visualization is seriously cool and confirms resp. illustrates the reason for the at first sight surprising fact Josh mentioned already, namely that users in Australia currently tend to get better latency via the US West (Northern California / us-west-1) rather than the Asia Pacific (Singapore / ap-southeast-1) region. (Tip: checking Future Cables at the bottom right corner reveals this is likely going to change, which is further detailed in Greg's Cable Map, which indicates Australia might jump between both AWS locations latency wise in the years to come ;)
Using lowest latency AWS location automatically via Amazon Route 53
Meanwhile AWS is providing a helpful map illustrating their Global Infrastructure for a quick assessment, alongside respective details like e.g. number of availability zones and the API endpoint.
More importantly though, AWS has just announced the geographic DNS support Jahufar mentioned already, see the introductory post Multi-Region Latency Based Routing now Available for AWS, which is making available the same latency based routing technology that powers Amazon CloudFront to users of Amazon EC2, Elastic Load Balancing, and more.
So in case your environment is comprised of an Auto Scaling EC2 Instances architecture already, simply applying this latency based routing should solve your problem automatically.
While the use case obviously targets offerings spawning multiple AWS regions, the sophisticated features around Latency Based Routing and Weighted Round Robin Record Sets might allow you to determine the desired information more easily yourself as well.
Try cloudping.info, it will do HTTPS ping from your browser to each AWS region.
Region Latency
US-East (Virginia) 28 ms
US-West (California) 100 ms
US-West (Oregon) 110 ms
Europe (Ireland) 100 ms
Europe (Frankfurt) 119 ms
Asia Pacific (Singapore) 269 ms
Asia Pacific (Sydney) 239 ms
Asia Pacific (Japan) 209 ms
South America (Brazil) 147 ms