5.1. Sitecore blob storage の設定

Sitecore 9.3 からは Azure のストレージサービスとなる Azure Blob Storage の利用ができるようになりました。この設定を編集サーバー、配信サーバーに対して設定することで、ストレージを共有することができるようになります。ここでは実際に使うための手順を紹介します。

5.1.1. 事前の準備

5.1.1.1. データベースのクリーンアップ

モジュールのセットアップの前に、一度 SQL データベースのクリーンアップを実行します。下記の画面は コントロールパネル - 管理ツール を開きます。

管理ツールを開く

続いて Database and Operations を選択すると Database Cleanup を開きます。

Database Cleanup

この画面で、左側の Databases からは masterweb を選択、右側のタスクから Cleanup blobs をチェックして実行してください。

Cleanup Blobs

5.1.1.2. Azure Blob ストレージの準備

Sitecore と接続するための Azure Storage を準備します。リソースの追加から ストレージ グループにある ストレージアカウント を選択します。:

ストレージアカウント

ここではストレージアカウント名をとデータセンターを設定して作成を実行します。

作成

しばらくすると作成をしたリソースグループに、リソースアカウントが表示されます。作成したリソースアカウントを開き、アクセスキーを選択しあmす。

アクセスキー

ここにあるアクセスキーは後ほど利用する形となります。

5.1.2. モジュールの展開

モジュールの展開方法はいくつか用意されています。今回は仮想マシンに構築しているデモ環境を利用するため、Webdeploy を利用せずに手作業で設定していきます。Sitecore のインストールページから、Blob storage のパッケージをダウンロードします。

ダウンロードした zip ファイルを展開します。

ファイルの展開

展開したフォルダにアクセスして、 ContentWebSite を開くことで3つのフォルダが展開されていることがわかります。

website を確認

展開されたファイルを実際の Sitecore の Web サイトにコピーをしていきます。まず、 App_Config - Modules の下に Sitecore.AzureBlobStorage のフォルダをコピーします。

Modules にコピー

続いて App_Data のフォルダに MigrationTransforms のフォルダをコピーします。

App_Data にコピー

最後に bin にある 5 つのファイルをコピーします。

bin のファイルをコピー

ここから接続の設定になります。まず、App_configConnection.Strings.config に以下の1行を追加してください。:

<add name="azureblob" connectionString="<AzureStorageConnectionString>"/>

ここで設定する AzureStorageConnectionString は既に作成をしている Azure Storage の接続文字列となります。

続いてストレージ名を記載します。この設定は App_ConfigModulesSitecore.AzureBlobStorageSitecore.AzureBlobStorage.config が設定ファイルになります。ファイルを開くと以下の記載があります。

<param name="containerName">blobcontainer</param>

containerName がコンテナの名前となります。今回はデフォルトの名前 blobcontainer で作成します。

Azure の管理画面に戻り、ストレージアカウントを開きます。コンテナーの項目をクリックします。:

コンテナーの作成

コンテナーを作成します。

新しいコンテナー

設定はこれで完了となります。

5.1.3. Blob データの移行

ここで紹介している手順は Use the blob migration tool で紹介している手順となります。

すでにメディアライブラリで管理しているファイルを Azure Blob Storage に移行していきます。このための PowerShell のスクリプトが、App_DataMigration に用意されています。

マイグレーションのスクリプト

PowerShell で処理できるように、AzureRM をインストールします。まず、既に入っているかどうかを確認します。入っていなければ、Install-Module コマンドでインストールをします。途中 PSGallery を利用するか?という質問が出てきますので Y を入力して Enter を入れれば AzureRM がインストールされます。

Get-Module -Name AzureRm -ListAvailable
Install-Module -Name AzureRM

インストールが終わったあと、モジュールのインストールを確認します。

Get-Module -Name AzureRm -ListAvailable
AzureRm

これで準備が完了しました。実際に PowerShell のスクリプトのあるフォルダに移動して、以下の1行を実行してください。

.\Invoke-Migration.ps1 -SqlDBConnectionNames @("master", "web") -AzureBlobConnectionName "azureblob" -BlobContainerName "blobcontainer" -Force *>&1 | Tee-Object -FilePath Invoke-Migration.log
Invoke-Migration

処理が進むと、Azure Storage のコンテナにファイルがコピーされていることがわかります。

ストレージにコピー

これにより Sitecore のメディアファイルを Azure のストレージに展開することができました。

5.1.4. 参考動画

ここまでの手順を動画としてまとめました。