無限ノック › SOA 練習問題一覧 › 問題
SOAネットワークとコンテンツ配信

ある大規模なeコマース企業は、CloudFrontを使用して静的・動的コンテンツを配信しています。運用チームは、新しいキャッシュポリシーとオリジンリクエストポリシーの変更を本番環境に適用する前に、実際の本番トラフィックの一部(約10%)を使って動作検証を行いたいと考えています。検証中に問題が発生した場合は、全ユーザーへの影響なく即座にロールバックできる必要があります。また、追加のDNS変更やアプリケーションコードの修正なしに実現したいという要件もあります。最も運用負荷が低く、この要件を満たす方法はどれですか?

A
CloudFrontの継続的デプロイメント(Continuous Deployment)機能を使用してステージングディストリビューションを作成し、本番トラフィックの10%をステージングに転送する重みベースポリシーを設定する。検証完了後はステージング設定をプライマリディストリビューションに昇格させる
✓ 正解
CloudFrontの継続的デプロイメント機能では、既存のプロダクションディストリビューションに紐付いたステージングディストリビューションを作成できます。重みベースポリシー(例:Weight=0.1で10%)またはHTTPヘッダーベースポリシーでトラフィックを分割でき、同一ドメインのままDNS変更不要で実現できます。検証後はプロモート操作でステージング設定を本番に昇格させ、問題があればステージングを無効化するだけで即時ロールバックが可能です。
B
新しいキャッシュポリシーを適用した別のCloudFrontディストリビューションを作成し、Route 53の加重ルーティングポリシーを設定して本番トラフィックの10%を新しいディストリビューションに転送する
別ディストリビューションを作成するため異なるCloudFrontドメインが生成され、SSL証明書の追加設定やRoute 53のDNS変更が必要となり要件を満たしません。
C
Lambda@Edgeのビューワーリクエストトリガーを実装し、ランダムに選択した10%のリクエストにカスタムヘッダーを付与して、オリジン側で異なるキャッシュ制御ヘッダーを返すロジックを組み込む
実装が複雑で、Lambda@Edgeではキャッシュポリシー自体を検証できず、全リクエストにLambda実行コストが発生します。
D
CloudFormationの変更セット(Change Sets)を使用して新しいキャッシュポリシーをデプロイし、CloudWatchでキャッシュヒット率(CacheHitRate)を監視しながら問題発生時は変更セットをロールバックする
CloudFormation変更セットでCloudFrontポリシーを更新すると全トラフィックに即時適用されるため段階的テストが不可能であり、ロールバックにも新たな変更セット実行が必要です。

解説

CloudFrontの継続的デプロイメント機能では、既存のプロダクションディストリビューションに紐付いたステージングディストリビューションを作成できます。重みベースポリシー(例:Weight=0.1で10%)またはHTTPヘッダーベースポリシーでトラフィックを分割でき、同一ドメインのままDNS変更不要で実現できます。検証後はプロモート操作でステージング設定を本番に昇格させ、問題があればステージングを無効化するだけで即時ロールバックが可能です。 選択肢Bは別ディストリビューションを作成するため異なるCloudFrontドメインが生成され、SSL証明書の追加設定やRoute 53のDNS変更が必要となり要件を満たしません。 選択肢Cは実装が複雑で、Lambda@Edgeではキャッシュポリシー自体を検証できず、全リクエストにLambda実行コストが発生します。 選択肢DはCloudFormation変更セットでCloudFrontポリシーを更新すると全トラフィックに即時適用されるため段階的テストが不可能であり、ロールバックにも新たな変更セット実行が必要です。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SOA の問題一覧に戻る