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)のビデオもご覧ください。
Cloud Manager セルフサービス UI を使用して、AEM の標準搭載 CDN でコンテンツ配信の準備をするには、以下の節に従います。
AEM の管理による CDN を使用している場合、カスタムドメインは Cloud Manager のみでサポートされます。独自の CDN を導入し、AEM の管理による CDN を参照させる場合、Cloud Manager ではなく、その特定の CDN を使用してドメインを管理する必要があります。
トラフィックの制限
デフォルトでは、AEM 管理による CDN セットアップの場合、すべてのパブリックトラフィックは、実稼動版と非実稼動版(開発およびステージング)環境の両方で、パブリッシュサービスに到達できます。特定の環境のパブリッシュサービスへのトラフィックを制限する場合(例えば、一定の IP アドレスでステージングを制限する場合)、Cloud Manager UI を使用して、セルフサービスでこの操作を行うことができます。
詳しくは、「IP 許可リストの管理」を参照してください。
許可されている IP からのリクエストのみが、AEM の管理による CDN で処理されます。独自の CDN に AEM の管理による CDN を参照させる場合は、CDN の IP が許可リストに含まれていることを確認します。
顧客が既存の CDN を使用する必要がある場合は、自社でその CDN を管理して AEM 管理による CDN を参照できます。ただし、次の条件を満たす必要があります。
設定手順:
お使いの CDN が Adobe CDN のイングレスを元のドメインとして指すようにします。(例:publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com
)。
また、SNI も Adobe CDN の入口に設定する必要があります。。
ホストヘッダーを接触チャネルドメインに設定します(例:Host:publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com
)。
AEM がホストヘッダーを決定できるように、X-Forwarded-Host
ヘッダーにドメイン名を設定します(例:X-Forwarded-Host:example.com
)。
X-AEM-Edge-Key
を設定します。この値はアドビから取得されます。
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 ベンダーの設定例を以下に示します。
Akamai
Amazon CloudFront
Cloudflare
AEM が管理する CDN は、次の情報を含む各リクエストにヘッダーを追加します。
x-aem-client-country
x-aem-client-continent
顧客の管理による CDN の場合、これらのヘッダーは、実際のクライアントではなく、顧客の CDN プロキシサーバーの場所を反映します。したがって、顧客の管理による CDN の場合、位置情報ヘッダーは顧客の CDN で管理する必要があります。
国コードの値は、Alpha-2 コード(ここで説明)です。
大陸コードの値は次のとおりです。
この情報は、リクエストのオリジン(国)に基づいて別の URL にリダイレクトするなどの使用例に役立ちます。地域情報に依存するキャッシュ応答には、Vary ヘッダーを使用します。例えば、特定の国のランディングページにリダイレクトする場合は、常に Vary: x-aem-client-country
を含める必要があります。必要に応じて、Cache-Control: private
を使用してキャッシュを防ぐことができます。「キャッシュ」も参照してください。