AWS Global Accelerator によるグローバルネットワーク最適化 - 低レイテンシ配信とフェイルオーバー
Global Accelerator の Anycast IP によるトラフィックルーティング、エンドポイントグループの設計、CloudFront との使い分けを解説します。
Global Accelerator の仕組みと CloudFront との違い
Global Accelerator はユーザーのトラフィックを AWS のグローバルネットワーク経由でバックエンドに転送するサービスです。2 つの固定 Anycast IP アドレスが割り当てられ、世界中のユーザーは最寄りの AWS エッジロケーションに接続します。そこから先は公衆インターネットではなく AWS のプライベートネットワークを経由するため、レイテンシの安定性とパケットロスの低減が期待できます。CloudFront がコンテンツのキャッシュと HTTP/HTTPS の配信に特化しているのに対し、Global Accelerator は TCP/UDP レベルのトラフィック最適化を提供します。静的コンテンツや API レスポンスのキャッシュが有効な場合は CloudFront、ゲームサーバーや VoIP のようなリアルタイム通信には Global Accelerator が適しています。
この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
エンドポイントグループとトラフィック制御
エンドポイントグループはリージョン単位で定義し、ALB、NLB、EC2 インスタンス、Elastic IP をエンドポイントとして登録します。各エンドポイントグループにはトラフィックダイヤル (0-100%) を設定でき、リージョン間のトラフィック配分を制御します。例えば、東京リージョンに 70%、シンガポールリージョンに 30% のトラフィックを配分する設定が可能です。リージョン移行時にはトラフィックダイヤルを段階的に変更し、新リージョンへのトラフィックを徐々に増やすことで安全に移行できます。エンドポイントの重み付け (0-255) で、同一リージョン内の複数エンドポイント間のトラフィック配分も制御できます。
ヘルスチェックとフェイルオーバー
Global Accelerator はエンドポイントのヘルスチェックを継続的に実行し、障害を検知すると数秒以内にトラフィックを正常なエンドポイントにルーティングします。Route 53 のフェイルオーバーが DNS TTL に依存するため切り替えに数十秒から数分かかるのに対し、Global Accelerator は Anycast ルーティングの変更で即座に切り替わります。マルチリージョン構成では、プライマリリージョンの全エンドポイントが異常になった場合、自動的にセカンダリリージョンのエンドポイントにフェイルオーバーします。固定 IP アドレスはフェイルオーバー後も変わらないため、DNS の変更やクライアントの再接続が不要です。
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。
まとめ
Global Accelerator は AWS グローバルネットワークを活用してトラフィックのレイテンシと可用性を改善するサービスです。固定 Anycast IP による安定したエントリポイント、数秒のフェイルオーバー、トラフィックダイヤルによる柔軟な制御が特徴です。HTTP 以外のプロトコルを使用するグローバルアプリケーションに特に有効です。
AWS の優位点
- 2 つの固定 Anycast IP アドレスで世界中のユーザーを最寄りの AWS エッジロケーションに誘導し、AWS グローバルネットワーク経由でバックエンドに到達させる
- TCP/UDP のトラフィックを最適化し、ゲーム、VoIP、IoT など HTTP 以外のプロトコルにも対応する
- エンドポイントのヘルスチェックで障害を検知し、数秒以内に正常なエンドポイントにフェイルオーバーする
- トラフィックダイヤルでエンドポイントグループへのトラフィック割合を 0-100% で制御し、段階的なリージョン移行に活用できる
- クライアント IP アドレスの保持機能で、バックエンドのアプリケーションがユーザーの実際の IP アドレスを取得できる