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 許可リストの管理を参照してください。
CDN でのトラフィックの設定 cdn-configuring-cloud
CDN トラフィックとフィルターを設定するルールは、設定ファイルで宣言し、CDN にデプロイする際に、 Cloud Manager の設定パイプライン. 詳しくは、 CDN でのトラフィックの設定 および WAF ルールを含むトラフィックフィルタールール.
CDN エラーページの設定 cdn-error-pages
CDN エラーページは、AEMに到達できない稀なイベントでブラウザーに提供される、デフォルトのブランド化されていないページを上書きするように設定できます。 詳しくは、 CDN エラーページの設定.
顧客 CDN で AEM の管理による CDN を参照する point-to-point-CDN
顧客が既存の CDN を使用する必要がある場合は、自社でその CDN を管理して AEM 管理による CDN を参照できます。ただし、次の条件を満たす必要があります。
- 顧客は、交換するのに手間がかかる既存 CDN を保有している。
- 顧客が自社で管理している。
- CDN を AEM as a Cloud Service と連携するように設定できる。設定手順を以下に示します。
- 関連する問題が発生する事態に備えて、エンジニアリング 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
を設定します。この値はアドビから取得されます。- これは、Adobe CDN でリクエストのソースを検証し、
X-Forwarded-*
ヘッダーを AEM アプリケーションに渡すために必要です。例えば、X-Forwarded-For
を使用してクライアント IP を決定します。したがって、X-Forwarded-*
ヘッダーが正しいことを確認するのは、信頼できる呼び出し元(顧客が管理する CDN)の責任となります(以下のメモを参照)。 - 必要に応じて、
X-AEM-Edge-Key
が存在しない場合に Adobe CDN の入口へのアクセスをブロックできます。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>"
Host
ヘッダーで送信されるデフォルトのドメイン publish-p<PROGRAM_ID>-e<ENV-ID>.adobeaemcloud.com
を使用して行われます。リクエストの Host
ヘッダーをカスタムドメイン名で上書きすると、リクエストが Adobe CDN によって誤ってルーティングされる可能性があります。X-Forwarded-*
ヘッダーを消去し、既知の値と制御値に設定することをお勧めします。例えば、X-Forwarded-For
にはクライアントの IP アドレスを含め、X-Forwarded-Host
にはサイトのホストを含める必要があります。顧客 CDN と AEM CDN の間の追加ホップは、キャッシュミスがあった場合にのみ必要になります。この記事で説明しているキャッシュ最適化戦略を使用すると、顧客 CDN を追加した場合でも、無視できるほどわずかな待ち時間しか発生しません。
この顧客 CDN 設定は、パブリッシュ層に対してサポートされていますが、オーサー層の前ではサポートされていません。
CDN ベンダー設定のサンプル sample-configurations
いくつかの主要な CDN ベンダーの設定例を以下に示します。
Akamai
Amazon CloudFront
Cloudflare
位置情報ヘッダー geo-headers
AEM の管理による CDN は、次のヘッダーを各リクエストに追加します。
- 国コード:
x-aem-client-country
- 大陸コード:
x-aem-client-continent
国コードの値は、Alpha-2 コード(ここで説明)です。
大陸コードの値は次のとおりです。
- AF - アフリカ
- AN - 南極大陸
- AS - アジア
- EU - ヨーロッパ
- NA - 北米
- OC - オセアニア
- SA - 中南米
この情報は、リクエストのオリジン(国)に基づいて別の URL にリダイレクトするなどの使用例に役立ちます。地理情報に依存するキャッシュ応答には、Vary ヘッダーを使用します。例えば、特定の国のランディングページにリダイレクトする場合は、常に Vary: x-aem-client-country
を含める必要があります。必要に応じて、Cache-Control: private
を使用してキャッシュを防ぐことができます。「キャッシュ」も参照してください。