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

ある企業は静的・動的コンテンツを配信するWebサイトをCloudFront経由で提供しています。CloudWatchで確認するとキャッシュヒット率が低く、オリジンのALBの負荷が高い状態です。調査の結果、画像やCSSなどの静的コンテンツへのリクエストに、ユーザーごとに異なるクエリ文字列・Cookie・複数のHTTPヘッダーが付与されており、それらがすべてキャッシュキーに含まれていることが判明しました。静的コンテンツのキャッシュヒット率を改善する最も適切な方法はどれですか。

A
静的コンテンツ用のビヘイビアにキャッシュポリシーを適用し、キャッシュキーに含めるクエリ文字列・Cookie・ヘッダーをコンテンツ識別に必要な最小限に限定する
✓ 正解
低ヒット率の原因はキャッシュキーに含まれる可変要素が多すぎることです。キャッシュポリシーでキー要素を必要最小限に絞ると同一オブジェクトが共通キャッシュとして再利用され、ヒット率が向上しオリジン負荷を低減できます。
B
静的コンテンツ用のビヘイビアでTTLを0に設定し、リクエストごとにオリジンから最新のコンテンツを取得するようにする
TTLを0にするとキャッシュが事実上無効になり、すべてのリクエストがオリジンへ転送されます。ヒット率はむしろ低下し、ALBの負荷軽減という目的に逆行します。
C
オリジンリクエストポリシーを適用し、すべてのクエリ文字列・Cookie・ヘッダーをオリジンへ転送して識別精度を高める
オリジンリクエストポリシーはオリジンへ転送する内容を制御するもので、キャッシュキーの構成には影響しません。すべて転送してもキャッシュの再利用性は上がらず、ヒット率は改善しません。
D
ディストリビューションのPrice Classをすべてのエッジロケーションを使う設定に変更し、配信に使うエッジ数を増やす
Price Classはエッジロケーションの地理的範囲とコストを調整する設定であり、キャッシュキーの構成とは無関係です。エッジ数を増やしてもヒット率の根本原因は解消しません。

解説

キャッシュヒット率が低い原因は、キャッシュキーにユーザーごとに異なる値(クエリ文字列・Cookie・ヘッダー)が含まれ、同一コンテンツが個別キャッシュとして扱われていることです。 キャッシュポリシーでキャッシュキーに含める要素をコンテンツ識別に必要な最小限へ絞ることで、同一オブジェクトが共通キャッシュとして再利用され、ヒット率が向上しオリジン負荷が下がります。 選択肢BのTTL=0は毎回オリジンへ取得しに行く設定であり、キャッシュ自体が無効化されヒット率はさらに低下します。 選択肢Cのオリジンリクエストポリシーはオリジンへ転送する内容を制御するもので、キャッシュキーには影響しないため、ヒット率の改善にはつながりません。 選択肢DのPrice Classはエッジロケーションの地理的範囲とコストを決める設定で、キャッシュキーの構成とは無関係でありヒット率は改善しません。

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

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

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