セールス: 1-800-867-1380

In-Role Cache から Azure Managed Cache Service への移行

更新日: 2014年9月

noteメモ
アプリケーションに対して適切な Azure Cache サービスを選択するためのガイダンスについては、「どの Azure Cache を利用すればよいですか。」を参照してください。

インロール キャッシュ を使用する Microsoft Azure Cache アプリケーションの Azure マネージ キャッシュ サービス への移行は、アプリケーションの最小限の変更で実現できます。マネージ キャッシュ サービス は インロール キャッシュ と同じ API を使用しているので、インロール キャッシュ を使用してキャッシュにアクセスしている既存のコードを マネージ キャッシュ サービス で再利用できます。このトピックでは、マネージ キャッシュ サービス を使用するように インロール キャッシュ アプリケーションを移行するために必要な構成とアプリケーションの変更の方法について説明します。

マネージ キャッシュ サービス は次の 3 つのサービスで利用できます。

  • 基本 - 128 MB ~ 1 GB のサイズ (128 MB 単位) の、1 つの既定の名前付きキャッシュを備えたキャッシュ

  • スタンダード - 1 GB から 10 GB のサイズ (1 GB 単位) の、通知と最大 10 個の名前付きキャッシュをサポートするキャッシュ

  • プレミアム - 5 GB から 150 GB のサイズ (5 GB 単位) の、通知、高可用性、および最大 10 個の名前付きキャッシュをサポートするキャッシュ

noteメモ
各サービスは、料金および機能の点で異なります。詳細については、「キャッシュ料金詳細」および「Azure Managed Cache Service のキャッシュ サービス」を参照してください。その他の詳細は、この移行ガイドの次の「Configure the Cache」セクションでも説明しています。

インロール キャッシュ のキャッシュ機能はすべて、マネージ キャッシュ サービス のどのキャッシュ サービスでも使用できます。アプリケーションで通知を使用する場合は、Standard か Basic のいずれかのキャッシュ サービスを選択する必要があります。キャッシュが高可用性対応の場合は、プレミアム キャッシュ サービスを選択する必要があります。移行の最初の作業の 1 つは、マネージ キャッシュ サービス のキャッシュ サービスのうち、アプリケーションで必要となるキャッシュ機能を備え、インロール キャッシュ アプリケーション用と同等の容量を持つものを選ぶことです。

アプリケーションをデプロイしたら、キャッシュのパフォーマンスを監視したり、アプリケーションの要件に応じてスケールを増減させたりできます。パフォーマンスの監視とスケーリングの詳細については、「Azure Managed Cache Service の監視」および「Azure Managed Cache Service のキャッシュのスケーリング」を参照してください。詳細情報

マネージ キャッシュ サービス のキャッシュ インスタンスは、PowerShell スクリプトを使用して作成します。

Important重要
PowerShell コマンドレットを使用して マネージ キャッシュ サービス インスタンスを作成すると、インスタンスは Azure 管理ポータルで表示および構成できるようになります。

  1. Azure PowerShell コマンド ウィンドウを開きます。

    noteメモ
    Azure PowerShell のインストールおよび使用の手順については、「Azure PowerShell のインストールおよび構成方法」を参照してください。

  2. Add-AzureAccount コマンドレットを呼び出して、アカウントに関連付けられたメール アドレスとパスワードを入力します。

    noteメモ
    アカウントの証明書を使用して Azure PowerShell を構成した場合は、この手順を省略できます。Azure PowerShell と Azure アカウントの結び付けの詳細については、「Azure PowerShell のインストールおよび構成方法」を参照してください。詳細情報

  3. New-AzureManagedCache コマンドレットを呼び出して、キャッシュの名前、リージョン、キャッシュ サービス、サイズを指定します。次の例では、128 MB の基本キャッシュが contosocache という名前で、South Central US リージョンに作成されます。

    New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    
    noteメモ
    キャッシュを作成するときに使用できるパラメーターと値の一覧については、New-AzureManagedCache コマンドレットのドキュメントを参照してください。

  4. PowerShell コマンドレットが呼び出されると、キャッシュが作成されるまでに数分かかる場合があります。キャッシュが作成されると、新しいキャッシュのステータスが [実行中] になり、既定の設定で使い始めることができます。さらに、Azure 管理ポータルで表示および構成できるようになります。

    Azure PowerShell ウィンドウで作成プロセスを監視できます。キャッシュが使用できるようになると、New-AzureManagedCache コマンドレットが、次の例のようなキャッシュ情報を表示します。

    PS C:\> Add-AzureAccount
    VERBOSE: Account "user@domain.com" has been added.
    VERBOSE: Subscription "MySubscription" is selected as the default subscription.
    VERBOSE: To view all the subscriptions, please use Get-AzureSubscription.
    VERBOSE: To switch to a different subscription, please use Select-AzureSubscription.
    PS C:\> New-AzureManagedCache -Name contosocache -Location "South Central US" -Sku Basic -Memory 128MB
    VERBOSE: Intializing parameters...
    VERBOSE: Creating prerequisites...
    VERBOSE: Verify cache service name...
    VERBOSE: Creating cache service...
    VERBOSE: Waiting for cache service to be in ready state...
    
    
    Name     : contosocache
    Location : South Central US
    State    : Active
    Sku      : Basic
    Memory   : 128MB
    
    
    
    PS C:\>
    

