Endpoint weights can indeed be used to conduct A/B testing with AWS Global Accelerator, but this capability applies specifically to standard accelerators, not to custom routing accelerators.
Endpoint Weights and A/B Testing in Standard Accelerators
In a standard accelerator, you can assign weights to individual endpoints within an endpoint group. These weights determine the proportion of traffic routed to each endpoint. By adjusting the weights, you can control how much traffic goes to each version of your application, enabling gradual traffic shifting for scenarios like A/B testing or canary releases.
For example, if you have two endpoints, you could assign weights of 1 and 255, so roughly 1/256 of the traffic goes to the first endpoint (e.g., a new version of your app) and 255/256 to the second (the current stable version). You can then gradually increase the weight of the new version to shift more traffic to it, monitoring performance and user experience before full rollout. Setting an endpoint's weight to 0 stops traffic to that endpoint entirely. This weighted traffic distribution is based on the ratio of each endpoint's weight to the total weight in the group[2][3][4][5].
Why Endpoint Weights Are Not Used for A/B Testing in Custom Routing Accelerators
In contrast, custom routing accelerators work differently. Here, endpoints are not individual EC2 instances or load balancers but rather VPC subnets containing EC2 instances. Traffic routing is based on static port mappings from the accelerator's listener ports to destination ports on EC2 instances within these subnets.
Importantly, custom routing accelerators do not support endpoint weights for traffic distribution. Traffic is routed deterministically to the mapped subnet and ports without load balancing or weighted distribution. Also, health checks and failover are not performed for custom routing accelerators, and traffic is routed regardless of endpoint health. This design is intended for use cases like VoIP or gaming, where you need precise control over which instance handles a connection, rather than probabilistic traffic distribution[4][7][9].
Summary
- Standard accelerators support endpoint weights, allowing you to perform A/B testing by controlling the share of traffic each endpoint receives.
- Custom routing accelerators do not support endpoint weights; traffic routing is deterministic based on port mappings to VPC subnets, making A/B testing via weights not feasible.
- For A/B testing with custom routing, you would need to implement application-level routing or other mechanisms outside of Global Accelerator's weight configuration.
Therefore, if your goal is to conduct A/B testing through traffic weighting, you should use a standard accelerator rather than a custom routing accelerator[2][3][4][7].
Citations:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoints-endpoint-weights.html
[2] https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works.html
[3] https://cloudchipr.com/blog/aws-global-accelerator
[4] https://www.alibabacloud.com/help/en/ga/user-guide/overview-4/
[5] https://www.nops.io/glossary/what-is-aws-global-accelerator/
[6] https://awscli.amazonaws.com/v2/documentation/api/latest/reference/globalaccelerator/add-endpoints.html
[7] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-routing-guidelines.html
[8] https://aws.plainenglish.io/understanding-aws-global-accelerator-and-when-to-use-it-799c2bc440f6
[9] https://awscli.amazonaws.com/v2/documentation/api/2.4.18/reference/globalaccelerator/index.html