CDN キャッシュヒット率の分析

CDN でキャッシュされるコンテンツは、web サイトユーザーが経験する待ち時間を短縮します。ユーザーは、リクエストが Apache/Dispatcher または AEM パブリッシュに戻るのを待つ必要はありません。このことを念頭に置くと、CDN でキャッシュ可能なコンテンツの量を最大限に増やすために、CDN キャッシュのヒット率を最適化することが重要です。

AEM as a Cloud Service が提供する CDN ログ ​を分析し、キャッシュヒット率MISS および PASS キャッシュタイプの上位 URL などのインサイトを取得して最適化を実現する方法について説明します。

CDN ログは JSON 形式で利用できます。この形式には、urlcache といった様々なフィールドが含まれています。詳しくは、CDN ログ形式を参照してください。cache フィールドでは、キャッシュの状態 ​に関する情報を提供し、その考えられる値は HIT、MISS または PASS です。考えられる値の詳細を確認してみましょう。

キャッシュの状態
考えられる値
説明
HIT
リクエストしたデータは CDN キャッシュ内で見つかるので、AEM サーバーに取得リクエストを行う必要はありません
MISS
リクエストしたデータは CDN キャッシュ内で見つからないので、AEM サーバーからリクエストする必要があります
PASS
リクエストされたデータは​ キャッシュされないように明示的に設定 ​され、常に AEM サーバーから取得されます。

このチュートリアルの目的のために、AEM WKND プロジェクトが AEM as a Cloud Service 環境にデプロイされ、Apache JMeter を使用して小規模なパフォーマンステストがトリガーされます。

このチュートリアルは、次の手順を実行するように構成されています。

  1. Cloud Manager を使用した CDN ログのダウンロード
  2. これらの CDN ログの分析。ローカルにインストールされたダッシュボード、またはリモートからアクセスした Splunk または Jupiter Notebook(Adobe Experience Platform のライセンスを持つユーザー向け)の 2 つの方法で実行できます。
  3. CDN キャッシュ設定の最適化

CDN ログのダウンロード

CDN ログをダウンロードするには、次の手順に従います。

  1. my.cloudmanager.adobe.com で Cloud Manager にログインし、組織とプログラムを選択します。

  2. 必要な AEMCS 環境の場合は、省略記号メニューから「ログをダウンロード」を選択します。

    ログのダウンロード - Cloud Manager {width="500" modal="regular"}

  3. ログをダウンロード ​ダイアログで、ドロップダウンメニューから​ 公開 ​サービスを選択し、CDN 行の横にあるダウンロードアイコンをクリックします。

    CDN ログ - Cloud Manager {width="500" modal="regular"}

ダウンロードしたログファイルが​ 今日 ​のファイルである場合、ファイル拡張子は .log です。それ以外で、過去のログファイルの場合、拡張子は .log.gz です。

ダウンロードした CDN ログの分析

キャッシュヒット率、MISS および PASS キャッシュタイプの上位 URL などのインサイトを取得するには、ダウンロードした CDN ログファイルを分析します。これらのインサイトは、CDN キャッシュ設定を最適化し、サイトのパフォーマンスを向上させるのに役立ちます。

このチュートリアルでは、CDN ログを分析するために、次の 3 つのオプションを紹介します。

  1. Elasticsearch、Logstash、および Kibana(ELK)ELK ダッシュボードツールはローカルにインストールできます。
  2. SplunkSplunk ダッシュボードツールでは、CDN ログを取り込むために、Splunk へのアクセスと AEMCS ログ転送が有効になっている必要があります。
  3. Jupyter Notebook:Adobe Experience Platform のライセンスを取得しているお客様は、追加のソフトウェアをインストールしなくても、Adobe Experience Platform の一部としてリモートからアクセスできます。

オプション 1:ELK ダッシュボードツールの使用

ELK スタックは、データを検索、分析、視覚化するためのスケーラブルなソリューションを提供するツールのセットです。Elasticsearch、Logstash、Kibana で構成されます。

