Windows Azure におけるセッション管理(Roleをまたがるやつ)
»
私の考えるWindows Azureの魅力の1つに、(Web)システムのスケーラビリティーというか負荷分散機能があります。パワーが必要なときは(ある程度動的に)システムの規模を拡大することができます。
アクセスが増えれば、インスタンス数を増やすか、実行されている仮想マシンのパフォーマンスを上げることで柔軟かつ動的にに負荷に対応することができます。以前も書きましたが、サイジングなどはVSのテスト機能と組み合わせて適正に設定することができます。
はい。めでたしめでたし!
と言いたいところですが、そう簡単に問屋はおろしてくれません。
私の知る限り、AzureのWebRoleは、いわゆるセッションステートフルな負荷分散には対応していません(1つのRoleというかインプロセスでは普通にセッション管理できます)ので、セッションを維持したまま負荷分散を行う場合、Role(プロセス)をまたがったセッション管理をしないといけません。
このためにはプロセスの外側にセッション情報を置いて管理する必要があります。
SDKに付属するサンプルにて、Azureのストレージサービスを利用する方法が紹介されていましたが、せっかくSQL Azureもあるのだし、SQL Azureにセッション情報を溜めさせてと思ってたのですが、その方法が、SQL Azureのチームブログで紹介されていましたので、とりあえずメモ。
http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx
SpecialPR