【特集「AWS vs. Azure」 #2】 AWSとAzure、IaaS/PaaSの機能差はいかに......?

  • このエントリーをはてなブックマークに追加

AWSvsAzure2

今やパブリッククラウドの二大勢力と言えるAmazon Web Services(AWS)とMicrosoft Azure。現在は、ワールドワイドでトップシェアを走るAWSをAzureが猛追するという構図ですが、サービスの中核をなすIaaS/PaaSに違いはあるのでしょうか。今回はIaaS/PaaSの機能についてAWSとAzureを比較してみます。

IaaSの機能はほぼ互角

2006年にサービスの提供を開始したAWSは、「Amazon Elastic Computer Cloud(Amazon EC2)」を中心に発展してきました。Amazon EC2は、CPU、メモリ、ネットワークなどの仮想リソースとXenベースのハイパーバイザーを提供し、AMI(Amazon Machine Images)というイメージに格納した仮想マシンを稼働させるというIaaSです。さまざまなインスタンスサイズが用意され、CPUの処理能力、メモリ容量、I/O性能などを仮想マシンの用途に応じて自由に選択できるスタイルは、Amazon EC2によって確立されたとも言えます。

仮想マシンの雛形となるAMIは数多く用意されており、Windows ServerやAmazon Linux(Red Hat Enterprise Linuxベース)、SUSE LinuxなどAWS自身が提供するAMIには、ゲストOSのライセンスやゲストOSにアクセスする際に必要なCAL(クライアント アクセス ライセンス)も含まれています。また、開発者有志が誰でも使えるように作成したAMI(AWSのサポート対象外)がCommunity AMIとして用意されているほか、AWS Marketplaceを通じてミドルウェアやアプリケーション、開発環境を含むAMIを入手することも可能です。

さらに、VMware、Hyper-V、XenServerなどの仮想マシンイメージをインポートしてAMIを作成したり、AMIをエクスポートして各仮想化環境で利用したりといった機能も用意されています。

一方、Azureがサービスを開始した2010年当時、AzureではAmazon EC2のような自由度の高い仮想マシンのサービスは提供されていませんでした。しかし、2013年に「Azure 仮想マシン(Virtual Machines)」のサービスが始まってからは、急速な進化を遂げています。Virtual Machines Marketplaceには、WindowsやLinuxベースのさまざまなイメージが用意されており、AWSと遜色のないレベルになっています。Hyper-VのVHD(仮想ハードディスク)イメージをAzure仮想マシン環境にアップロードして利用することも可能です。2015年9月には、GPUコンピューティングが利用できるインスタンスを提供することが発表され、近い将来に機能面でAWSのAmazon EC2にほぼ追いつくと言えるでしょう。

逆に、マイクロソフト製品・サービスとの親和性の高さは、Azureのほうが優位です。たとえば、マイクロソフトのシステム管理ツール「System Center 2012 R12」を用いれば、Windows ServerのHyper-Vで構築されたプライベートクラウドとAzureから成るハイブリッド環境を一元的に運用することができ、1つのコンソールから、Hyper-Vの仮想マシン管理やAzure環境上のサービス操作(サービスの起動・停止など)が行えます。

また、「Azure Active Directory」を使うことで、オンプレミスの「Active Directory」と、マイクロソフト「Office 365」といったクラウドサービスのID/認証を統合化できます。これにより、オンプレミスでのActive Directory認証を通じた、ハイブリッド環境の「シングルサインオン」が実現できるのです。

IaaSに関しては、機能面ではAWSとAzureはほぼ互角。Windows環境を利用する場合であれば、Azureに同一ベンダー製品の優位性があると言えそうです。

AWSvsAzure2AWSvsAzure2-2

(図)AWS Marketplace(左)とAzure Virtual Machines Marketplace(右)。AWSは英語のみですが、Azureは日本語で利用できます。

PaaSはAzureに一日の長

では、PaaSについてはどうでしょうか。

AWSは、2011年に「AWS Elastic Beanstalk」というWebアプリケーションを素早く展開するためのサービスを開始しました。Java、.NET、PHP、Node.js、Python、Ruby、Go、Dockerを使用してWebアプリ/サービスを開発し、Apache、Nginx、Passenger、IISなど使い慣れたWebサーバーへデプロイするというものです。

Elastic Beanstalkには利用料金がかかりません。作成したアプリケーションの保存、および実行に必要なAWSのリソースに課金される仕組みです。つまり、Amazon EC2やストレージサービスの「Amazon Simple Storage Service(Amazon S3)」などを効率良く利用するための手段として提供されている機能なのです。

一方、AzureはもともとPaaSのクラウドサービスとして誕生しただけあって、PaaSにはさまざまな機能が用意されています。AWS Elastic Beanstalkに相当するのが、「Azure App Service」の「Web Apps」機能であり、Java、.NET、PHP、Node.js、Pythonなどを使ってIIS向けのWebアプリ/サービスを開発・デプロイするというサービスです。より自由度の高いIaaSのAzure仮想マシンと比べ、安価に利用できる料金が設定されているなど、完全に別のサービスとして提供されています。

モバイルアプリの開発環境、いわゆるMBaaS(Mobile Backend as a Service)については、Azureが完全にリードしています。Azure App Serviceの「Mobile Apps」機能では、iOS、Android、Windowsなどに対応したモバイル向けネイティブアプリ、クロスプラットフォームアプリを素早く作成するための機能が用意されています。早い段階から提供されてきたため、Mobile Appsにはすでに豊富な利用実績もあります。

それに対し、AWSでは2015年10月に「AWS Mobile Hub」というMBaaSを発表し、現在はベータ版として提供されています。モバイルアプリ用のインフラ、開発、テストなどの機能面は、AzureのMobile Appsとほぼ同等ですが、AWSでは現時点でWindowsがサポートされていません。

サーバーを一から構築していくIaaSとは異なり、サーバーのアプリ稼働環境と開発環境も提供されるPaaSでは、先行したAzureに一日の長があると言えるでしょう。

photo:Thinkstock / Getty Images