AWS Global Accelerator によるグローバルネットワーク最適化 - 低レイテンシ配信とフェイルオーバー

Anycast IP で AWS グローバルネットワークにトラフィックを誘導し、エンドポイントグループの設計とヘルスチェックによるフェイルオーバーを実現する手法を紹介します。

Global Accelerator の仕組みと CloudFront との違い

Global Accelerator はユーザーのトラフィックを AWS のグローバルネットワーク経由でバックエンドに転送するサービスです。2 つの固定 Anycast IP アドレスが割り当てられ、世界中のユーザーは最寄りの AWS エッジロケーションに接続します。そこから先は公衆インターネットではなく AWS のプライベートネットワークを経由するため、レイテンシの安定性とパケットロスの低減が期待できます。CloudFront がコンテンツのキャッシュと HTTP/HTTPS の配信に特化しているのに対し、Global Accelerator は TCP/UDP レベルのトラフィック最適化を提供します。静的コンテンツや API レスポンスのキャッシュが有効な場合は CloudFront、ゲームサーバーや VoIP のようなリアルタイム通信には Global Accelerator が適しています。

エンドポイントグループとトラフィック制御

エンドポイントグループはリージョン単位で定義し、ALB、NLB、EC2 インスタンス、Elastic IP をエンドポイントとして登録します。各エンドポイントグループにはトラフィックダイヤル (0-100%) を設定でき、リージョン間のトラフィック配分を制御します。例えば、東京リージョンに 70%、シンガポールリージョンに 30% のトラフィックを配分する設定が可能です。リージョン移行時にはトラフィックダイヤルを段階的に変更し、新リージョンへのトラフィックを徐々に増やすことで安全に移行できます。エンドポイントの重み付け (0-255) で、同一リージョン内の複数エンドポイント間のトラフィック配分も制御できます。

ヘルスチェックとフェイルオーバー

Global Accelerator はエンドポイントのヘルスチェックを継続的に実行し、障害を検知すると数秒以内にトラフィックを正常なエンドポイントにルーティングします。 Route 53 のフェイルオーバーが DNS TTL に依存するため切り替えに数十秒から数分かかるのに対し、 Global Accelerator は Anycast ルーティングの変更で即座に切り替わります。マルチリージョン構成では、プライマリリージョンの全エンドポイントが異常になった場合、自動的にセカンダリリージョンのエンドポイントにフェイルオーバーします。固定 IP アドレスはフェイルオーバー後も変わらないため、 DNS の変更やクライアントの再接続が不要です。 Global Accelerator のネットワーク設計を深く理解するには、専門書籍 (Amazon)が役立ちます。

Global Accelerator の料金

Global Accelerator の料金は固定料金とデータ転送量で構成されます。アクセラレーター 1 つあたり約 0.025 ドル/時 (月額約 18 ドル) の固定料金に加え、データ転送は送信元と送信先のリージョンに応じた従量課金 (1 GB あたり約 0.015〜0.035 ドル) です。CloudFront (月額固定費なし、データ転送のみ) と比較すると、Global Accelerator は固定費がある分、少量のトラフィックでは割高です。TCP/UDP のリアルタイム通信やゲームサーバーなど、CloudFront が対応しないプロトコルのワークロードで Global Accelerator を選択します。

まとめ

Global Accelerator は AWS グローバルネットワークを活用してトラフィックのレイテンシと可用性を改善するサービスです。固定 Anycast IP による安定したエントリポイント、数秒のフェイルオーバー、トラフィックダイヤルによる柔軟な制御が特徴です。HTTP 以外のプロトコルを使用するグローバルアプリケーションに特に有効です。