Memcache アプリを Azure Managed Cache Service と共に実行する

重要

Microsoft では、すべての新しい開発で Azure Redis Cache を使用することをお勧めします。 Azure Cache オファリングの選択に関する最新のドキュメントとガイダンスについては、「自分に適した Azure Cache オファリング」を参照してください。

Managed Cache Serviceでは、Memcache クライアント shim を提供することで、ロールベースのCloud Services Memcache クライアント アプリケーションをManaged Cache Service使用するように移行できます。 このトピックでは、この shim を使用して、Memcache クライアント アプリケーションでManaged Cache Serviceを使用できるようにする方法について説明します。

このセクションの内容

  • Memcache の概要

  • Memcache プロトコルのサポート

  • Memcache クライアント Shim

  • Azure アプリケーション用にクライアント Shim をデプロイする方法

Memcache の概要

Memcache は、データベースから負荷を取り除くことにより、規模の大きい Web アプリケーションの高速化に役立つ、分散型のインメモリ キャッシュ ソリューションです。 Memcache はインターネットのさまざまな大規模 Web サイトで使われており、革新的な方法で他の技術と統合されています。

Azure は、既に Memcache を実装しているお客様が簡単に Azure に移行できるように、Memcache プロトコルをサポートしています。 アプリケーションで既に Memcache が使用されている場合、このコードを新しいコードに置き換える必要はありません。

Memcache を使用したManaged Cache Serviceの実行は、たとえば、Memcache 自体を worker ロールで実行するよりも優れたオプションです。 これは、Managed Cache Serviceには、グレースフル シャットダウン、高可用性、ローカル キャッシュ、通知、データ整合性、高可用性 (HA)、クライアントに対して透過的な簡単なスケールアップとスケールダウンなどの付加価値機能が用意されているためです。 たとえば、Memcache を使用したManaged Cache Serviceでのサーバー ハッシュスキームとパーティション管理は、負荷分散とデータ整合性の維持に役立ちます。

Memcache プロトコルのサポート

Managed Cache Serviceでは、Memcache ワイヤ プロトコルがサポートされます。 このプロトコルには、バイナリ バージョンとテキスト バージョンの 2 つのバージョンがあります。

Memcache クライアントには Azure との互換性を求めるべきです。 Managed Cache Serviceは、他の Memcache 実装がサポートするほぼすべての API をサポートしています。

そのため、ユーザーが Azure に Memcache アプリケーションを導入し、Azure の Memcache 実装でそのアプリケーションをポイントすれば、アプリケーションの追加変更なしで、そのまま動作を続けるはずです。

Memcache クライアント Shim

Memcache クライアント shim は、キャッシュにアクセスするクライアントにインストールされます。 一般的に、これはアプリケーションそのものを持つ Azure ロールです。 クライアント shim はローカル キャッシュをサポートします。

この shim は変換レイヤーです。 Memcache クライアント呼び出しが Managed Cache Service API に変換されます。 shim には、Memcache プロトコル ハンドラーと Managed Cache Service クライアントの 2 つの部分があります。 shim (翻訳レイヤー) は、Managed Cache Service API の Get 呼び出しと Put 呼び出しが行われる場所に関して、クライアント自体にインストールされます。

Memcache クライアントが、Memcache サーバーとしてローカルホストをポイントしている場合、memcache 操作は、最初に shim のローカル インスタンスによって処理されます。 shim によって、操作がキャッシュ API 要求に変換され、Managed Cache Serviceに送信されます。

Azure アプリケーション用にクライアント Shim をデプロイする方法

注意

開始する前に、キャッシュにキャッシュ エンドポイントとアクセス キーがあることを確認します。 キャッシュの作成の詳細については、「方法: Azure Managed Cache Serviceのキャッシュを作成する」を参照してください。 アクセス キーの詳細については、「アクセス キー を使用したアクセスの制御」を参照してください。

  1. Memcache クライアントのあるロールで、ロール名を右クリックし、[ライブラリ パッケージ参照の追加] を選択し、NuGet ウィンドウを起動します。

  2. [Azure Caching Memcache Shim] を検索します。 この NuGet パッケージをインストールします。

  3. このパッケージは起動タスクを作成し、memcache_default の内部エンドポイントを追加し、それを 11211 にマップし、適切な dataCacheClients セクションを App.config と web.config に追加します。これは [内部エンドポイント] タブで変更できます。

  4. App.configまたはWeb.configの dataCacheClientSection の autoDiscovery 要素と authorizationInfo のアクセス キーに、Managed Cache Service エンドポイントを指定します。

  5. ここで Shim を「ポイントする」ようにクライアントを構成する必要があります。 memcache クライアント構成を編集し、サーバーを「localhost」に設定します。 正しいポート番号を設定する必要もあります (既定値は 11211)。