重要な詳細を特定するために、AEMCS-CDN-Log-Analysis-Tooling プロジェクトを使用してみましょう。このプロジェクトでは、ELK スタックの Docker コンテナと、CDN ログを分析するための事前設定済みの Kibana ダッシュボードを提供します。

  1. ELK Docker コンテナの設定方法の手順に従って、CDN キャッシュヒット率 Kibana ダッシュボードを読み込む必要があります。

  2. CDN キャッシュヒット率と上位の URL を特定するには、次の手順に従います。

    1. ダウンロードした CDN ログファイルを環境固有のフォルダー内(ELK/logs/stage など)にコピーします。

    2. CDN キャッシュヒット率 ​ダッシュボードを表示するには、左上隅の​ ナビゲーションメニュー/分析/ダッシュボード/CDN キャッシュヒット率 ​をクリックします。

      CDN キャッシュヒット率 - Kibana ダッシュボード {width="500" modal="regular"}

    3. 右上隅から目的の時間範囲を選択します。

      時間範囲 - Kibana ダッシュボード {width="500" modal="regular"}

    4. CDN キャッシュヒット率 ​ダッシュボードは一目瞭然です。

    5. 合計リクエスト分析」セクションには、次の詳細が表示されます。

      • キャッシュタイプ別のキャッシュ率
      • キャッシュタイプ別のキャッシュ数

      合計リクエスト分析 - Kibana ダッシュボード {width="500" modal="regular"}

    6. リクエストまたは MIME タイプ別の分析 ​には、次の詳細が表示されます。

      • キャッシュタイプ別のキャッシュ率
      • キャッシュタイプ別のキャッシュ数
      • 上位の MISS および PASS URL

      リクエストまたは MIME タイプ別の分析 - Kibana ダッシュボード {width="500" modal="regular"}

環境名またはプログラム ID によるフィルタリング

取り込んだログを環境名でフィルタリングするには、次の手順に従います。

  1. CDN キャッシュヒット率ダッシュボードで、「フィルターを追加」アイコンをクリックします。

    フィルター - Kibana ダッシュボード {width="500" modal="regular"}

  2. フィルターを追加 ​モーダルで、ドロップダウンメニューから「aem_env_name.keyword」フィールドを選択し、次のフィールドに is 演算子と目的の環境名を選択して、最後に「フィルターを追加」をクリックします。

    フィルターを追加 - Kibana ダッシュボード {width="500" modal="regular"}

ホスト名別のフィルタリング

取り込んだログをホスト名でフィルタリングするには、次の手順に従います。

  1. CDN キャッシュヒット率ダッシュボードで、「フィルターを追加」アイコンをクリックします。

    フィルター - Kibana ダッシュボード {width="500" modal="regular"}

  2. フィルターを追加 ​モーダルで、ドロップダウンメニューから「host.keyword」フィールドを選択し、次のフィールドに is 演算子と目的のホスト名を選択して、最後に「フィルターを追加」をクリックします。

    ホストフィルター - Kibana ダッシュボード {width="500" modal="regular"}

同様に、分析要件に基づいて、ダッシュボードにフィルターを追加します。

オプション 2:Splunk ダッシュボードツールの使用

Splunk は、監視やトラブルシューティングの目的で、ログの集計、分析、ビジュアライゼーションの作成に役立つ一般的なログ分析ツールです。

重要な詳細を特定するには、AEMCS-CDN-Log-Analysis-Tooling プロジェクトを使用してみましょう。このプロジェクトでは、CDN ログを分析する Splunk ダッシュボードを提供します。

  1. AEMCS CDN ログ分析用の Splunk ダッシュボードの手順に従って、CDN キャッシュヒット率 Splunk ダッシュボードを読み込む必要があります。

  2. 必要に応じて、Splunk ダッシュボードで​ インデックス、ソースタイプ、その他 ​のフィルター値を更新します。

    Splunk ダッシュボード {width="500" modal="regular"}

NOTE
Splunk ダッシュボードの UI とグラフは ELK ダッシュボードとは異なりますが、主な詳細は似ています。

