エンドポイントの重みは、実際にAWSグローバルアクセラレータを使用したA/Bテストを実施するために使用できますが、この機能は、カスタムルーティングアクセラレータではなく、特に標準のアクセラレータに適用されます。
###標準アクセラレータのエンドポイントの重みとA/Bテスト
標準のアクセラレータでは、エンドポイントグループ内の個々のエンドポイントに重みを割り当てることができます。これらの重みは、各エンドポイントにルーティングされるトラフィックの割合を決定します。ウェイトを調整することにより、アプリケーションの各バージョンにどの程度のトラフィックが行くかを制御し、A/Bテストやカナリアリリースなどのシナリオの段階的なトラフィックシフトを可能にします。
たとえば、2つのエンドポイントがある場合は、1と255の重みを割り当てることができるため、トラフィックの約1/256は最初のエンドポイント(アプリの新しいバージョン)と255/256から2番目(現在の安定したバージョン)に移動します。その後、新しいバージョンの重量を徐々に増やして、フルロールアウトの前にパフォーマンスとユーザーエクスペリエンスを監視し、より多くのトラフィックをシフトすることができます。エンドポイントの重量を0に設定すると、そのエンドポイントへのトラフィックが完全に停止します。この加重トラフィック分布は、各エンドポイントの重量のグループの総重量の比率に基づいています[2] [3] [4] [5]。
###カスタムルーティングアクセラレータでのA/Bテストにエンドポイントの重みが使用されない理由
対照的に、カスタムルーティングアクセラレータの動作は異なります。ここで、エンドポイントは個々のEC2インスタンスまたはロードバランサーではなく、EC2インスタンスを含むVPCサブネットです。トラフィックルーティングは、アクセラレータのリスナーポートからこれらのサブネット内のEC2インスタンスの宛先ポートまでの静的ポートマッピングに基づいています。
重要なことに、カスタムルーティングアクセラレータは、トラフィック分布のエンドポイント重みをサポートしていません。トラフィックは、負荷分散または加重分布なしで、マッピングされたサブネットとポートに決定論的にルーティングされます。また、カスタムルーティングアクセラレータでは健康チェックとフェールオーバーは実行されず、エンドポイントの健康に関係なくトラフィックはルーティングされます。この設計は、VoIPやゲームなどのユースケースを対象としています。ここでは、確率的なトラフィック分布ではなく、接続を処理するインスタンスを正確に制御する必要があります[4] [7] [9]。
### まとめ
- 標準のアクセラレータはエンドポイントの重みをサポートし、各エンドポイントが受信するトラフィックのシェアを制御することにより、A/Bテストを実行できます。
- カスタムルーティングアクセラレータは、エンドポイントの重みをサポートしていません。トラフィックルーティングは、VPCサブネットへのポートマッピングに基づいて決定論的であり、重みを実行できないA/Bテストを行います。
- カスタムルーティングを使用したA/Bテストの場合、グローバルアクセラレータの重量構成以外のアプリケーションレベルのルーティングまたはその他のメカニズムを実装する必要があります。
したがって、あなたの目標がトラフィックの重み付けを通じてA/Bテストを実施することである場合、カスタムルーティングアクセラレータ[2] [3] [4] [7]ではなく、標準のアクセラレータを使用する必要があります。
引用:
[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-アクセラター
[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