Amazon CloudFrontとCDNを理解する
CloudFrontはコンテンツを利用者へ配信するCDNです。オリジンとエッジの役割、キャッシュのヒット・ミス、更新と利用者別の応答を学び、速さと正しさを両立する条件を理解します。
この単元で学ぶこと
- オリジンとエッジの配信関係を説明する
- キャッシュの期間と識別条件を区別する
- 更新・個別応答・保存の限界を判断する
本文解説
1. CDNの目的 CDNはContent Delivery Networkの略で、分散した配信拠点を使ってコンテンツを利用者へ届けます。CloudFrontは画像や動画、スクリプト等の静的な内容だけでなく動的なWebコンテンツも扱います。全ての応答を同じ時間キャッシュするという意味ではなく、内容に合う設定を選びます。
2. オリジンとエッジ オリジンは元のコンテンツを提供する場所で、S3やHTTPサーバー、ロードバランサー等を使います。エッジは利用者への配信拠点です。ディストリビューションでオリジンや配信の条件を設定しますが、作成した瞬間に元の全ファイルが全エッジへ事前複製されるわけではありません。
3. ヒットとミス 要求に対応する有効なキャッシュがあればヒットとなり、エッジから応答できます。なければ必要に応じてオリジン側へ取得します。キャッシュを適切に使うとオリジンへの取得回数や負荷を減らせますが、初回要求、更新、設定等によりオリジンへの通信は残ります。
4. キャッシュ期間 TTL等は保存した応答を再利用する期間に関係します。キャッシュポリシーの最小・最大・既定TTLとオリジンのCache-Control等を組み合わせて扱います。長い期間は再利用しやすい一方、更新への追従を考える必要があります。期限前に使われない内容が削除される場合もあり、保存を保証する倉庫ではありません。
5. 同じ応答かを見分ける キャッシュキーは、どの要求を同じ応答として扱うかを決める識別条件です。必要なクエリ文字列、ヘッダー、Cookie等を設定で考慮します。日本語と英語で内容が違うのに言語の違いを識別しなければ、意図しない内容を返す危険があります。識別要素を増やしすぎると再利用が減る場合もあります。
6. 個人向け内容の扱い ログイン利用者ごとに違う注文一覧を、公開画像と同じ共有キャッシュで扱うのは危険です。キャッシュを無効化するなど内容に合う方法と認可を設計します。Cache-Controlだけを見ずCloudFront側の最小TTL等との関係も確認します。暗号化されたHTTPSで配信しても、誤った共有内容の選択自体は防げません。
7. 更新を届ける方法 オリジンを上書きしても、同じURLの古い内容が有効なキャッシュに残る場合があります。期限を待つ、対象を無効化する、app-v2.jsのように新しいファイル名・URLを使う方法等を選びます。CloudFrontの無効化は、利用者のブラウザーや企業プロキシの全キャッシュを直接削除する処理ではありません。
8. 他サービスと組み合わせる Route 53は名前解決、ALBはアプリへの負荷分散、S3等は元データの保存を担います。CloudFrontは配信を改善しますが、オリジンのデータ保全やアプリの認可を代替しません。料金は選んだ料金体系、配信量、要求や関連機能等を公式の現行条件で確認し、キャッシュヒット率だけで総額を決めないようにします。
図解
重要ポイント
- 配信拠点と元データの保管先を区別する。
- TTLは期間、キャッシュキーは要求の識別条件。
- 更新と利用者別の応答を設計する。
間違えやすい点
- CDNをデータの永続バックアップとみなす。
- HTTPSなら共有キャッシュの誤りも防げると考える。
用語解説
- オリジン
- 元のコンテンツや応答を提供する場所。
- キャッシュヒット
- 要求に対応するキャッシュを再利用できること。
- キャッシュキー
- キャッシュする応答を区別するための要求の識別条件。
- 無効化
- 指定したCloudFrontのキャッシュ内容を有効な再利用対象から外す操作。
関連教材
参考資料
教材データに登録された参考リンクです。リンク先の内容や更新日は提供元でご確認ください。
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Expiration.html
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/controlling-the-cache-key.html
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Invalidation.html
確認問題の出題・採点や学習履歴の保存にはログインが必要です。