AEM as a Cloud Service での CDN cdn

AEM as Cloud Service の出荷時には、組み込みの CDN が搭載されています。その主な目的は、ブラウザーの近くの CDN エッジノードからキャッシュ可能なコンテンツを配信することで、待ち時間を減らすことです。AEM アプリケーションの最適なパフォーマンスを得るために、完全に管理および設定されています。

AEM の管理による CDN は、ほとんどのお客様のパフォーマンスとセキュリティに関する要件を満たします。 顧客は、オプションで、独自の CDN から公開層を参照することもできますが、その場合は自社で管理する必要があります。このシナリオは、放棄が困難な CDN ベンダーとのレガシー統合を保有する顧客など(ただし、これに限定されない)、特定の前提条件を満たしていることに基づき、ケースバイケースで使用できます。

AEM の管理による CDN aem-managed-cdn

Cloud Manager セルフサービス UI を使用して、AEM の標準搭載 CDN でコンテンツ配信の準備をするには、以下の節に従います。

トラフィックの制限

デフォルトでは、AEM の管理による CDN 設定の場合、実稼動環境と実稼動以外(開発およびステージング)の環境の両方で、すべてのパブリックトラフィックがパブリッシュサービスに到達できます。Cloud Manager ユーザーインターフェイスを使用して、特定の環境のパブリッシュサービスへのトラフィックを制限できます(IP アドレスの範囲でステージングを制限するなど)。

詳しくは、IP 許可リストの管理を参照してください。

CAUTION
許可されている IP からのリクエストのみが、AEM の管理による CDN で処理されます。独自の CDN に AEM の管理による CDN を参照させる場合は、CDN の IP が許可リストに含まれていることを確認してください。

CDN でのトラフィックの設定 cdn-configuring-cloud

CDN でのトラフィックは、次のような様々な方法で設定できます。

Git で YAML ファイルを使用してこれらの機能を設定し、Cloud Manager 設定パイプラインを使用してデプロイする方法について説明します。

CDN エラーページの設定 cdn-error-pages

CDN エラーページは、まれに AEM に到達できない場合にブラウザーに提供されるデフォルトのブランド化されていないページを上書きするように設定できます。詳しくは、CDN エラーページの設定を参照してください。

CDN でのキャッシュされたコンテンツのパージ purge-cdn

HTTP キャッシュ制御ヘッダーを使用した TTL の設定は、コンテンツ配信のパフォーマンスとコンテンツの鮮度のバランスを取る効果的なアプローチです。ただし、更新されたコンテンツを直ちに提供することが重要なシナリオでは、CDN キャッシュを直接パージすると有益な場合があります。

パージ API トークンの設定キャッシュされた CDN コンテンツのパージを参照してください。

CDN での基本認証 basic-auth

ビジネス関係者がコンテンツのレビューを行うなどの簡単な認証ユースケースの場合は、ユーザー名とパスワードを必要とする基本認証ダイアログを表示して、コンテンツを保護します。詳細情報を確認し、早期導入プログラムに参加してください。

顧客 CDN の AEM の管理による CDN への参照 point-to-point-CDN

顧客が既存の CDN を使用する必要がある場合は、自社でその CDN を管理して AEM 管理による CDN を参照できます。ただし、次の条件を満たす必要があります。

  • 顧客は、交換するのに手間がかかる既存 CDN を保有している。
  • 顧客が自社で管理している。
  • CDN を AEM as a Cloud Service と連携するように設定できる。設定手順を以下に示します。
  • 関連する問題が発生する事態に備えて、エンジニアリング CDN エキスパートが待機している。
  • 実稼動環境に移行する前に、負荷テストを実行し、成功している。

設定手順:

  1. お使いの CDN が Adobe CDN のイングレスを元のドメインとして指すようにします。例:publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com

  2. SNI をAdobe CDN の入力に設定する。

  3. ホストヘッダーを接触チャネルドメインに設定します(例:Host:publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com)。

  4. AEM がホストヘッダーを決定できるように、X-Forwarded-Host ヘッダーにドメイン名を設定します(例:X-Forwarded-Host:example.com)。

  5. X-AEM-Edge-Key を設定します。この値は、この記事の説明に従って、Cloud Manager 設定パイプラインを使用して設定する必要があります。

    • これは、Adobe CDN でリクエストのソースを検証し、X-Forwarded-* ヘッダーを AEM アプリケーションに渡すために必要です。例えば、X-Forwarded-For を使用してクライアント IP を決定します。したがって、X-Forwarded-* ヘッダーが正しいことを確認するのは、信頼できる呼び出し元(顧客が管理する CDN)の責任となります(以下のメモを参照)。
    • 必要に応じて、X-AEM-Edge-Key が存在しない場合に Adobe CDN の入口へのアクセスをブロックできます。Adobe CDN の入力に直接アクセスする必要がある場合(ブロックする場合)は、アドビにお知らせください。

主要な CDN ベンダーの設定例については、CDN ベンダー設定のサンプルの節を参照してください。

ライブトラフィックを受け入れる前に、アドビカスタマーサポートに問い合わせて、エンドツーエンドのトラフィックルーティングが正しく機能していることを検証してください。

