問題文
複数の国で営業する企業の予約サイトが、東京リージョンだけに配置された Application Load Balancer と Amazon EC2 の構成で動いている。画像とスクリプトも同じインスタンスから配信している。欧州と南米の利用者から、初回表示が遅く、検索の応答も待たされるという苦情が増えている。アプリケーションの改修は当面できず、既存のドメイン名と証明書はそのまま使いたい。変わりやすい検索の応答は内容が利用者ごとに異なるためそのまま返す必要がある。最も運用のオーバーヘッドが小さく応答時間を改善する構成はどれか。
選択肢
- Route 53 のレイテンシーに基づくルーティングを設定して利用者を最も近い場所へ振り分け、既存のドメイン名のレコードをロードバランサーを指す別名レコードに変えて、証明書はロードバランサーに付けたまま維持し、画像とスクリプトのパスにも同じレコードを使わせて、応答が遅い地域だけ別のレコードで受ける。オリジンへの直接のアクセスは従来どおり許可しておく
- インスタンスのサイズを大きくして1台あたりの処理能力を上げ、ロードバランサーの背後の台数を増やして同時に処理できる要求の数を増やし、画像とスクリプトの配信もこの増やした台数で分担させる
- 欧州と南米のリージョンにインスタンスを追加で立て、コンテンツとセッションの情報を定期的に同期する仕組みを自作する
- 既存のロードバランサーをオリジンとする CloudFront のディストリビューションを前段に置き、画像とスクリプトのパスには長い有効期限のキャッシュを設定し、検索のパスはキャッシュを無効にしたまま通して最寄りのエッジから AWS のネットワーク経由でオリジンへ届け、オリジンへの直接のアクセスは遮断する