CDN キャッシュヒット率の分析
CDN でキャッシュされるコンテンツは、web サイトユーザーが経験する待ち時間を短縮します。ユーザーは、リクエストが Apache/Dispatcher または AEM パブリッシュに戻るのを待つ必要はありません。このことを念頭に置くと、CDN でキャッシュ可能なコンテンツの量を最大限に増やすために、CDN キャッシュのヒット率を最適化することが重要です。
AEM as a Cloud Service が提供する CDN ログ を分析し、キャッシュヒット率、MISS および PASS キャッシュタイプの上位 URL などのインサイトを取得して最適化を実現する方法について説明します。
CDN ログは JSON 形式で利用できます。この形式には、url
、cache
といった様々なフィールドが含まれています。詳しくは、CDN ログ形式を参照してください。cache
フィールドでは、キャッシュの状態 に関する情報を提供し、その考えられる値は HIT、MISS または PASS です。考えられる値の詳細を確認してみましょう。
考えられる値
このチュートリアルの目的のために、AEM WKND プロジェクトが AEM as a Cloud Service 環境にデプロイされ、Apache JMeter を使用して小規模なパフォーマンステストがトリガーされます。
このチュートリアルは、次の手順を実行するように構成されています。
- Cloud Manager を使用した CDN ログのダウンロード
- これらの CDN ログの分析。ローカルにインストールされたダッシュボード、またはリモートからアクセスした Splunk または Jupiter Notebook(Adobe Experience Platform のライセンスを持つユーザー向け)の 2 つの方法で実行できます。
- CDN キャッシュ設定の最適化
CDN ログのダウンロード
CDN ログをダウンロードするには、次の手順に従います。
-
my.cloudmanager.adobe.com で Cloud Manager にログインし、組織とプログラムを選択します。
-
必要な AEMCS 環境の場合は、省略記号メニューから「ログをダウンロード」を選択します。
{width="500" modal="regular"}
-
ログをダウンロード ダイアログで、ドロップダウンメニューから 公開 サービスを選択し、CDN 行の横にあるダウンロードアイコンをクリックします。
{width="500" modal="regular"}
ダウンロードしたログファイルが 今日 のファイルである場合、ファイル拡張子は .log
です。それ以外で、過去のログファイルの場合、拡張子は .log.gz
です。
ダウンロードした CDN ログの分析
キャッシュヒット率、MISS および PASS キャッシュタイプの上位 URL などのインサイトを取得するには、ダウンロードした CDN ログファイルを分析します。これらのインサイトは、CDN キャッシュ設定を最適化し、サイトのパフォーマンスを向上させるのに役立ちます。
このチュートリアルでは、CDN ログを分析するために、次の 3 つのオプションを紹介します。
- Elasticsearch、Logstash、および Kibana(ELK):ELK ダッシュボードツールはローカルにインストールできます。
- Splunk:Splunk ダッシュボードツールでは、CDN ログを取り込むために、Splunk へのアクセスと AEMCS ログ転送が有効になっている必要があります。
- Jupyter Notebook:Adobe Experience Platform のライセンスを取得しているお客様は、追加のソフトウェアをインストールしなくても、Adobe Experience Platform の一部としてリモートからアクセスできます。
オプション 1:ELK ダッシュボードツールの使用
ELK スタックは、データを検索、分析、視覚化するためのスケーラブルなソリューションを提供するツールのセットです。Elasticsearch、Logstash、Kibana で構成されます。
重要な詳細を特定するために、AEMCS-CDN-Log-Analysis-Tooling プロジェクトを使用してみましょう。このプロジェクトでは、ELK スタックの Docker コンテナと、CDN ログを分析するための事前設定済みの Kibana ダッシュボードを提供します。
-
ELK Docker コンテナの設定方法の手順に従って、CDN キャッシュヒット率 Kibana ダッシュボードを読み込む必要があります。
-
CDN キャッシュヒット率と上位の URL を特定するには、次の手順に従います。
-
ダウンロードした CDN ログファイルを環境固有のフォルダー内(
ELK/logs/stage
など)にコピーします。 -
CDN キャッシュヒット率 ダッシュボードを表示するには、左上隅の ナビゲーションメニュー/分析/ダッシュボード/CDN キャッシュヒット率 をクリックします。
{width="500" modal="regular"}
-
右上隅から目的の時間範囲を選択します。
{width="500" modal="regular"}
-
CDN キャッシュヒット率 ダッシュボードは一目瞭然です。
-
「合計リクエスト分析」セクションには、次の詳細が表示されます。
- キャッシュタイプ別のキャッシュ率
- キャッシュタイプ別のキャッシュ数
{width="500" modal="regular"}
-
リクエストまたは MIME タイプ別の分析 には、次の詳細が表示されます。
- キャッシュタイプ別のキャッシュ率
- キャッシュタイプ別のキャッシュ数
- 上位の MISS および PASS URL
{width="500" modal="regular"}
-
環境名またはプログラム ID によるフィルタリング
取り込んだログを環境名でフィルタリングするには、次の手順に従います。
-
CDN キャッシュヒット率ダッシュボードで、「フィルターを追加」アイコンをクリックします。
{width="500" modal="regular"}
-
フィルターを追加 モーダルで、ドロップダウンメニューから「
aem_env_name.keyword
」フィールドを選択し、次のフィールドにis
演算子と目的の環境名を選択して、最後に「フィルターを追加」をクリックします。{width="500" modal="regular"}
ホスト名別のフィルタリング
取り込んだログをホスト名でフィルタリングするには、次の手順に従います。
-
CDN キャッシュヒット率ダッシュボードで、「フィルターを追加」アイコンをクリックします。
{width="500" modal="regular"}
-
フィルターを追加 モーダルで、ドロップダウンメニューから「
host.keyword
」フィールドを選択し、次のフィールドにis
演算子と目的のホスト名を選択して、最後に「フィルターを追加」をクリックします。{width="500" modal="regular"}
同様に、分析要件に基づいて、ダッシュボードにフィルターを追加します。
オプション 2:Splunk ダッシュボードツールの使用
Splunk は、監視やトラブルシューティングの目的で、ログの集計、分析、ビジュアライゼーションの作成に役立つ一般的なログ分析ツールです。
重要な詳細を特定するには、AEMCS-CDN-Log-Analysis-Tooling プロジェクトを使用してみましょう。このプロジェクトでは、CDN ログを分析する Splunk ダッシュボードを提供します。
-
AEMCS CDN ログ分析用の Splunk ダッシュボードの手順に従って、CDN キャッシュヒット率 Splunk ダッシュボードを読み込む必要があります。
-
必要に応じて、Splunk ダッシュボードで インデックス、ソースタイプ、その他 のフィルター値を更新します。
{width="500" modal="regular"}
オプション 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 を実行するには、次の手順に従います。
-
Adobe Experience Cloud にログインし、ホームページ/「クイックアクセス」セクション/Experience Platform をクリックします
{width="500" modal="regular"}
-
Adobe Experience Platform ホームページ/「データサイエンス」セクションで、Notebooks メニュー項目をクリックします。Jupyter Notebooks 環境を開始するには、「JupyterLab」タブをクリックします。
{width="500" modal="regular"}
-
JupyterLab メニューで、「ファイルをアップロード」アイコンを使用して、ダウンロードした CDN ログファイルと、
aemcs_cdn_logs_analysis.ipynb
ファイルをアップロードします。{width="500" modal="regular"}
-
aemcs_cdn_logs_analysis.ipynb
ファイルをダブルクリックして開きます。 -
ノートブックの「CDN ログファイルを読み込み」セクションで、
log_file
値を更新します。{width="500" modal="regular"}
-
選択したセルを実行して先に進むには、「再生」アイコンをクリックします。
{width="500" modal="regular"}
-
合計、HTML、JS/CSS および画像リクエストの分析結果を表示 コードセルを実行すると、出力にキャッシュヒット率の割合、棒グラフおよび円グラフが表示されます。
{width="500" modal="regular"}
-
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 設定を参照してください。