インロール キャッシュ と マネージ キャッシュ サービス のどちらも名前付きキャッシュがサポートされており、データのさまざまなセットに対して異なるキャッシュ オプションを柔軟に構成できます。マネージ キャッシュ サービス キャッシュにはそれぞれ既定の名前付きキャッシュがあり、スタンダードおよびプレミアムのキャッシュ サービスでは、さらに最大 9 個の名前付きキャッシュを構成できます。各名前付きキャッシュには、高可用性、通知、カスタム削除ポリシー、カスタム有効期限ポリシーなど、独自の設定があります。名前付きキャッシュの設定は、管理ポータルの [キャッシュ] の [構成] タブで構成します。

Windows Azure キャッシュ サービスの名前付きキャッシュ

インロール キャッシュ と マネージ キャッシュ サービス のキャッシュ機能は同じですが、次の表に示すような、わずかな違いがあります。

 

機能 マネージ キャッシュ サービスでのサポート インロール キャッシュでのサポート

名前

既定のキャッシュが構成され、スタンダードおよびプレミアムのキャッシュ サービスでは、必要に応じてさらに最大 9 個の名前付きキャッシュを構成できます。

既定のキャッシュが構成され、追加の名前付きキャッシュを構成できます。

高可用性

高可用性はプレミアムのキャッシュ オファリングでのみ利用でき、基本または標準のキャッシュ オファリングでは利用できません。詳細については、TechNet の「 Azure Managed Cache Service のキャッシュ サービス.

高可用性は、どの インロール キャッシュ トポロジに対しても有効にすることができます。

通知

通知はスタンダードとプレミアムのキャッシュ サービスで利用できますが、基本キャッシュ サービスでは利用できません。詳細については、TechNet の「 Azure Managed Cache Service のキャッシュ サービス.

通知は、どの インロール キャッシュ トポロジに対しても有効にすることができます。

削除ポリシー

選択項目は、LRU (最も長く使用していない) アルゴリズムを使用して削除するアイテムを決定する [有効] か、または [無効] です。既定値は [無効] です。

選択項目は、[LRU] (最も長く使用していない) か、または [なし] です。既定値は [LRU] です。

時間 (分)

マネージ キャッシュ サービス では、設定の名前は [時間 (分)] です。

インロール キャッシュ では、設定の名前は [Time to Live (分)] です。

有効期限ポリシー

この設定の名前は [有効期限ポリシー] で、指定できる値は [なし]、[絶対]、[スライディング] の 3 つです。これらは、インロール キャッシュ の [有効期限ポリシー] 設定に対応しています。

この設定の名前は [有効期限ポリシー] で、指定できる値は [なし]、[絶対]、[スライディング ウィンドウ]

インロール キャッシュ から マネージ キャッシュ サービス に移行するには、インロール キャッシュ キャッシュ クラスターのすべての名前付きキャッシュを新しい マネージ キャッシュ サービス キャッシュ内に再作成します。

新しい マネージ キャッシュ サービス キャッシュを構成した後、次に、インロール キャッシュ をホストしていたロールからキャッシュ処理機能を削除します。この手順は、インロール キャッシュ のキャッシュ クラスターのトポロジによって異なります。

専用ロール キャッシュ クラスターを削除するには、キャッシュ ワーカー ロール プロジェクトを Visual Studio ソリューションから、およびクラウド サービス プロジェクトの [ロール] フォルダーから削除する必要があります。

  1. ソリューション エクスプローラーで、クラウド サービス プロジェクトの [ロール] フォルダーにあるキャッシュ ワーカー ロールを右クリックして、[削除] をクリックします。

    キャッシュ ワーカー ロールの削除
  2. ソリューション エクスプローラーで、ワーカー ロール プロジェクトを右クリックして [削除] をクリックします。

