昨年10月の開発者カンファレンス「PDC10」の後、CTPとしてリリースされていた、Windows Azureアプリケーション向けの分散インメモリー キャッシュ サービス「Windows Azure AppFabric Caching Service」(Azure AppFabric Caching) が、正式リリースされました。
今月上旬のWeb開発者/デザイナー カンファレンス「MIX11」では、Azure AppFabric Cachingが4月中にリリースされるとアナウンスされていましたが、その約束通りのリリースです。
Azure AppFabric Cachingは、メモリー内にデータを保持することで、データの参照/更新を高速化し、バックエンドの永続的なデータ ストア (SQL Azure、Windows Azure Storageなど) の負荷を軽減し、アプリケーションのパフォーマンス/スケーラビリティを向上します。
マイクロソフトは、以前からオンプレミスWindows Server向けのアプリケーション サーバー/ミドルウェア機能群であるWindows Server AppFabricで、Caching機能を提供していました。Azure AppFabric Cachingは、Windows Server AppFabricの Caching機能をベースに、パブリック クラウド/PaaS環境向けに実装したものになります。これは、データベースのSQL ServerとSQL Azureの関係と同様です。
Azure AppFabric Cachingの価格はキャッシュ容量によって決まり、128MBで45ドル/月から4GBで325ドル/月までのバリエーションがあります。今年7月末までは無料ですよ。キャッシュの作成や設定変更は、お馴染みのAzure管理ポータル (https://windows.azure.com/) から行えます。
Azure AppFabric Cachingでは.NETのクライアントAPIが提供されているので、オンプレミス環境も含む任意の.NETアプリケーションからAzure AppFabric Cachingにアクセス可能です。ただし、基本的には、Windows Azure Compute (Web/Worker/VM Role) 上のアプリケーションからのアクセスを想定しています。
Azure AppFabric Cachingのクライアントは、基本的には、キー/バリュー形式のデータを、キャッシュに対してCRUD (追加/取得/更新/削除)操作を行います。キーはString、バリューはシリアライズ可能なObjectです。詳細に興味のある方は、こちらから。
- MSDN Library > Using Basic Cache Methods (Windows Server AppFabric Caching)
- http://msdn.microsoft.com/en-us/library/ee790956.aspx
- Microsoft.ApplicationServer.Caching > DataCache Class > DataCache Methods
- http://msdn.microsoft.com/en-us/library/microsoft.applicationserver.caching.datacache_methods(v=WS.10).aspx
アプリケーション コードから前述のクライアントAPIを利用するパターンに加えて、ASP.NETとの統合も実装されています。ASP.NET向けのSession State Provider、Output Cache Providerを提供しているので、セッション状態や出力キャッシュの格納先としてAzure AppFabric Cachingを利用可能です。
現時点では、Windows Azureでは、フロントのロード バランサーは、(セッション アフィニティを無視して) ラウンド ロビンで背後のWindows Azure Computeインスタンス (典型的にはWeb Roleインスタンス) にHTTPリクエストをルーティングします。セッションを利用するASP.NETアプリケーションの場合、1つのセッションに属する複数のHTTPリクエストが同じインスタンスにルーティングされることが保証されないので、セッション状態をインスタンス外部に格納して、異なるインスタンスから取得可能にする必要があります。
これまでは、セッション状態の格納先としてSQL AzureやWidnows Azure Storage Tableを利用できましたが、新しい選択肢としてAzure AppFabric Cachingが利用可能になった、ということになります。個人的には、公式サポートや機能面を考えると、Azure AppFabric Cachingが最もお勧めです。
- MSDN Library > Using the ASP.NET 4 Caching Providers for AppFabric
- http://msdn.microsoft.com/en-us/library/gg185665.aspx
- MSDNライブラリ > ASP.NET セッション状態の概要
- http://msdn.microsoft.com/ja-jp/library/ms178581.aspx
- MSDNライブラリ > ASP.NET キャッシュ
- http://msdn.microsoft.com/ja-jp/library/xsbfdd8c.aspx
Windows Azure AppFabricの公式ページは、こちら。
- Microsoft > Windows Azure AppFabric
- http://www.microsoft.com/windowsazure/AppFabric/
Azure AppFabricチームのブログでのアナウンスは、こちら。
- Windows Azure AppFabric Team Blog > Windows Azure AppFabric Caching Service Released! (2011/04/28)
- http://blogs.msdn.com/b/windowsazureappfabric/archive/2011/04/28/windows-azure-appfabric-caching-service-released.aspx
上記ブログ エントリを参考にした日本語のブログ エントリは、こちら。
- 蒼の王座 > Windows Azure AppFabricキャッシュサービスをリリース! (2011/04/29)
- http://sqlazure.jp/b/windows-azure/518/
MIX11でのAzure AppFabric Cachingのセッションを、オンラインで視聴できます。
- Channel 9 > MIX11 > “Build Fast Web Applications with Windows Azure AppFabric Caching” (2011/04/13)
- http://channel9.msdn.com/events/MIX/MIX11/SVC01
MSDN Libraryで公開されている、Azure AppFabric CachingのFAQとドキュメント、Windows Server AppFabricのドキュメントは、こちら。
- MSDN Library > AppFabric Caching FAQ
- http://msdn.microsoft.com/en-us/library/gg602420.aspx#CACHING_FAQ
- MSDN Library > Windows Azure AppFabric SDK > Caching Service
- http://msdn.microsoft.com/en-us/library/gg278356.aspx
- MSDN Library > Windows Server AppFabric
- http://msdn.microsoft.com/en-us/library/aa139633.aspx
Azure AppFabric Cachingにアクセスするアプリケーションを作成するためには、Azure AppFabric SDKをインストールしましょう。
- Windows Azure AppFabric SDK V1.0 – April Update (2011/04/28)
- http://go.microsoft.com/fwlink/?LinkId=216119
ハンズオンのためのチュートリアルもあります。
- MSDN > Windows Azure Platform Training Course > Building Windows Azure Applications with the Caching Service
- http://msdn.microsoft.com/en-us/WAZPlatformTrainingCourse_BuildingAppsWithCacheService
このチュートリアルは、Windows Azure Platform Training Kitに含まれているものと同じです。
- Windows Azure Platform Training Kit – April Update (2011/04/18)
- http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&displaylang=en