Windows AzureのWeb Roleでセッションを共有する

紆余曲折ありましたが(?)、Windows Azure上のWeb Roleでセッションを共有する方法を簡単に(いい加減に)まとめたいと思います。

  ASP.NET標準 ASP.NET標準 MSDN Code Gallaryのセッションプロバイダ ASP.NET Univarsal Providers High Performance Session State Provider Windows Azure AppFabric Caching
ストア メモリ(InProc) SQL Azure Azure Storage Table SQL Azure SQL Azure Windows Azure AppFabric Caching
作成者 MS MS MS? MS @takepara
@kazuk
MS
SLA 無(ストアはある) 無(ストアはある) 無(ストアはある) 無(ストアはある)
特徴 冗長化・負荷分散しない漢向け 削除をなんとかしたら使えないことはない Table使うので安い 新入り。そつなく利用可。 自作上等。ASP.NET Universal Providerの残念なところを解消 大規模で本気出すなら商用サービスだよね
メリット お手軽高速 お手軽 お手軽で安い? お手軽。RoleやMembershipも使える お手軽 高速。一番早い。
デメリット 冗長化されない・負荷分散されない セッションが削除されない セッションが削除されない。遅い。 セッション削除に難あり 自家製 お金。
追加コスト 無し DB分必要 低(SQL Azureよりは安い) DB分必要 DB分必要 高め(128MB/月で3,933.45円)
パフォーマンス 中の上
その他 パフォーマンスカウンタが付く セッション数の把握はDB見れば可 よくわからない セッション数の把握はDB見れば可 セッション数の把握はDB見れば可 ざっくりした合計セッションサイズがある程度わかる(ただしリアルタイムでは把握できない?)

 

という感じで役に立つかどうかわかりませんがまとめました。いろいろ要件にあわせて選んでくださいませ。

冗長化いらないならInProcとか。
最低限負荷分散したいけど小規模だしコストかけたくないなぁとかならAzure Storage Tableとか。
それなりにちゃんと使いたいとかならHighPerformanceSessionStateProviderとか。
いやー自分で面倒みるの大変だよとかならASP.NET Univarsal Providersとか。
大規模で性能いるんだよお金はあるぜとかならAzure AppFabric Cachingとか。

まぁ他にもMemcached使ったり、自前で負荷分散も対応したInMemoryなプロバイダ作ってもいいでしょうし。

お好みでどうぞ!

Windows AzureのWeb Roleでセッションを共有する」への2件のフィードバック

  1. ピンバック: Webアプリのセッション管理 / Azure Plugin for Eclipseのセッション アフィニティ « S/N Ratio (by SATO Naoki)

  2. ピンバック: Windows Azure Tools for Visual Studio 1.4 と Storage Analytics の紹介~クラウドカバー Episode 54 - Something about Development Technology :-) - Site Home - MSDN Blogs

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中