Web ロールまたはワーカー ロールの併置型ロール キャッシュ機能を無効にするには、ロール プロパティの [キャッシュ] タブにある [キャッシュ] 設定をオフにする必要があります。

  1. ソリューション エクスプローラーで、クラウド サービス プロジェクト内のロールを右クリックして [プロパティ] をクリックします。

    キャッシュ ロール プロパティ メニュー項目
  2. [キャッシュ] タブに切り替えて、[キャッシュを有効にする] チェック ボックスをオフにし、Ctrl キーを押しながら S キーを押して保存します。

    共存ロール キャッシュ設定を無効にする

キャッシュを作成および構成したら、次の手順では、キャッシュ クライアントがキャッシュにアクセスできるように、必要な構成と参照を追加します。マネージ キャッシュ サービス は次のクライアントをサポートします。

  • Azure の Web サイト

  • Azure クラウド サービス Web ロールとワーカー ロール

  • Azure 仮想マシン

noteメモ
インロール キャッシュ プロジェクトで既に最新の SDK を使用している場合は、必要な作業はキャッシュ クライアント構成を更新することだけです。下記の手順を省略し、「Cache Service を使用するようにキャッシュ クライアントの構成を更新する」で説明する手順に従ってください。

インロール キャッシュ プロジェクトで SDK 1.8 ~ 2.0 を使用している場合は、Caching NuGet パッケージを削除し、残っているキャッシュ クライアント構成がある場合は削除してから、最新の Azure SDK (現時点では 2.1) をインストールする必要があります。SDK をアップグレードした後で、最新の Caching NuGet パッケージをインストールして構成します。キャッシュ クライアントを構成するには、各キャッシュ クライアントに対して次の手順を実行します。

マネージ キャッシュ サービス のクライアント アプリケーションを構成する前に、既存の インロール キャッシュ の構成とアセンブリ参照を削除する必要があります。このようにするには、Caching NuGet パッケージをアンインストールします。

インロール キャッシュ NuGet パッケージをアンインストールするには、ソリューション エクスプローラーでクライアント プロジェクトを右クリックし、[NuGet パッケージの管理] をクリックします。[インストール済みのパッケージ] ノードを選択し、[インストール済みパッケージの検索] ボックスに「キャッシュ」と入力します。[Azure Shared Caching] を選択し、[アンインストール] をクリックして [閉じる] をクリックします。

noteメモ
次のスクリーンショットでは、NuGet パッケージのバージョンは 2.1.0.0 です。これ以降のバージョンがインストールされている場合は、このステップを省略してかまいません。このステップを実行する必要があるのは、NuGet パッケージのバージョンが 1.8.* または 2.0.* の場合だけです。

インロール キャッシュ NuGet パッケージのアンインストール

インロール キャッシュ NuGet パッケージをアンインストールすると、インロール キャッシュ アセンブリと、クライアント アプリケーションの app.config または web.config の インロール キャッシュ エントリが削除されます。一部のカスタマイズした設定は NuGet パッケージをアンインストールしても削除されない場合があるため、web.config または app.config を開き、次の要素が完全に削除されていることを確認します。

  • dataCacheClients エントリが configSections 要素から削除されていることを確認します。configSections 要素全体を削除しないでください。dataCacheClients エントリ (存在する場合) のみを削除します。

    <configSections>
      <!-- Existing sections omitted for clarity. -->
      <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
    </configSections>
    
  • dataCacheClients セクションが削除されていることを確認します。dataCacheClients セクションは次に示す例のようになります。

    <dataCacheClients>
      <dataCacheClient name="default" channelOpenTimeout="0">
        <autoDiscover isEnabled="true" identifier="CacheWorker" />
      </dataCacheClient>
    </dataCacheClients>
    

インロール キャッシュ の構成が削除されたら、この後の「Caching NuGet パッケージを使用してキャッシュ クライアントを構成する」セクションの説明に従ってキャッシュ クライアントを構成することができます。

マネージ キャッシュ サービス には、キャッシュ クライアントがキャッシュにアクセスできるようにするために必要な構成およびアセンブリ参照を追加する NuGet パッケージが用意されています。

Important重要
マネージ キャッシュ サービス NuGet パッケージを使用してキャッシュ クライアントを構成する前に、web.config または app.config から インロール キャッシュ の構成が完全に削除されていることを確認します (この前のセクションを参照)。

