はじめに
2009年11月に、Microsoftのクラウド戦略の核となるWindows Azure Platformが正式にリリースされました。そして、2010年1月より商用サービスが開始され、2月より課金が始まります。先行していたGoogleやAmazonに加えてMicrosoftも参入することにより、クラウド時代の流れがいよいよ本格化していくことでしょう。
Windows Azureについての以前の連載「Windows Azureで作成するアプリケーションの基礎」では、CTP(Community Technology Preview)リリースを使用して、Windows AzureやSQL Azureなどの周辺サービスについて説明しサンプルアプリケーションを作成しました。
この新連載では、最新のWindows Azure SDKを使用してWindows Azureアプリケーションを作成し、商用サービスを開始したクラウド上のWindows Azure Platformにアプリケーションを配置し運用する方法等について、順次説明していきます。
対象読者
- クラウド技術に興味がある方
- Windows Azureに興味がある方
- Windows Azureを使用したアプリケーション開発に興味がある方
正式リリースされたWindows Azureの概要と変更点
クラウドやWindows Azureについて耳にするもののあまりよく分からないという読者の方は、まずWindows Azureについての前連載の第1回と第2回の記事を読まれることをお勧めします。クラウド・コンピューティングの基礎やWindows Azure Platformについての概要を理解することができます。
ここでは、正式にリリースされたWindows Azure Platformについての概要を説明します。特に、2009年11月に米国ロサンゼルスで開催されたPDC09(Professional Developer Conference 2009)において発表された変更や新サービスに注目して説明します。
Windows Azure Platformの公式サイトを見ると、現在、Windows Azure Platformには次の3つのプロダクトが正式に含まれています(Windows Azure Platformという名称は、以前のAzure Services Platformから名称が変更されたものです)。
- Windows Azure
- SQL Azure
- Windows Azure platform AppFabric(以降、AppFabric)
なお、以前Windows Azure Platformに含められていたLive Servicesは、現在のところ公式サイトから外されています。また、.NET ServiceはPDC09で新しく発表されたAppFabricに統合されています。
加えて、PDC09ではさらにいくつかの新サービスが発表されました。
- Microsoft Pinpointマーケットプレイス
- コードネーム「Dallas」
さらに、非.NET言語の一層のサポートも発表されています。
Windows Azure Platform公式サイトのWindows Azure Platform and Interoperabilityページを見ると、PHPに加えてJava用のWindows Azure SDKが現在入手可能となっています。また、Windows Azure Tools for EclipseというPHP開発者向けのEclipseプラグインも提供されています。
それでは、前連載のおさらいも兼ねて、Windows Azure Platformに含まれる各サービスについて簡単に説明します。
Windows Azure
Windows Azure Platformの中核をなすクラウドOSです。Windows Server 2008をベースに開発されています。クラウド上の仮想マシンとして提供され、主に3つの要素で構成されています。
- Webロール
- Workerロール
- Windows Azureストレージ
これらの3つの要素について説明します。
Webロール
Webロールは、HTTPリクエストに答えるWindows Azure上のサービスで、基本的にはASP.NET Webアプリケーションと同じものです。ですから、開発者はVisual Studio上でASP.NET Webアプリケーションを作成するのとまったく同じ方法で、Webロールを作成することができます。さらに、既存のASP.NET WebアプリケーションをWebロール化することも容易です。
Workerロール
Workerロールは、Windows Azureの仮想マシン上で実行されるバッググラウンドプロセスを実行するためのサービスで、Webロールのようなユーザーインターフェイスは持ちません。Webロールと連携して、ビジネスロジックの実行や非同期バッチ処理を行うようなケースで主に使用されます。WebロールとWorkerロールのメッセージのやり取りには、次に述べるWindows Azureストレージのキューを使用します。
Windows Azureストレージ
Windows Azureストレージは、Windows Azureに含まれるストレージサービスです。ひとことで言えばクラウド上のファイルシステムと言えますが、文字通りのファイルシステムとは違い物理的なファイルシステムやサーバー構成を意識する必要はありません。
アクセス方法として、HTTP経由のREST(REpresentational State Transfer)によるアクセスと、Windows Azure SDKに含まれるWindows Azure Storage Client Managed Libraryという.NETライブラリを使用した方法があります(コラム「Windows Azure Storage Client Managed Libraryについて」を参照)。
Windows Azureストレージは、次の表1が示すように、3種類のストレージをサポートしています。
ストレージ | 目的 | 構造 |
ブロブ | データ保存 | ファイルシステムのようなシンプルな構造。主にバイナリデータを保存のために使用。 |
テーブル | データ保存 | 非リレーショナルの表形式でデータを保存。エンティティとプロパティで構成。 |
キュー | メッセージ交換 | 非同期のメッセージ交換のために使用。 |
なお、Windows Azureストレージの詳細については、前連載の第3回と第4回をご覧ください。
2009年11月にリリースされたWindows Azure SDKに、Windows Azureストレージへのアクセスを提供するライブラリが正式に含められました。
Windows Azure SDKに付属するサンプルプロジェクトという扱いだったStorageClientプロジェクトが置き換えられ、Windows Azure Storage Client Managed LibraryというライブラリとしてWindows Azure SDKに含められるようになりました。名前空間が変更され、ライブラリの設計にもかなりの変更が加えられています。Windows Azure SDKに付属するC#やVisual Basicの各サンプルプロジェクトも、この新しいライブラリを使用するように変更されています。
前連載の第3回と第4回では、REST APIを直接使用したWindows Azureストレージへのアクセス方法を説明しましたが、新連載では次回以降、Windows Azure Storage Client Managed Libraryを使用したWindows Azureストレージプログラミングの方法を説明する予定です。