わんくま同盟 大阪勉強会 #37 で Azure の話を聞いた時に思ったこと

わんくま同盟 大阪勉強会 #37 で、id:waritohutsu さんが、Azure についてのセッションをされていました。
ログに関する注意点(Windows Azure ログ講座第一弾 〜Windows Azure logs〜 - waりとnaはてな日記)や、スケールのさせ方(CPU を増やす or インスタンスを増やす)等の説明が分かりやすく非常に良かったです。


で、セッションの途中に幾つか質問が飛び交ってたのでそれについて思った事/個人的な認識を書いてみます。
※ちなみに懇親会は参加していないので、そちらでどんな話しをされていたのかは知りません。

  • SQL Azure Data Sync ってデータ転送量どうなんの?

SQL Azure Data Sync ってのは、オンプレミス な SQL ServerSQL Azure のデータを同期とる機構です。
Windows Azure Services | Windows Azure
SQL Database | Windows Azure
まだ、正式リリースしていないので、課金体系は不明ですが普通にデータ転送量取られるのかなぁ?って感じでした。実際どうなるんでしょうね?
SDK をインストールしたけど、全然触ってないのでどう動くのかとかは知りません。。

  • Web ロールと Worker ロールどう違うの?

Web ロールが IIS で Worker ロールがコマンドプロンプト な感じの認識でOK?

  • Worker ロールって何に使うの?

Thumbnails デモ*1の紹介中に Worker ロールいらなくね?みたいな感じの質問が出ました。サムネイルを作る位では要らないかもしれませんが重たい処理をするときには必要ですよ!って感じでした。
ASP.NET で重たい処理*2を行う時って、スレッド使って行う*3か、別のプロセス or Windows Service 使う等の選択肢があると思いますが、
この別のプロセス or Windows Service でやってた事を Worker ロールに置き換える…っていうのが自分の中ではシックリくるかなぁ。

  • Worker ロールは何でキューを見続けてるの?いきなりブロブ見た方が早くない?

これまた、Thumbnails デモの紹介中のことです。
何でキューを使っているかと言うと、Worker ロール側ではどの名前のブロブにデータが入っているか分からないため、いきなりブロブを見る事が出来ません。
Web ロール側でブロブにデータを入れる際に、名前を付けていますが Worker ロール側では、その名前がわからないのでキューを使ってブロブの名前を渡しているっていう動きをしています。

  • 直接ロール指定で命令送れないの?

ストレージ(キュー)を通して連携してるけど、Web ロールから Worker ロールに直接投げれないの?って質問がありました。
これは出来たはずです。キーワードは、「ロール間通信 (Inter-Role Communication)」です。
但し、実際に動かして試してないのでどこまで出来るのかは知りません。試さないとダメだなぁ。

*1:Windows Azure SDK の サンプルに含まれてるアレ

*2:例えば、ファイルをアップロードして色々計算して取り込む様な処理や、締め処理等

*3:不安定/IISのリサイクルの影響を受ける