I want to troubleshoot what caused AWS Global Accelerator to fail over to an endpoint in a different Region.
The AWS Global Accelerator uses traffic dial settings to route traffic to endpoint groups. It also uses endpoint weight to determine the proportion of traffic that's directed to an endpoint. If there's no healthy endpoint with a weight greater than zero (0), then Global Accelerator fails over to a healthy endpoint with a weight greater than 0 in another endpoint group.
Prevent Global Accelerator's failover to a different endpoint group by checking the traffic dial setting and the endpoint weights in the endpoint groups. Then, verify the health of the endpoints.
Check the traffic dial setting
Global Accelerator uses traffic dial to route traffic between different endpoint groups. An endpoint group with 0 traffic dial doesn't receive any traffic. However, if there's no healthy endpoint in an endpoint group with a weight greater than 0, then the accelerator fails over to another endpoint group with a healthy endpoint and a weight greater than 0. For this failover, the accelerator ignores traffic dial settings.
Example: Let's say that you configure Global Accelerator with three endpoint groups, with traffic dial setting as shown here:
EndpointGroup 1: Dial 100
EndpointGroup 2: Dial 0
EndpointGroup 3: Dial 0
If EndpointGroup 1 doesn't have healthy endpoints with a weight greater than 0, then Global Accelerator checks up to two additional endpoint groups for a healthy endpoint. If endpoint groups 2 and 3 are closest to the client and are healthy with a weight greater than 0, then the accelerator fails over. It routes traffic to the endpoint in these endpoint groups, ignoring the traffic dial settings.
Check weight of endpoints in endpoint groups
Global Accelerator uses weight to route traffic within an endpoint group. An endpoint with 0 weight does not receive any traffic, even if the endpoint is healthy. If all the endpoints have 0 weight, then the accelerator tries to find endpoints with a weight greater than 0 in another endpoint group. If it locates a healthy endpoint with a weight greater than 0, the accelerator routes traffic to that endpoint. If not, the accelerator fails open and includes endpoints in the nearest endpoint group.
Example: Let's say that you've configured instance 1 as an endpoint in EndpointGroup 1 and instance 2 as an endpoint in EndpointGroup 2. If the weight of instance-1 is 0, then the accelerator fails over and routes traffic to instance-2 if it's healthy and has a weight greater than 0.
Verify if the endpoints are healthy
Check if the endpoints are passing a health check by using health check status. For more information on how to remedy health check failures, see Why is Global Accelerator failing health checks with endpoints?
Deploying multi-Region applications in AWS using AWS Global Accelerator
Traffic management with AWS Global Accelerator