Part 2. Windows Azure Platform 概要 その1


さて、Part 1. のエントリでは、マイクロソフトのクラウドコンピューティング戦略である “S+S” の全体像、そしてその中での Windows Azure Platform の位置づけについて解説しました。要点をまとめると、以下のようになります。

  • マイクロソフトのクラウドコンピューティング戦略は、オンプレミス型のソフトウェアと、クラウド型のサービスとを上手に組み合わせて、最適なシステムを構築する、というものである。
  • Windows Azure Platform とは、マイクロソフトによる PaaS サービスである。
  • ユーザは、Windows Azure Platform 上に、ユーザアプリケーションを載せて動作させることができる。

Part 2. となる本エントリでは、Windows Azure Platform の概要について解説します。おおまかなトピックは以下の通りです。

  • Windows Azure Platform とは何か
  • Windows Azure Platform の主要構成要素
    ① Windows Azure コンピュートサービス 
    ② SQL Azure データベースサービス 
    ③ Windows Azure ストレージサービス
  • 開発上の注意点

では、順番に見ていきましょう。

[Windows Azure Platform とは何か]

Windows Azure Platform とは、ユーザが開発したカスタムアプリケーションを動作させることができる、PaaS サービスです。Web, DB から構成される典型的な Web アプリケーションを乗せて使うことができる他、TCP/IP 通信を受け付けることが可能なアプリケーションサーバなどとしても利用できるように作られています。概念図を以下に示します。

image

Windows Azure Platform の主要な構成要素は以下の 3 つです。

  • Windows Azure コンピュートサービス
  • SQL Azure データベースサービス
  • Windows Azure ストレージサービス

さらに、これら以外の周辺的なサービスとして、Windows Azure AppFabric があり、さらに今後、Windows Azure VM Role や System Center Azure などの提供が計画されています(詳細や時期については不明)。これらのサービスを総称して、Windows Azure プラットフォームと呼びます

※ (注意) 単純に “Windows Azure” または “Azure” という用語を使った場合には、① Windows Azure コンピュートサービスのみを指す場合、② Windows Azure コンピュートサービスと Windows Azure ストレージサービスの組み合わせを指す場合、③ Windows Azure Platform 全体を指す場合、の 3 通りの意味があり、混乱を招きます。本エントリでは混乱や誤解を避けるため、”Windows Azure” または “Azure” といった簡略用語を避け、きちんとした用語で解説したいと思います。

さて、自社開発アプリケーションを乗せるプラットフォームとして Windows Azure Platform を見た場合には、以下のような特徴(メリット)があります。

  • .NET Framework や Visual Studio を使った開発ができる。
    もちろん、 Windows Azure 特有の開発ルールや作法を守る必要はありますが、開発言語やツールなどをゼロから覚え直す必要はありません。これは大きなメリットです。
  • 煩わしいハードウェア/ミドルウェア運用から解放される。
    PaaS 型サービスなので当たり前なのですが、実際のところ、SQL Server などのミドルウェアの高可用運用は非常に大変です。特に SQL Azure データベースサービスに関しては、容量制限などはあるものの、99.9% (月間ダウンタイムが約 5 分)のデータベースを安価に利用できるというメリットは大きいと言えるでしょう。
  • 利用に応じた課金がなされる。
    これも PaaS 型サービスなので当たり前ですが、初期コストゼロ、繁忙期や混雑時間帯のみリソース増強を行うことができる、というのが大きな特徴です。例えばピザ屋さんなどの Web サイトでは、土日、あるいは夕方などにトラフィックが集中しますが、ピークトラフィックに併せてインフラを設計・保有すると、TCO が肥大化しやすくなります。Windows Azure Platform を利用すると、動的にサーバ数の増減を行うことができ、さらに利用時間に応じた課金となるため、相対的に安価にシステムを構築・運用できます。

もちろん、Windows Azure Platform にも弱点や難点はありますし、現在はできないことも多数あります。これらについては、「開発上の注意点」の項で解説することにしたいと思います。

なお、CTP の頃はデータセンタがアメリカ 2 拠点にしかありませんでしたが、2010 年からはアジア 2 拠点、ヨーロッパ 2 拠点がオープンしました。これに加えて、CDN (Content Delivery Network)が利用可能です。

image

※ (参考) 大規模システムやミッションクリティカルシステムに Windows Azure Platform を利用したい場合、設計上、Windows Azure コンピュートサービスと SQL Azure データベースに関しては、Geo-Replication (拠点またがりの自動複製)が行われない、という点に注意しておく必要があります。つまり、データセンタのディザスタ対策が自動的に行われるわけではありませんので、必要であれば自力で対処する必要があります。一方、Windows Azure ストレージサービスに関しては、同一地域内の 2 つのデータセンタ間(例えば香港とシンガポール間)での Geo-Replication が行われるようになっています。同一地域内とはいえ、物理的な距離としてはかなり離れていますので、ディザスタ対応がなされているとみなせるでしょう。

[Windows Azure Platform の主要構成要素]

さて、Windows Azure Platform 上に自社アプリを開発して乗せる場合には、主に以下の 3 つのサービスを利用します。

  • Windows Azure コンピュートサービス(Web ロール、Worker ロール)
  • SQL Azure データベースサービス
  • Windows Azure ストレージサービス

image

ものすごくおおざっぱに言うと、以下のように理解するとよいと思います。(と、こんな乱暴に書くとマイクロソフトの中の人たちに怒られそうですが…;)

  • Windows Azure コンピュートサービス : 要するに「Web サーバ」
  • SQL Azure データベースサービス : 要するに「DB サーバ」
  • Windows Azure ストレージサービス : 要するに「ネットワークファイル共有」

一般に、Web アプリケーションを動作させる場合には、Web サーバと DB サーバが必要になりますが、それぞれに対応するものが Windows Azure コンピュートサービスと、SQL Azure データベースサービスになります。そして、それとは別に、ログファイルを記録したり、巨大なデータファイルなどを格納しておくディスク領域(ネットワークファイル共有)が必要になる場合がありますが、それを担うのが Windows Azure ストレージサービスである、と考えてください。

※ (参考) Windows Azure Platform には、これらのサービス以外にも、Windows Azure AppFabric と呼ばれるサービスがあります。実際のシステム構築では、AppFabric に含まれる .NET サービスバスと呼ばれる機能が非常に重要になるのが、今回のエントリでは解説しません。

※ (参考) Windows Azure コンピュートサービスには、大別すると、PaaS 型のサービス(Web ロールおよび Worker ロール)と、IaaS 型のサービス(VM ロール)の 2 種類があります。VM ロールに関しては、現時点ではリリースされておらず、また現時点では詳細な仕様も明らかにされていないこと、また本エントリでは PaaS 型サービスのみを取り扱いたいと思いますので、VM ロールについては除外して解説します。

以下に、それぞれの構成要素についての概要を解説していきます。

※ エントリが長いので分割しました。その 2 に続きます。


Comments (1)

  1. Ryo より:

    煩わしいハードウェア/ミドルウェア運用から解放されるのところで、99.9% (月間ダウンタイムが約 5 分)と記載されておりますが、24時間×60分×30日×0.001は43.2分であると思います。0.0001にすると4.32分でほぼ5分ですが、この場合は99.99%の信頼性です。

    エンタープライズではスリーナインの信頼度ではまだ厳しいですよね。

Skip to main content