Important重要
これらの手順を実行するには、最新の NuGet Package Manager (Version 2.2.* 以降) が必要です。最新の NuGet Package Manager をインストールするには、「NuGet パッケージ マネージャー」を参照してください。

マネージ キャッシュ サービス NuGet パッケージを使用するには、ソリューション エクスプローラーでクライアント プロジェクトを右クリックし、[NuGet パッケージの管理] をクリックします。

[Azure Caching] を選択し、[インストール] をクリックし、[同意する] をクリックします。パッケージがクライアント プロジェクトにインストールされたら、[閉じる] をクリックして [NuGet パッケージの管理] ウィンドウを閉じます。

noteメモ
一覧に [Azure Caching] が表示されない場合は、[オンラインで検索] ボックスに「WindowsAzure.Caching」と入力します。

Windows Azure キャッシュ NuGet パッケージ

マネージ キャッシュ サービス NuGet パッケージは、クライアント プロジェクトにインストールされると、クライアント アプリケーションがキャッシュにアクセスできるように、必要な構成およびアセンブリ参照を追加します。

プロジェクトの web.config または app.config に、いくつかのアイテムが追加されます。

  1. configSectionsdataCacheClientscacheDiagnostics という 2 つのセクションが追加されます。

    <!-- Non-cache sections omitted for space -->
      <configSections>
        <section name="dataCacheClients" 
            type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
    
        <section name="cacheDiagnostics" 
            type="Microsoft.ApplicationServer.Caching.AzureCommon.DiagnosticsConfigurationSection, Microsoft.ApplicationServer.Caching.AzureCommon" 
            allowLocation="true" 
            allowDefinition="Everywhere" />
      </configSections>
    
  2. dataCacheClients セクションが configuration セクションに追加されます。

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="[Cache role name or Service Endpoint]" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
    [Cache role name or Service Endpoint] を管理ポータルのキャッシュ ダッシュボードに表示されるエンドポイント URL に置き換えます。

    Windows Azure キャッシュ サービス用エンドポイント URL
    この例では、キャッシュの名前は applicationcache、エンドポイント URL は applicationcache.cache.windows.net です。

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
    securityProperties セクションのコメントを解除し、[Authentication Key] をプライマリ認証キーで置き換えます。

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    認証キーは、管理ポータルで確認できます。キャッシュ ダッシュボードで [キーの管理] をクリックしてください。アクセス キーについて、および sslEnabled 属性でキャッシュ通信のセキュリティを保護する方法の詳細情報詳細情報、「Azure Managed Cache Service のセキュリティ モデル」を参照してください。

    Windows Azure キャッシュ サービス用のアクセス キーの管理
    Warning警告
    これらの設定を正しく構成しないと、クライアントはキャッシュにアクセスできません。

クラウド サービス プロジェクトの場合は、マネージ キャッシュ サービス NuGet パッケージをインストールすると、ClientDiagnosticLevel 設定も ServiceConfiguration.cscfg 内のキャッシュ クライアント ロールの ConfigurationSettings に追加されます。次の例は、ServiceConfiguration.cscfg ファイルの WebRole1 セクションであり、ClientDiagnosticLevel は 1 です。これは既定の ClientDiagnosticLevel です。

<Role name="WebRole1">
  <Instances count="1" />
  <ConfigurationSettings>
    <!-- Other settings omitted for space... -->
    <Setting name="Microsoft.WindowsAzure.Plugins.Caching.ClientDiagnosticLevel" value="1" />
  </ConfigurationSettings>
</Role>
noteメモ
キャッシュ診断レベル詳細情報、「Azure Managed Cache Service の ClientDiagnosticLevel について」を参照してください。

必要な構成の追加に加えて、マネージ キャッシュ サービス NuGet パッケージは以下のアセンブリ参照も追加します。

  • Microsoft.ApplicationServer.Caching.Client.dll

  • Microsoft.ApplicationServer.Caching.Core.dll

  • Microsoft.ApplicationServer.Caching.AzureCommon.dll

  • Microsoft.ApplicationServer.Caching.AzureClientHelper.dll

  • Microsoft.WindowsFabric.Common.dll

  • Microsoft.WindowsFabric.Data.Common.dll

プロジェクトが Web プロジェクトである場合は、次のアセンブリ参照も追加されます。

  • Microsoft.Web.DistributedCache.dll