オプション 3:Jupyter ノートブックの使用

ソフトウェアをローカルにインストールしない(前のセクションの ELK ダッシュボードツール)場合は、別のオプションもありますが、Adobe Experience Platform ライセンスが必要です。

Jupyter Notebook は、コード、テキスト、ビジュアライゼーションを含むドキュメントを作成できるオープンソース web アプリケーションです。データの変換、ビジュアライゼーション、統計的モデリングに使用します。Adobe Experience Platform の一部としてリモートからアクセス可能です。

インタラクティブ Python ノートブックファイルのダウンロード

まず、AEM-as-a-CloudService - CDN Logs Analysis - Jupyter Notebook ファイルをダウンロードします。これは CDN ログ分析に役立ちます。ダウンロードした 「インタラクティブ Python ノートブック」ファイルは一目瞭然ですが、以下に各セクションの主な特徴を示します。

  • 追加のライブラリをインストールtermcolor および tabulate Python ライブラリをインストールします。
  • CDN ログファイルを読み込みlog_file 変数値を使用して CDN ログファイルを読み込みます。必ずその値を更新してください。また、この CDN ログを Pandas DataFrame に変換します。
  • 分析を実行:最初のコードブロックは​_合計、HTML、JS/CSS および画像リクエストの分析結果を表示_で、キャッシュヒット率の割合、棒グラフ、円グラフを表示します。
    2 番目のコードブロックは、HTML、JS/CSS、画像の MISS および PASS リクエスト URL の上位 5 件 ​で、URL とその数を表形式で表示します。

Jupyter Notebook の実行

Adobe Experience Platform で Jupyter Notebook を実行するには、次の手順に従います。

  1. Adobe Experience Cloud にログインし、ホームページ/「クイックアクセス」セクション/Experience Platform をクリックします

    Experience Platform {width="500" modal="regular"}

  2. Adobe Experience Platform ホームページ/「データサイエンス」セクションで、Notebooks メニュー項目をクリックします。Jupyter Notebooks 環境を開始するには、「JupyterLab」タブをクリックします。

    Notebook ログファイル値の更新 {width="500" modal="regular"}

  3. JupyterLab メニューで、「ファイルをアップロード」アイコンを使用して、ダウンロードした CDN ログファイルと、aemcs_cdn_logs_analysis.ipynb ファイルをアップロードします。

    ファイルをアップロード - JupyteLab {width="500" modal="regular"}

  4. aemcs_cdn_logs_analysis.ipynb ファイルをダブルクリックして開きます。

  5. ノートブックの「CDN ログファイルを読み込み」セクションで、log_file 値を更新します。

    ノートブックのログファイルの値の更新 {width="500" modal="regular"}

  6. 選択したセルを実行して先に進むには、「再生」アイコンをクリックします。

    ノートブックのログファイルの値の更新 {width="500" modal="regular"}

  7. 合計、HTML、JS/CSS および画像リクエストの分析結果を表示 ​コードセルを実行すると、出力にキャッシュヒット率の割合、棒グラフおよび円グラフが表示されます。

    ノートブックのログファイルの値の更新 {width="500" modal="regular"}

  8. HTML、JS/CSS および画像の上位 5 つの MISS および PASS リクエスト URL コードセルを実行すると、出力に上位 5 つの MISS および PASS リクエスト URL が表示されます。

    ノートブックのログファイルの値の更新 {width="500" modal="regular"}

Jupyter Notebook を拡張し、要件に基づいて CDN ログを分析できます。

CDN キャッシュ設定の最適化

CDN ログを分析した後、CDN キャッシュ設定を最適化してサイトのパフォーマンスを向上させることができます。AEM のベストプラクティスは、キャッシュヒット率を 90%以上にすることです。

詳しくは、CDN キャッシュ設定の最適化を参照してください。

AEM WKND プロジェクトには参照 CDN 設定があります。詳しくは、wknd.vhost ファイルの CDN 設定を参照してください。

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69