2009年9月16日,東京都内で開催されたソフトウエア開発者向けイベント「XDev2009」で,マイクロソフト デベロッパー&プラットフォーム統括本部 アーキテクトエバンジェリストの砂金信一郎氏(写真)が登壇し,Windows Azure上にソフトウエア開発環境を構築する際のポイントについて解説した。
「Azureを利用すれば,拡張性・柔軟性が要求されるシステムを,手軽かつリーズナブルな費用で構築できるだけでなく,ソフトウエア開発の生産性を向上できる」と,砂金氏は強調する。
Visual Studioの環境をAzure上に構築する手順は次のようになる。「まず,Windows Azure Platformのデベロッパーセンターにアクセスし,IDを取得して,必要なツール群をダウンロードすればいい。ものの15分もあれば環境を構築できる」(同氏)。.NETを使用してクラウド環境を構築するユーザーには,開発ワークフローを簡素化するアドオン・ソフト「Windows Azure Tools for Microsoft Visual Studio」も用意する。
「Azureが,Amazon EC2に比べて優位な点の1つに,デプロイ(配信)する前にクライアント側でアプリケーションを実行したり,デバッグができたりすることがある。これによって開発の生産性を大きく向上できる」と砂金氏は説明する。Windows Azureの偽装環境をクライアント側に作ることで,手元での動作確認やテスト,デバッグが可能になるからだ。
プログラムが完成したらデプロイする。クラウド・サービスというテンプレートが,ロードバランサの設定から冗長用の待機系サーバーの設定に至るまで,すべて自動で実行する。Azureの状態にもよるが,3~10分で展開が完了するという。
「Visual Basic,C#,PHPなどの言語を使用でき,ASP.NETの経験者であれば問題なく利用できるはず」と砂金氏は語る。その一方で,「唯一,ASP.NETと大きく異なるのは,データ・アクセスの方法。これは注意してほしい」と呼びかける。
Azureは拡張性と可用性を優先し,トランザクションの整合性についてはまだ十分に対応できていない面があるという。そのため,即時性の高いマスターや,集計表の更新処理を必要とするアプリケーションには向かない。
用途に応じ,3つのタイプのストレージを標準で用意する。「TABLE」は,拡張性を最優先にした汎用ストレージで,数テラバイトまで領域を必要とする大規模システムの構築に対応する。「BLOB」は大容量のバイナリを格納でき,動画などのイメージ・データを扱う用途に向く。「QUEUE」は,Webサーバーのロール層の間でデータを受け渡すための一時領域を提供。処理中に問題が起きたときに,30秒~2時間の時間指定でデータの読み出しを可能にする。
「既存の環境から一足飛びにAzureに移行するではなく,段階的に進めることを提案している。例えば,既存の資産を活用してRDBMSの自動管理などに着手してはどうか。それから徐々にいろんなアプリケーション構築に取り組んでほしい」と,砂金氏は講演を締めくくった。