グローバルメディア企業が、us-east-1 の Amazon S3 バケットをオリジンとする CloudFront ディストリビューションで動画コンテンツを配信しています。プライマリオリジンが障害を起こした際に us-west-2 の S3 バケットへ自動的にフェイルオーバーし、エンドユーザーへの影響を最小化する必要があります。最小の運用負荷でこれを実現する方法はどれですか?
CloudFront のオリジングループは、プライマリオリジンが指定した HTTP ステータスコード(4xx/5xx)を返した場合やタイムアウトした場合に、自動的にセカンダリオリジンへフェイルオーバーするネイティブ機能です。追加コードや複雑な設定不要で、コンソールまたは IaC から設定できるため運用負荷が最小です。S3 クロスリージョンレプリケーションと組み合わせることでデータの同期も担保できます。 選択肢AのRoute 53 フェイルオーバーは、DNS レベルの切り替えで有効ですが、CloudFront ディストリビューション自体のフェイルオーバーには DNS TTL の遅延が伴い、オリジングループほどシームレスではありません。CloudFront はオリジングループでこの機能をネイティブに提供します。 選択肢CのAWS Global Acceleratorは、主に TCP/UDP トラフィックをリージョン間でルーティングするサービスで、CloudFront の S3 オリジンフェイルオーバーの用途には設計上適合せず、構成も複雑になります。 選択肢DのLambda@Edgeは、技術的には可能ですが、関数の実装・テスト・デプロイが必要で運用負荷が高く、オリジングループで宣言的に実現できることをコードで行う過剰な解決策です。