- Newest
- Most votes
- Most comments
The idea using load balancer you mentioned is not that helpful to improve latency because the client must hit any load balancer prior to be redirected. And if a load balancer redirect user request to another region it would increase additional latency. Another issue you need to consider is how to maintain the regional public ip address.
The better solution you can think of is using AWS Global Accelerator. Please refer to below.
AWS Global Accelerator is based on Anycast and it will improve latency of your application.
The other option is using Amazon CloudFront. Amazon CloudFront can improve latency of your application as well.
Here is difference between AWS GA and Amazon CF.
Q: How is AWS Global Accelerator different from Amazon CloudFront?
A: AWS Global Accelerator and Amazon CloudFront are separate services that use the AWS global network and its edge locations around the world. CloudFront improves performance for both cacheable content (such as images and videos) and dynamic content (such as API acceleration and dynamic site delivery). Global Accelerator improves performance for a wide range of applications over TCP or UDP by proxying packets at the edge to applications running in one or more AWS Regions. Global Accelerator is a good fit for non-HTTP use cases, such as gaming (UDP), IoT (MQTT), or Voice over IP, as well as for HTTP use cases that specifically require static IP addresses or deterministic, fast regional failover. Both services integrate with AWS Shield for DDoS protection.
Thanks
Eunsu
In AWS, an Elastic Load Balancer is not intended to route traffic outside a region. It is usually used to route to resources (EC2 instances in your case) across Availability Zones within a single Region.
AWS Global Accelerator (from the other answer) is a great option. You also may want to look at Amazon Route 53, a highly available and scalable cloud Domain Name System (DNS), than can be used for routing. Route 53 offers multiple routing policies. For example, the geolocation or latency routing policies are good choices for active/active deployments like yours. For geolocation routing, you configure which Region a request goes to based on the origin location of the request. For latency routing, AWS automatically sends requests to the Region that provides the shortest round-trip time.
Your data governance strategy helps inform which routing policy to use. Geolocation routing lets you distribute requests in a deterministic way. This allows you to keep data for certain users within a specific Region, or you can control where write operations are routed to prevent contention. See this to learn about different patterns for data governance. If optimizing for performance is your top priority, then latency routing is a good choice.
Relevant content
- Accepted Answerasked 2 years ago
- AWS OFFICIALUpdated a year ago
- AWS OFFICIALUpdated 2 months ago
- AWS OFFICIALUpdated 4 months ago
- AWS OFFICIALUpdated 6 months ago
The other option short of using GA, is having ALB in each regions, and using Route53 geographical or latency routing to direct traffic to the nearest load balancer.
Thank you @Eunsu_Shin for your elaborate answer. However, like cloudandmedia said there is also another approach using latency routing. Could both approaches be used in tandem?