連載
» 2012年02月06日 12時00分 公開

AWSとAzure、まずはプロフィールを比較するPHP開発で使える2大クラウドを徹底検証(1)(2/3 ページ)

[岡本隆史, 勇大地,@IT]

Windows Azure Platformとは

 Windows Azure Platfromは、Microsoftの提供するクラウドサービスであり、オンプレミスや他のクラウドサービスとの連携や、オンプレミスの既存アプリケーションの意向が容易な点が特徴です。仮想マシンのリソースを提供するコンピュートサービス や クラウドストレージであるストレージサービス等、クラウドサービスの基本的な機能をはじめ、PaaS サービスを提供します。

 PaaS としてのサービス以外にも、Hyper-Vのイメージをそのまま利用できるVMロール、クラウド上で利用できるRDBのSQL Azure、データセンタ間をまたいだディザスタリカバリが可能なWindows Azure Traffic Manager、他のクラウドサービスやオンプレミスとの連携を可能とする Windows Azure AppFabric等のサービスも提供しています。特に、2011年12月の更新では Java、PHP、Node.jsへの対応をはじめ、OSSとの連携を大幅に強化しました。.NET Frameworkを利用した PaaSとしての開発だけでなく、IaaS としてOSSを利用した開発も可能になりました。

 次に、 Windows Azure Platformで PHP開発を行う際に利用できる機能を紹介します。

Windows Azureの基本機能、コンピュートサービス/ストレージサービス

 コンピュートサービスは、開発者に仮想マシンのリソースを提供するサービスです。仮想マシンのスペックは、あらかじめMicrosoftが定義した5段階から選ぶことが可能であり、「ロール」と呼ばれる種類の異なる仮想マシンを利用可能です。ロールにはHyper-Vのイメージを一から構築する自由度の高い「VMロール」、OSと.NET Frameworkがセットアップ済みである 「Workerロール」、OSと .NET FrameworkとIISがセットアップ済みである 「Webロール」が存在します。VMロールを除く、WebロールとWorkerロールはOSやミドルウェア.(NET FrameworkやIIS等)のアップデートが自動的に行われるため、開発者はアプリケーションの開発にのみ注力することが可能です。

 ストレージサービスはドライブ、ブロブ、テーブル、キューという4種類のサービスを提供しています。通常のNTFSファイルシステムと同様に利用可能なドライブ、大容量ファイル(1ファイル1TBまで)が格納可能なブロブ、分散 Key-Valueストアであるテーブル、仮想マシン間で通信するために利用可能なキューが存在します。コンピュートサービス上でも、OSの一時領域等を利用したローカルファイル操作を行うことは可能ですが、データの永続化は保障しておらず、OS の再起動時等で保存したデータが揮発する恐れがあります(Amazonのインスタンスストアから起動したインスタンスに相当します)。このため、ストレージサービスや後述するSQL Azure を利用したデータの永続化が必要となります。

 また、Windows Azureの仮想マシンに対するリモートデスクトップを利用することも可能です。同機能を利用することで、障害解析や環境の把握等が容易になります。一般的なPaaSではプラットフォーム内部の情報は隠ぺいされていますが、リモートデスクトップを利用することで多くの情報を参照することが可能になります。

セキュアなネットワークを構成する Windows Azure Connect

 Windows Azure Connectは、Windows Azure管理ポータル上で設定された仮想マシンとPCの間をトンネリング接続し、VPN(Virtual Private Network)を構成する機能を提供します。仮想マシンとのVPN接続は「Windows Azure Connect Endpointソフトウェア」と呼ばれる専用ソフトを使用し、IPsecによりカプセル化することが可能です。Windows Azure Connect を利用することで、クラウド上のアプリケーションとオンプレミス/他のクラウドサービスとのセキュアな連携を実現することが可能です。

データセンタ間での負荷分散が可能な Windows Azure Traffic Manager

 Windows Azure Traffic Managerは、データベース間でのロードバランシングを行うことが可能です。地球規模で離れた場所にある環境同士で負荷分散を行う「グローバルサーバロードバランシング」(GSLB)を実現することが可能であり、アジアと北米と欧州といった大陸間のサーバ同士で負荷分散を行うことが可能になります。また、ユーザーから近いデータセンタからレスポンスを返すことも可能であるため、ディザスタリカバリだけでなくスループット向上のためにも利用できます。

データベースサービス SQL Azure

 SQL AzureはSQL Serverを基にして、クラウド上に構築されたリレーショナルデータベース(RDB)です。SQL Serverで利用してきたSQL構文を、ほぼそのままSQL Azureでも使用することが可能です。これにより、SQL Serverを利用した既存のアプリケーションをクラウド環境へ容易に移行できます。さらに、データセンタ間でのデータ同期化を実現する SQL Azure Data Sync、SQL Azureから帳票を生成する SQL Azure Reporting Servicesも利用することが可能です。

大規模データの分散処理Hadoopのサポート

 大量データを分散処理するためのMapReduce実装であるHadoopを、 Windows Azure上で利用することが可能です。現在はクローズドCTPとしてサービスが提供されていますが、本機能を利用することで、クラウドのリソースを生かした大量データの処理を容易に行うことが可能になります。

Windows Azureの歴史

 Windows Azure Platform では様々なサービスが提供されていますが、全てのサービスが最初から提供されていたわけではありません。主要なサービスの提供の歴史を見ていきましょう。

サービス名 CTP版リリース日 正式版リリース日
コンピュートサービス
  Webロール
  Workerロール
2008/10/27 2010/2/1
  VMロール 2010/11/29 -
ストレージサービス 2008/10/27 2010/2/1
Windows Azure Connect 2010/11/29 -
SQL Azure
  データベース 2009/6/8 2010/2/1
  Data Sync 2011/10/14 -
  Reporting Services 2011/10/14 -
Windows Azure AppFabric
  サービスバス 2009/3/31 2010/4/12
  アクセスコントロール 2009/3/31 2010/4/12
  キャッシュ 2010/10/27 2011/5/2
Windows Azure Traffic Manager 2011/6/27 -
Windows Azure Marketplace 2009/12/17 2011/8/8
TFS on Azure 2011/9/14 -
Hadoopサポート 2011/12/13 -
表2 Windows Azure主要サービスのCTP提供開始日、正式提供開始日

 VMロール、Windows Azure Connect、Windows Azure Traffic Manager、TFS on Azure(Windows Azure 上に配置されたTeam Foundation Server等)の機能は現在CTP版として提供されています。CTPとは、コミュニティ技術プレビュー(Community Technical Preview)の略で、従来のβ版に比べ、より迅速にユーザーからのフィードバックを集めるためのプレビュー版です。詳細は、「β版とCTP版は何が違う???変わるソフトウェアのリリースプロセス」などをご覧ください。

 Azureは、もともとはPaaSとしての機能のみを提供していましたが、現在はVMロールやHadoopのサポートをはじめ、PaaSの枠にとらわれない幅広いサービスを提供しています。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。