I've been introduced recently to AWS and I really loved it. However, I'm asking myself some questions (that may be stupid) about architecturing for multi-regions.
Let's say an application is used by Europeans and Asians. My first idea was to add EC2 instances in Europe, as well as a S3 bucket to hold static data and a SQS queue and ElastiCache in Europe. It's going to be blazingly fast for European people, but slower for asians.
To solve this, I'd add CloudFront for static data, so that images are served quickly for Asians too. However, requests to server (Ajax requests...) still going to have some latencies, so the solution would be to add an EC2 instance in Singapore/Tokyo region too.
However, new problem arise: if a request is dispatched to Tokyo EC2 instance, then if it needs to receive a message from SQS that is stored in Europe or access ElastiCache data => latency again + costs for inter-regions transfer. So we need to add a SQS and ElastiCache in Asia too ?
Maybe I miss something, and cross-regions AWS requests are super-fast, but from what I've understood, if we want fast experience for multi-regions, we basically need to duplicate all services too every regions (excepting S3 maybe, as we can use CloudFront for that, and I suppose we can live with the latency if a SQS job in Asia need to access a S3 resource in Europe).
Anyway, did I understand this correctly ? Do you have any resources about how to architecture applications that target multi-regions ?
Thanks :)