noteメモ
マネージ キャッシュ サービス と インロール キャッシュ は同じ API を共有しており、アセンブリ名も同じですが、アセンブリ自体は異なり、別の場所にあります。マネージ キャッシュ サービス NuGet パッケージは、インロール キャッシュ のアセンブリ参照を削除し、正しい マネージ キャッシュ サービス アセンブリ参照を追加します。マネージ キャッシュ サービス アセンブリは、C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.1\ref\Caching フォルダーにあります。

インロール キャッシュ プロジェクトで既に最新の SDK を使用している場合に必要な作業は、新しい マネージ キャッシュ サービス キャッシュを参照するようにキャッシュ クライアントの構成を更新することだけです。

  1. キャッシュ クライアント プロジェクトの web.config または app.config を開いて、dataCacheClients セクションを見つけます。

    <!-- Non-cache sections omitted for space -->
      <dataCacheClients>
        <dataCacheClient name="default">
          <!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
          <!--To use the Windows Azure Caching Service, set identifier to be the endpoint of the cache cluster -->
          <autoDiscover
            isEnabled="true" 
            identifier="MyCacheWorkerRole" />
          <!--<localCache isEnabled="true" sync="TimeoutBased" objectCount="100000" ttlValue="300" />-->
          <!--Use this section to specify security settings for connecting to your cache. 
              This section is not required if your cache is hosted on a role that is a part 
              of your cloud service. -->
          <!--<securityProperties mode="Message" sslEnabled="false">
            <messageSecurity authorizationInfo="[Authentication Key]" />
          </securityProperties>-->
        </dataCacheClient>
      </dataCacheClients>
    
  2. autoDiscover セクションの identifier 属性で指定されている インロール キャッシュ クラスターのロール名を、マネージ キャッシュ サービス キャッシュのエンドポイント URL の名前で置き換えます。エンドポイント URL は、管理ポータルのキャッシュ ダッシュボードに表示されます。

    Windows Azure キャッシュ サービス用エンドポイント URL
    この例では、キャッシュの名前は applicationcache、エンドポイント URL は applicationcache.cache.windows.net です。

    <autoDiscover isEnabled="true" identifier="applicationcache.cache.windows.net" />
    
  3. securityProperties セクションをコメント解除し、[Authentication Key] を認証キーで置き換えます。

    <!--Use this section to specify security settings for connecting to your cache. 
        This section is not required if your cache is hosted on a role that is a part 
        of your cloud service. -->
    <!--<securityProperties mode="Message" sslEnabled="false">
      <messageSecurity authorizationInfo="[Authentication Key]" />
    </securityProperties>-->
    
    
    認証キーを見つけるには、管理ポータルでキャッシュ ダッシュボードの [アクセス キー] をクリックします。

    Windows Azure キャッシュ サービス用のアクセス キーの管理

Configure the Cache Clients」の手順に従って ASP.NET Web プロジェクトを インロール キャッシュ から マネージ キャッシュ サービス に移行すると、ASP.NET セッション状態やページ出力キャッシュのキャッシュへの格納を有効にするために必要な変更は最小限で済みます。ASP.NET セッション状態のキャッシュへの格納を有効にするには、system.webweb.config に次のセクションを追加します。

<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
  <providers>
    <add name="AppFabricCacheSessionStoreProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" useBlobMode="true" dataCacheClientName="default" />
  </providers>
</sessionState>
noteメモ
ASP.NET Web ロールが キャッシュ のセッション状態プロバイダーを使用するように既に構成されている場合、このセクションは既に存在していて、変更は必要ありません。

cacheName を更新して、セッション状態を保持するキャッシュを指定します。既定のキャッシュを指定するには、default を使用します。

ページ出力 Caching のキャッシュへの格納を有効にするには、system.web に次のセクションを追加します。

<caching>
  <outputCache defaultProvider="DistributedCache">
    <providers>
      <add name="DistributedCache" type="Microsoft.Web.DistributedCache.DistributedCacheOutputCacheProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" />
    </providers>
  </outputCache>
</caching>
noteメモ
ASP.NET Web ロールが キャッシュ の出力キャッシュ プロバイダーを使用するように既に構成されている場合、このセクションは既に存在していて、変更は必要ありません。

cacheName を更新して、セッション状態を保持するキャッシュを指定します。既定のキャッシュを指定するには、default を使用します。

出力をキャッシュする各ページに、OutputCache ディレクティブを追加します。

<%@ OutputCache Duration="60" VaryByParam="*" %>

この例では、キャッシュされたページ データはキャッシュに 60 秒残り、ページの別のバージョンが各パラメーターの組み合わせに対してキャッシュされます。使用可能なオプション詳細情報、「@ OutputCache 」を参照してください。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft