SitecoreメディアライブラリーのCDNサポート機能を使用する

samatsu 3/19/2019 1437 N/A Sitecore XP

Sitecore 9.1から、CDNを使用したメディアライブラリーのコンテンツの公開がサポートされています。この機能を使用することで、コンテンツデリバリーサーバーで公開されるメディアライブラリー配下の画像やファイルコンテンツをCDN経由で訪問者に提供するすることができるようになります。

今回は、Sitecore 9.1のOnPremise (IaaS) 環境で、メディアライブラリのCDNサポート機能を有効化し、動作確認します。CDNサポートはAzure MarketplaceからSitecoreを展開したり、Azure ToolkitからSitecoreをAzure PaaSに展開するときに同時に有効化することもできます。

CDNはどのサービスを使用してもいいですが、簡単に使用できるAzure CDNを今回は使用することとします。

1. Azure CDNの作成

Azure Portalにログインして、作成していきます。マーケットプレースから cdn をキーワードに、Azure CDN を検索します。CDNを選択し、表示されたブレードの Create をクリックします。

CDNプロファイルの作成用ブレードが表示されるので、名前、リソースグループ、Pricing tierを選択します。エンドポイントをこの場で作成する場合は、 Create a new CDN endpoint now を選択します。今回はチェックしません。

Pricing tier 別の機能比較
https://docs.microsoft.com/ja-jp/azure/cdn/cdn-features

作成したら、CDNプロファイルを表示して、 Overview -> Endpoint をクリックしてエンドポイントを作成します。

円dポイントの追加画面で、Nameに適当な名前を付けます。Origin typeは IaaSの環境を使うので、 Custom origin を選択しました。Origin hostname に、オリジンサーバー(Sitecoreお場合はCDサーバー) の名前を入力します。今回はCDサーバーでHTTPSを構成していないので、HTTPSのチェックはクリアしました。設定を確認して、エンドポイントを作成します。

作成したエンドポイントのURLは後で使用するのでメモしておきます。

CDN側の準備が終わったので、Sitecoreの設定を変更していきます。

2. メディアライブラリのCDNサポートの有効化

様々なデプロイパターンにおけるCDNの有効化の手順は、こちらに掲載されています。今回は手動で有効化していきます。Sitecoreがインストールされたフォルダーの/App_Config/Include/Examples に移動します。CDN.config.example をコピーし、Include フォルダーに貼り付けます。

コピーしたファイルの .example 拡張子を削除して、 CDN.config という名前にします。

CDN.configをメモ帳で開き、Media.MediaLinkServerUrlのパッチで、Azure CDNのエンドポイント構成時に作成したエンドポイントのURLを設定します。今回 CDサーバー側で https の構成をしていないので、CDNのエンドポイントもhttp にしました。

  <setting name="Media.MediaLinkServerUrl">
      <patch:attribute name="value">http://xxxxxxx.azureedge.net</patch:attribute>
   </setting>

変更を保存します。

上記以外のパラメーターの意味は、Sitecore Media Library CDN-related configuration reference を参照してください。

3.動作確認

実際にCD環境にアクセスします。ページ内で使用されているメディアライブラリーの画像のURLを確認すると、CDNのエンドポイントのホスト名になっていることを確認できます。

このように、Sitecore 9.1から、メディアライブラリーのメディアアイテムのURLを簡単に CDNのエンドポイントに変更することができます。

エクスペリエンスエディターでページを表示した場合は、CDNを使ったURLにはなりませんが、CDNのサポートはCDロールのサーバーでのみ有効化するようにしてください。

Azure CDNのキャッシュ設定をルール等によりより詳細にコントロールしたい場合は CDN setup considerations のページや、ページ内で参照されている先のページをご確認ください。