Upgrade to Pro — share decks privately, control downloads, hide ads and more …

オブザーバビリティ観点で見る CloudFront

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

オブザーバビリティ観点で見る CloudFront

Avatar for 4hei4hei

4hei4hei

July 03, 2026

More Decks by 4hei4hei

Other Decks in Technology

Transcript

  1. オブザーバビリティ観点で見る CloudFront ~ NRIネットコム TECH AND DESIGN STUDY #105 ~

    2026年 07月 02日 NRIネットコム株式会社 NTシステム事業二部 西 洋平 #nncstudy
  2. 1 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼AWS マネージドな、グローバル展開されている

    CDN サービス ◼世界中に存在する Edge location によって高信頼・低遅延な Web コンテンツ配信を実現する Amazon CloudFront (CloudFront) おさらい #nncstudy
  3. 2 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy
  4. 3 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy
  5. 4 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy リクエスト量やステータスコード、 キャッシュヒットなどを中心に観測する エッジ関数についても観測可能
  6. 5 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy
  7. 6 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy エッジ関数のアプリログ CloudFront のアクセスログ
  8. 7 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用において、観測対象となる指標 ⚫ メトリクス ⚫ ログ CloudFront 利用における観測対象 #nncstudy エッジ関数のアプリログ CloudFront のアクセスログ 観測において、ログ・メトリクスそれぞれで役割がある それぞれの要素について順にフォーカスしていきます
  9. 9 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    に対して実行されたリクエストや、それに対するレスポンスに関する指標 ◼ リクエスト・レスポンスの種類に応じて、確認できるメトリクスは分類できる ⚫ ビューワーに近いビューワーリクエスト / レスポンスに関連するもの ⚫ オリジンに近いオリジンリクエスト / レスポンスに関連するもの CloudFront の利用におけるメトリクス #nncstudy
  10. 10 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    に対して実行されたリクエストや、それに対するレスポンスに関する指標 ◼ リクエスト・レスポンスの種類に応じて、確認できるメトリクスは分類できる ⚫ ビューワーに近いビューワーリクエスト / レスポンスに関連するもの ⚫ オリジンに近いオリジンリクエスト / レスポンスに関連するもの CloudFront の利用におけるメトリクス #nncstudy
  11. 11 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFront の利用におけるメトリクス

    #nncstudy メトリクス種別 説明 デフォルトで有効 / 追加課金で有効 BytesUploaded ビューワーが CloudFront で POST および PUT リクエストを使用してオリジンにアップロードした合計バイト数。 デフォルトで有効 BytesDownloaded GET、HEAD、および OPTIONS リクエストについて、ビューワーによってダウンロードされた合計バイト数。 デフォルトで有効 Requests すべての HTTP メソッド、および HTTP リクエストと HTTPS リクエストの両方について、 CloudFront によって受信されたビューワーリクエストの合計数。 デフォルトで有効 TotalErrorRate レスポンスの HTTP ステータスコードが 4xx または 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 4xxErrorRate レスポンスの HTTP ステータスコードが 4xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 5xxErrorRate レスポンスの HTTP ステータスコードが 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 CacheHitRate CloudFront がそのキャッシュからコンテンツを送信した対象のすべてのキャッシュ可能なリクエストの割合 (%)。 追加課金で有効 OriginLatency CloudFront キャッシュではなく、オリジンから送信されたリクエストについて、 CloudFront がリクエストを受信してからネットワーク (≠ ビューワー) にレスポンスを提供し始めるまでに 費やした合計時間。 追加課金で有効 ステータスコード別のエラー率 • 401ErrorRate • 403ErrorRate • 404ErrorRate • 502ErrorRate • 503ErrorRate • 504ErrorRate レスポンスの HTTP ステータスコードが 4xx 範囲または 5xx 範囲内の特定のコードである、 すべてのビューワーリクエストの割合 (%)。 追加課金で有効
  12. 12 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFront の利用におけるメトリクス

    #nncstudy メトリクス種別 説明 デフォルトで有効 / 追加課金で有効 BytesUploaded ビューワーが CloudFront で POST および PUT リクエストを使用してオリジンにアップロードした合計バイト数。 デフォルトで有効 BytesDownloaded GET、HEAD、および OPTIONS リクエストについて、ビューワーによってダウンロードされた合計バイト数。 デフォルトで有効 Requests すべての HTTP メソッド、および HTTP リクエストと HTTPS リクエストの両方について、 CloudFront によって受信されたビューワーリクエストの合計数。 デフォルトで有効 TotalErrorRate レスポンスの HTTP ステータスコードが 4xx または 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 4xxErrorRate レスポンスの HTTP ステータスコードが 4xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 5xxErrorRate レスポンスの HTTP ステータスコードが 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 CacheHitRate CloudFront がそのキャッシュからコンテンツを送信した対象のすべてのキャッシュ可能なリクエストの割合 (%)。 追加課金で有効 OriginLatency CloudFront キャッシュではなく、オリジンから送信されたリクエストについて、 CloudFront がリクエストを受信してからネットワーク (≠ ビューワー) にレスポンスを提供し始めるまでに 費やした合計時間。 追加課金で有効 ステータスコード別のエラー率 • 401ErrorRate • 403ErrorRate • 404ErrorRate • 502ErrorRate • 503ErrorRate • 504ErrorRate レスポンスの HTTP ステータスコードが 4xx 範囲または 5xx 範囲内の特定のコードである、 すべてのビューワーリクエストの割合 (%)。 追加課金で有効
  13. 13 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFront の利用におけるメトリクス

    #nncstudy メトリクス種別 説明 デフォルトで有効 / 追加課金で有効 BytesUploaded ビューワーが CloudFront で POST および PUT リクエストを使用してオリジンにアップロードした合計バイト数。 デフォルトで有効 BytesDownloaded GET、HEAD、および OPTIONS リクエストについて、ビューワーによってダウンロードされた合計バイト数。 デフォルトで有効 Requests すべての HTTP メソッド、および HTTP リクエストと HTTPS リクエストの両方について、 CloudFront によって受信されたビューワーリクエストの合計数。 デフォルトで有効 TotalErrorRate レスポンスの HTTP ステータスコードが 4xx または 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 4xxErrorRate レスポンスの HTTP ステータスコードが 4xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 5xxErrorRate レスポンスの HTTP ステータスコードが 5xx であるすべてのビューワーリクエストの割合。 デフォルトで有効 CacheHitRate CloudFront がそのキャッシュからコンテンツを送信した対象のすべてのキャッシュ可能なリクエストの割合 (%)。 追加課金で有効 OriginLatency CloudFront キャッシュではなく、オリジンから送信されたリクエストについて、 CloudFront がリクエストを受信してからネットワーク (≠ ビューワー) にレスポンスを提供し始めるまでに 費やした合計時間。 追加課金で有効 ステータスコード別のエラー率 • 401ErrorRate • 403ErrorRate • 404ErrorRate • 502ErrorRate • 503ErrorRate • 504ErrorRate レスポンスの HTTP ステータスコードが 4xx 範囲または 5xx 範囲内の特定のコードである、 すべてのビューワーリクエストの割合 (%)。 追加課金で有効
  14. 14 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    をネットワークレイヤや、WAF・サーバ証明書適用レイヤとしてのみ利用する場合 → デフォルトメトリクスでも最低限の観測は可能 ◼ (要課金) キャッシュ可能なコンテンツを多く配信する場合や性能改善を行う場合 → キャッシュヒット率 (CacheHitRate) の観測が推奨 ◼ (要課金) 提供サービスの非機能要件として、低レイテンシであることが厳格に求められる場合 → レイテンシ監視 (OriginLatency) も必要 CloudFront の利用におけるメトリクス ~メトリクスの運用指標 ~ #nncstudy
  15. 15 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    ディストリビューションとは別に、エッジ関数にもメトリクスが存在する CloudFront の利用におけるメトリクス ~ エッジ関数 ~ #nncstudy
  16. 16 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ Lambda@Edge

    のメトリクス ◼ CloudFront Functions のメトリクス CloudFront の利用におけるメトリクス ~ エッジ関数 ~ #nncstudy メトリクス種別 説明 Throttles スロットリングされた呼び出しリクエストの数。 すべての関数インスタンスがリクエストを処理していて、スケールアップできる同時実行がない場合、 Lambda はそれ以降のリクエストを TooManyRequestsException エラーで拒否する。 (スロットリングされたリクエストやその他の呼び出しエラーは、Invocations または Errors とはみなされない) Duration 関数コードがイベントの処理に費やす時間。 呼び出しの請求時間は、最も近いミリ秒に切り上げられた Duration の値。 (Duration はコールドスタート時間を含まない) Errors 関数エラーが発生した呼び出しの数。 関数エラーには、コードで発生する例外と Lambda ランタイムがスローする例外が含まれる。 ランタイムは、タイムアウトや設定エラーなどの問題に対してエラーを返す。 Invocations 関数コードが呼び出された回数 (成功した呼び出しと関数エラーが発生した呼び出しを含む)。 呼び出しリクエストが調整されたり、呼び出しエラーが発生したりした場合、呼び出しは記録されない。 ConcurrentExecutions イベントを同時に処理している関数インスタンスの数。 これが同時実行クォータ、または関数のリザーブド同時実行制限に達すると、Lambda は追加の呼び出しを制限する。 メトリクス種別 説明 FunctionInvocations 特定の期間において、関数が開始された (呼び出された) 回数。 FunctionComputeUtilization 関数の実行にかかった時間 (0~100) を、最大許容時間に対する割合として表したもの。 例えば、35 という値は、最大許容時間の 35% で関数が完了したことを意味する。 FunctionExecutionErrors 特定の期間に発生した実行エラーの数。実行エラーは、関数が正常に完了しなかった場合に発生します。
  17. 17 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ Lambda@Edge

    ⚫ 同時実行クォータは通常の Lambda と同じ (1,000 回 / リージョン) となっている → 呼び出し数 (Invocations) が多い場合は注意が必要 ⚫ 呼び出し数 (Invocations) が多く、ビューワーリクエストの場合は関数がリクエスト毎に必ず実行される → CloudFront Functions の移行検討の参考になる (Lambda@Edge の方が高コストのため) ◼ CloudFront Functions ⚫ 軽量な処理を想定されており、厳格なリソース消費の制約が存在する → 計算リソースの逼迫を示すメトリクス (FunctionComputeUtilization) は重要な指標 CloudFront の利用におけるメトリクス ~メトリクスの運用指標 (エッジ関数)~ #nncstudy
  18. 19 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用におけるログ (再掲) ⚫ アクセスログ ⚫ エッジ関数ログ (Lambda@Edge・CloudFront Functions) CloudFront の利用におけるログ #nncstudy
  19. 20 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    の利用におけるログ (再掲) ⚫ アクセスログ ⚫ エッジ関数ログ (Lambda@Edge・CloudFront Functions) CloudFront の利用におけるログ #nncstudy エッジ関数のアプリログ CloudFront のアクセスログ
  20. 21 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 標準アクセスログ

    ⚫ Legacy ⚫ v2 ◼ リアルタイムアクセスログ CloudFront アクセスログ #nncstudy
  21. 22 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 標準アクセスログ

    ⚫ Legacy ⚫ v2 ◼ リアルタイムアクセスログ CloudFront アクセスログ #nncstudy
  22. 23 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 標準アクセスログ

    ⚫ Legacy ⚫ v2 ◼ リアルタイムアクセスログ CloudFront アクセスログ #nncstudy
  23. 24 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 標準アクセスログ

    ⚫ Legacy ⚫ v2 ◼ リアルタイムアクセスログ CloudFront アクセスログ #nncstudy
  24. 25 Copyright(C) NRI Netcom, Ltd. All rights reserved. CloudFront アクセスログ出力設計の方針

    (一例) #nncstudy アクセスログ種別 構成 CloudFront からのアクセスログ送信までの時間 用途例 標準 (Legacy) 1 時間以内 ログ保管 標準 (v2) 1 時間以内 ログ保管 1 時間以内 ログ保管 リアルタイム 数秒以内 ログ保管 (標準より高速に参照可能) 数秒以内 ログ監視
  25. 26 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    アクセスログは最大 35 項目を出力可能 (例) ⚫ メトリクスで観測できるものや、エッジ情報のような AWS 内部的な情報を除くと、以下の情報が確認可能 CloudFront アクセスログ #nncstudy 項目 役割 x-edge-location リクエストを処理したエッジロケーション c-ip リクエスト元のビューワーの IP アドレス c-port リクエストのポート番号 cs-method ビューワーリクエストの HTTP メソッド cs-uri-stem パスとオブジェクトを識別するリクエスト URL の部分 cs-uri-query リクエスト URL のクエリ文字列の部分 cs(Referer) リクエスト内の Referer ヘッダーの値 cs(User-Agent) リクエスト内の User-Agent ヘッダーの値 cs(Cookie) 名前と値のペアおよび関連属性を含む、リクエスト内の Cookie ヘッダーの値 cs-protocol ビューワーリクエストのプロトコル cs-protocol-version ビューワーがリクエストで指定した HTTP バージョン x-forwarded-for x-forwarded-for (CloudFront へ到達するまでの経路の IP アドレス群) の値 ssl-protocol (リクエストが HTTPS を使用した場合) ビューワーとサーバーがネゴシエートした SSL/TLS プロトコル ssl-cipher (リクエストが HTTPS を使用した場合) ビューワーとサーバーがネゴシエートした SSL/TLS 暗号
  26. 27 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ 標準ログ

    (v2) のフォーマットは以下の選択肢が存在する ⚫ W3C ⚫ JSON ⚫ Plain ⚫ Parquet(S3のみ) ◼ リアルタイムログでは、標準アクセスログ (v2) と比較して、参照できる情報が増える (フォーマットは JSON) ⚫ 標準ログと同様、全世界からアクセスされる場合に地域に関する情報は重要であり、リアルタイムログでは国コードが確認可能 CloudFront アクセスログ #nncstudy 項目 役割 timestamp (ms) ミリ秒精度の時刻 asn クライアントのASN c-country クライアント国コード cache-behavior-path-pattern マッチしたキャッシュビヘイビア origin-fbl First Byte Latency(オリジン) origin-lbl Last Byte Latency(オリジン)
  27. 28 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ エッジ関数

    (Lambda@Edge・CloudFront Functions) はログ出力先に注意が必要となる ⚫ Lambda@Edge は実行リージョンの、CloudFront Functions は us-east-1 の CloudWatch Logs へログが出力される エッジ関数ログ #nncstudy
  28. 29 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ エッジ関数

    (Lambda@Edge・CloudFront Functions) はログ出力先に注意が必要となる ⚫ Lambda@Edge は実行リージョンの、CloudFront Functions は us-east-1 の CloudWatch Logs へログが出力される エッジ関数ログ #nncstudy
  29. 31 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ メトリクス・アクセスログ・エッジ関数ログそれぞれを網羅する場合、例えば以下のような構成になる

    CloudFront ログ運用 #nncstudy リクエスト数や 4xx / 5xx を監視 オリジン間レイテンシやキャッシュヒット率も把握
  30. 32 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ メトリクス・アクセスログ・エッジ関数ログそれぞれを網羅する場合、例えば以下のような構成になる

    CloudFront ログ運用 #nncstudy アクセスログを S3 に継続的に保管 Data Stream で即時のログ出力を行う 他サーバレスサービスや監視 SaaS への出力で監視可能 us-east-1 や各リージョンのログから エッジでの処理を監視
  31. 33 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ メトリクス・アクセスログ・エッジ関数ログそれぞれを網羅する場合、例えば以下のような構成になる

    CloudFront ログ運用 #nncstudy Athena やツールで調査・分析可能 (エッジごとの分析など) 不正アクセスを IP 単位やパスで判定する場合や 開発中のトラブルシュートにも活用可能 CloudWatch Logs を基にアラーム設定も可能 (Lambda@Edge の場合は地域ごと)
  32. 34 Copyright(C) NRI Netcom, Ltd. All rights reserved. ◼ CloudFront

    を観測性の観点で見ると、メトリクスの他にアクセスログやエッジ関数ログが対象となる ◼ メトリクスには課金することで詳細な情報を確認できる項目があり、それらはキャッシュ率やパフォーマンスに関連する ◼ アクセスログの出力においては、出力されるまでのタイムラグが課題となる ◼ エッジ関数のログも併せた観測基盤を考える場合、リアルタイム性やリージョンごとの出力をケアする必要がある おわりに #nncstudy