Waga punktu końcowego można rzeczywiście wykorzystać do przeprowadzenia testowania A/B za pomocą globalnego akceleratora AWS, ale ta zdolność dotyczy w szczególności standardowych akceleratorów, a nie do niestandardowych akceleratorów routingu.
Wagi końcowe i testy A/B w standardowych akceleratorach
W standardowym akceleratorze możesz przypisać wagi do poszczególnych punktów końcowych w grupie punktu końcowego. Wagi te określają odsetek ruchu kierowanego do każdego punktu końcowego. Dostosowując wagi, możesz kontrolować, ile ruchu trafia do każdej wersji aplikacji, umożliwiając stopniowe przesuwanie ruchu dla scenariuszy, takie jak testy A/B lub wydania kanaryjskie.
Na przykład, jeśli masz dwa punkty końcowe, możesz przypisać wagi 1 i 255, więc około 1/256 ruchu trafia do pierwszego punktu końcowego (np. Nowej wersji aplikacji) i 255/256 do drugiego (bieżąca wersja stabilna). Następnie możesz stopniowo zwiększać wagę nowej wersji, aby przesunąć większy ruch, monitorując wydajność i wrażenia użytkownika przed pełnym wdrożeniem. Ustawienie wagi punktu końcowego do 0 całkowicie zatrzymuje ruch w tym punkcie końcowym. Ten ważony rozkład ruchu opiera się na stosunku masy każdego punktu końcowego do całkowitej masy w grupie [2] [3] [4] [5].
Dlaczego wagi punktu końcowego nie są używane do testowania A/B w niestandardowych akceleratorach routingu
Natomiast niestandardowe akceleratory routingu działają inaczej. Tutaj punkty końcowe nie są indywidualnymi instancjami EC2 ani równoważenia obciążenia, ale raczej podsieci VPC zawierające instancje EC2. ROUTowanie ruchu oparte jest na statycznych mapowaniach portów z portów słuchacza akceleratora do portów docelowych w instancjach EC2 w tych podsieciach.
Co ważne, niestandardowe akceleratory routingu nie obsługują wag końcowych w celu rozkładu ruchu. Ruch jest kierowany determinalnie do zmapowanej podsieci i portów bez równoważenia obciążenia lub rozkładu ważonego. Ponadto kontrole zdrowia i przełączanie awaryjne nie są wykonywane dla niestandardowych akceleratorów routingu, a ruch uliczny jest kierowany niezależnie od zdrowia punktów końcowych. Ten projekt jest przeznaczony do użytku, takich jak VoIP lub gier, w których potrzebujesz precyzyjnej kontroli, nad którą instancję obsługuje połączenie, a nie rozkład ruchu probabilistyczny [4] [7] [9].
Streszczenie
- Standardowe akceleratory obsługują wagi punktu końcowego, umożliwiając przeprowadzenie testowania A/B poprzez kontrolowanie udziału w ruchu każdego punktu końcowego.
- Niestandardowe akceleratory routingu nie obsługują wag końcowych; Routing ruchu jest deterministyczny na podstawie mapowania portów do podsieci VPC, co powoduje, że testy A/B za pomocą wag nie jest możliwe.
- W przypadku testowania A/B z niestandardowym routingiem musisz zaimplementować routing na poziomie aplikacji lub inne mechanizmy poza konfiguracją wagi globalnej akceleratora.
Dlatego, jeśli Twoim celem jest przeprowadzenie testowania A/B poprzez wagę ruchu, należy użyć standardowego akceleratora zamiast niestandardowego akceleratora routingu [2] [3] [4] [7].
Cytaty:
[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/globalaclelerator/add-endpoints.html
[7] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-custom-uting-goidelines.html
[8] https://aws.plainenglish.io/understanding-aws-global-accelerator-and-hen-to-suse-it-799c2bc440f6
[9] https://awscli.amazonaws.com/v2/documentation/api/2.4.18/reference/globalaclelerator/index.html