AEM as a Cloud Service での CDN

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

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

また、AEM as a Cloud Service での CDN について詳しくは、Cloud 5 AEM CDN(パート 1)および Cloud 5 AEM CDN(パート 2)のビデオもご覧ください。

AEM 管理による CDN

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

  1. SSL 証明書の管理
  2. カスタムドメイン名の管理
メモ

カスタムドメインは Cloud Manager でサポートされています のみ AEM Managed CDN を使用している場合。 独自の CDN を持ってきて AEMが管理する CDN を指すように設定する Cloud Manager ではなく、その特定の CDN を使用してドメインを管理する必要があります。

トラフィックの制限

デフォルトでは、AEM 管理による CDN セットアップの場合、すべてのパブリックトラフィックは、実稼動版と非実稼動版(開発およびステージング)環境の両方で、パブリッシュサービスに到達できます。特定の環境のパブリッシュサービスへのトラフィックを制限する場合(例えば、一定の IP アドレスでステージングを制限する場合)、Cloud Manager UI を使用して、セルフサービスでこの操作を行うことができます。

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

注意

許可されている IP からのリクエストのみがAEM管理 CDN によって提供されます。 AEM 管理による CDN に対して独自の CDN を指定する場合は、CDN の IP が許可リストに含まれていることを確認します。

顧客 CDN で AEM 管理 CDN を参照する

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

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

設定手順:

  1. CDN で、AdobeCDN の入口をオリジンドメインとして指定します。 (例: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 を設定します。この値はアドビから取得されます。

    • これは、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>"
メモ

独自の CDN を使用する場合、Cloud Manager にドメインと証明書をインストールする必要はありません。 AdobeCDN のルーティングは、デフォルトのドメインを使用しておこなわれます publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com リクエストで送信する Host ヘッダー。 リクエストの上書き Host ヘッダーとカスタムドメイン名を組み合わせると、リクエストがAdobeCDN によって誤ってルーティングされる可能性があります。

メモ

独自の CDN を管理している場合は、AEM CDN 経由で送信されるヘッダーの整合性を確保する必要があります。例えば、すべての X-Forwarded-* ヘッダーを消去し、既知の値と制御値に設定することをお勧めします。例えば、X-Forwarded-For にはクライアントの IP アドレスを含め、X-Forwarded-Host にはサイトのホストを含める必要があります。

メモ

サンドボックスプログラム環境では、顧客提供の CDN をサポートしていません。

顧客 CDN とAEM CDN 間の追加のホップは、キャッシュミスの場合にのみ必要です。 この記事で説明するキャッシュ最適化戦略を使用すると、顧客 CDN を追加した場合に待ち時間がわずかに短縮されます。

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

CDN ベンダー設定のサンプル

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

Akamai

Akamai1 Akamai2

Amazon CloudFront

CloudFront1 CloudFront2

雲フレア

Cloudflare1 Cloudflare2

位置情報ヘッダー

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

  • 国コード:x-aem-client-country
  • 大陸コード:x-aem-client-continent
メモ

顧客が管理する CDN の場合、これらのヘッダーは、実際のクライアントではなく、顧客の CDN プロキシサーバーの場所を反映します。 したがって、顧客が管理する CDN の場合、位置情報ヘッダーは顧客の CDN で管理する必要があります。

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

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

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

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

このページ