X-AEM-Edge-Key を設定後、リクエストが正しくルーティングされているかどうかを、次のようにテストできます。

Linux® の場合:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com -H "X-Forwarded-Host: example.com" -H "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>"

Windows の場合:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com --header "X-Forwarded-Host: example.com" --header "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>"
NOTE
なお、独自の CDN を使用する場合、Cloud Manager にドメインと証明書をインストールする必要はありません。Adobe CDN でのルーティングは、リクエスト Host ヘッダーで送信されるデフォルトのドメイン publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com を使用して行われます。リクエストの Host ヘッダーをカスタムドメイン名で上書きすると、リクエストが Adobe CDN によって誤ってルーティングされる可能性があります。
NOTE
独自の CDN を管理している場合は、AEM CDN 経由で送信されるヘッダーの整合性を確保する必要があります。例えば、すべての X-Forwarded-* ヘッダーを消去し、既知の値と制御値に設定することをお勧めします。例えば、X-Forwarded-For にはクライアントの IP アドレスを含め、X-Forwarded-Host にはサイトのホストを含める必要があります。
NOTE
サンドボックスプログラム環境では、顧客提供の CDN をサポートしていません。

顧客 CDN と AEM CDN の間の追加ホップは、キャッシュミスがあった場合にのみ必要になります。この記事で説明しているキャッシュ最適化戦略を使用すると、顧客 CDN を追加した場合でも、無視できるほどわずかな待ち時間しか発生しません。

この顧客 CDN 設定は、パブリッシュ層に対してサポートされていますが、オーサー層の前ではサポートされていません。

CDN ベンダー設定のサンプル sample-configurations

いくつかの主要な CDN ベンダーの設定例を以下に示します。

Akamai

Akamai1 Akamai2

Amazon CloudFront

CloudFront1 CloudFront2

Cloudflare

Cloudflare1 Cloudflare2

一般的なエラー common-errors

提供されるサンプル設定は必要な基本設定を示していますが、顧客設定には、AEM as a Cloud Service がトラフィックに対応するために必要なヘッダーを削除、変更、再配置する、その他の影響を及ぼすルールが含まれている場合があります。顧客管理 CDN を AEM as a Cloud Service を指すように設定する際に発生する一般的なエラーを以下に示します。

パブリッシュサービスエンドポイントへのリダイレクト

リクエストが 403 forbidden 応答を受け取った場合、リクエストに必要なヘッダーの一部が欠落していることを意味します。よくある原因は、CDN が apex と www ドメインの両方のトラフィックを管理しているものの、www ドメインに適したヘッダーを追加していないことです。この問題は、AEM as a Cloud Service CDN ログを確認し、必要なリクエストヘッダーを確認することで、トリアージすることができます。

リダイレクトループが多すぎます

ページで「リダイレクトが多すぎます」ループが発生すると、ページを強制的にページ自体に戻すリダイレクトに一致する一部のリクエストヘッダーが CDN に追加されます。次に例を示します。

  • CDN ルールは、apex ドメインまたは www ドメインのいずれかに一致するように作成され、apex ドメインの X-Forwarded-Host ヘッダーのみが追加されます。
  • apex ドメインのリクエストはこの CDN ルールに一致し、apex ドメインを X-Forwarded-Host ヘッダーとして追加します。
  • リダイレクトが apex ドメイン(例:^example.com)のホストヘッダーと明示的に一致する接触チャネルにリクエストが送信されます。
  • 書き換えルールがトリガーされ、apex ドメインのリクエストが www サブドメインを含む https に書き換えられます。
  • その後、このリダイレクトは顧客のエッジに送信され、CDN ルールが再度トリガーされ、www サブドメインではなく apex ドメインの X-Forwarded-Host ヘッダーが再度追加されます。その後、リクエストが失敗するまでプロセスが再度開始されます。

この問題を解決するには、SSL リダイレクト戦略、CDN ルール、リダイレクトおよび書き換えルールの組み合わせを評価します。

位置情報ヘッダー geo-headers

AEM の管理による CDN は、次のヘッダーを各リクエストに追加します。

  • 国コード:x-aem-client-country
  • 大陸コード:x-aem-client-continent
NOTE
顧客の管理による CDN がある場合、これらのヘッダーは、実際のクライアントではなく、顧客の CDN プロキシサーバーの場所を反映します。したがって、顧客の管理による CDN の場合、位置情報ヘッダーは顧客の CDN で管理する必要があります。

国コードの値は、Alpha-2 コード(ここで説明)です。

大陸コードの値は次のとおりです。

  • AF - アフリカ
  • AN - 南極大陸
  • AS - アジア
  • EU - ヨーロッパ
  • NA - 北米
  • OC - オセアニア
  • SA - 中南米

この情報は、リクエストのオリジン(国)に基づいて別の URL にリダイレクトするなどの使用例に役立ちます。地理情報に依存するキャッシュ応答には、Vary ヘッダーを使用します。例えば、特定の国のランディングページにリダイレクトする場合は、常に Vary: x-aem-client-country を含める必要があります。必要に応じて、Cache-Control: private を使用してキャッシュを防ぐことができます。「キャッシュ」も参照してください。

recommendation-more-help
fbcff2a9-b6fe-4574-b04a-21e75df764ab