AEM as a Cloud Service での CDN cdn

AEM as a Cloud Service には統合 CDN が付属しており、ユーザーのブラウザーに近いエッジノードからキャッシュ可能なコンテンツを配信することで、待ち時間を減らすように設計されています。この完全に管理された CDN は、AEM アプリケーションのパフォーマンスに合わせて最適化されています。

AEM の管理による CDN は、ほとんどの顧客のパフォーマンスとセキュリティのニーズを満たします。パブリッシュ層では、顧客は独自の CDN を通じてトラフィックをルーティングすることを選択できますが、これは顧客が管理する必要があります。このオプションは、特に顧客が CDN プロバイダーとの既存のレガシー統合を持ち、交換するのが困難な場合に、ケースバイケースで使用できます。

Edge Delivery Services 層への公開を検討している顧客は、アドビの管理による CDN を活用できます。Adobe管理の CDN を参照してください。

Adobeが管理する CDN aem-managed-cdn

Cloud Manager のセルフサービス UI を通じて AEM の組み込み CDN を使用してコンテンツ配信の準備をするには、アドビの管理による CDN 機能を活用できます。この機能を使用すると、DV(ドメイン検証)証明書や EV/OV(拡張/組織検証)証明書などの SSL 証明書の設定とインストールを含む、セルフサービス CDN 管理を処理できます。これらの方法について詳しくは、次を参照してください。

トラフィックの制限

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

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

CAUTION
AEM の管理による CDN では、許可された IP からのリクエストのみを提供します。独自の CDN に AEM の管理による CDN を参照させる場合は、CDN の IP が 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 を管理する必要がある。
  • 顧客が、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 を介して誤ってルーティングされるか、421 エラーが発生する可能性があります。
NOTE
独自の CDN を管理している場合は、AEM CDN 経由で送信されるヘッダーの整合性を確保する必要があります。例えば、すべての X-Forwarded-* ヘッダーを消去し、既知の値と制御値に設定することをお勧めします。例えば、X-Forwarded-For にはクライアントの IP アドレスを含め、X-Forwarded-Host にはサイトのホストを含める必要があります。
NOTE
サンドボックスプログラム環境では、顧客が提供する CDN はサポートされません。

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

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

デバッグ設定

BYOCDN 設定をデバッグするには、x-aem-debug ヘッダーに値 edge=true を使用してください。 例:

Linux® の場合:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com -v -H "X-Forwarded-Host: example.com" -H "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>" -H "x-aem-debug: edge=true"

Windows の場合:

curl https://publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com -v --header "X-Forwarded-Host: example.com" --header "X-AEM-Edge-Key: <PROVIDED_EDGE_KEY>" --header "x-aem-debug: edge=true"

これにより、リクエストで使用される特定のプロパティが x-aem-debug 応答ヘッダーに反映されます。 例:

x-aem-debug: byocdn=true,edge=true,edge-auth=edge-auth,edge-key=edgeKey1,X-AEM-Edge-Key=set,host=publish-p87058-e257304-cmstg.adobeaemcloud.com,x-forwarded-host=wknd.site,adobe_unlocked_byocdn=true

これを使用すると、例えば、edge 認証が設定されている場合の host の値を検証したり、x-forwarded-host ヘッダー値や、edge キーが設定されており、どのキーが使用されているか(1 つのキーが一致する場合)を検証したりできます。

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

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

Akamai

Akamai1 Akamai2

Amazon CloudFront

CloudFront1 CloudFront2

Cloudflare

Cloudflare1 Cloudflare2

一般的なエラー common-errors

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

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

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

エラー 421 リダイレクトの誤り

リクエストが Requested host does not match any Subject Alternative Names (SANs) on TLS certificate の前後に本文を含む 421 エラーを受け取った場合、HTTP Host ークフローがホストの証明書上のホストと一致しないことを示しています。 これは通常、Host または SNI の設定が間違っていることを示します。 Host と SNI の両方の設定が publish-p<PROGRAM_ID>-e を指していることを確認してください。<ENV-ID>.adobeaemcloud.com ホスト。

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

ページで「リダイレクトが多すぎます」ループが発生すると、ページを強制的にページ自体に戻すリダイレクトに一致する一部のリクエストヘッダーが 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 を通じて位置情報ヘッダーを管理する必要があります。

国コードの値は、ISO 3166-1 で説明されている 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