今回は、Azureと「サービスとしてのソフトウェア(SaaS)」「サービスとしてのプラットフォーム(PaaS)」「サービスとしてのインフラストラクチャ(IaaS)」の現状について見ていきましょう。

Azureはオープン指向へ

前回、触れたようにAzureの製品サイトでは180以上(プレビューを含む)、Azureポータルの「すべてのサービス」のカテゴリ別では250以上のサービスメニューが用意されています。中には、第2回で説明したクラウドの展開モデルのSaaS/PaaS/IaaSでは、分類するのが難しいものもあります。

Windows Azure PlatformのPaaS機能として、Azureで初めて提供された「Web Role」と「Worker Role」は、Azure側が提供および自動管理するゲストOSとしてのWindows Server(初期のゲストOSであるWA-GUEST-OS-1.0はWindows Server 2008 SP2ベースであったと言われています)と標準のインターネットインフォメーションサービス(IIS)7/ASP.NET、.NET Frameworkのレガシーバージョン(3.5 SP1)のアプリケーション開発および実行環境でした。

PaaSデータベースの「SQL Azure」は、SQL Server 2008互換のデータベースでした。そのため、Azureが登場してしばらくは、開発ツールとしてVisual Studioを使用しなければならないなど、Azureはマイクロソフトにベンダーロックインの環境というイメージが持たれていたと思います。

現在でもそのような認識を持っているとしたら、Azureのごく一部しか見えていないということになります。利用者から隠されているAzure自身のインフラストラクチャは確かにWindowsやマイクロソフトの技術に基づいているかもしれません。しかし、そのインフラストラクチャから提供されるクラウドサービスは、実は極めてオープン指向に基づいています。

PaaSはOSS対応が充実

Web RoleとWorker Roleはその後、「Azure Websites」という名称を経て、現在は「Azure App Service」というサービスの一部「Web App」として提供されています。

最新のゲストOS(WA-GUEST-OS-5.x)は、Windows Server 2016とIIS 10/ASP.NET、.NET Framework 4.6.2の環境を提供します。SQL Azureは現在、「Azure SQL Database」と呼ばれ、最新のV12バージョンはSQL Server 2008の互換性レベル100からSQL Server 2017の互換性レベル140(V12の既定)に対応しています。

ただし、これらの最新状況はWindowsベースのApp Serviceに限った話です。AzureのPaaS環境は、Apache PHPへの対応(Azure SDK for PHPの提供開始は2011年8月)を皮切りに、オープンソースソフトウェア(OSS)への対応を積極的に進めてきました。

例えば、Web AppではゲストOSとして「Windows」の他に、「Linux」または「Docker」(OS環境ではなくコンテナー実行環境)を選択することができ、Linuxを選択した場合はさらに「Node.js」「PHP」「Java」「.NET Core」「Ruby」からランタイム環境を選択することが可能です。

  • Azure“超”入門 第4回

    現在、Web AppのゲストOSとして「Windows」「Linux」「Docker」を選択できる。Azure PaaSはWindowsネイティブな環境だけというわけではない

なお、LinuxベースのWeb Appは「App Service on Linux」、DockerベースのWeb Appは「Web App for Containers」とも呼ばれます。また、PaaSデータベースとして、OSSベースの「Azure Database for MySQL」や「Azure Database for PostgreSQL」が用意されています。

かつて、いわゆるLAMP(Linux、Apache HTTP Server、MySQL、Perl/PHP/Phythonの頭文字に由来)環境からAzure PaaSへの移行は、WindowsのIIS環境への移行の話(FastCGI for IISによるPHPバイナリのホストの方法)でしたが、現在ではLAMP環境をそのままAzure PaaSに移行することができ、使い慣れた開発ツールもそのまま使用できるようになっています。

IaaSで実行できる役割は増加

AzureのIaaS環境である「Virtual Machines(VM、仮想マシン)」は、オンプレミス向けのWindows Server Hyper-Vと共通のハイパーバイザーに基づいたインフラストラクチャで構築されています。2018年1月には、そのインフラストラクチャがWindows Server 2016ベースに移行しました。

オンプレミスのHyper-Vがそうであるように、Azure IaaSの仮想マシン(Azure VM)はWindows、Linux、FreeBSDをゲストOSとしてサポートしています。Azure Marketplaceでは、Windows Server 2008 R2以降のWindows Serverバージョン、Windows 10 Pro(VDI向け)、Windows 7/8/10 Enterprise(MSDN向け)、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Ubuntu、CentOS、FreeBSDのテンプレートから簡単に仮想マシンをデプロイすることができます。

また、SQL Server、Oracle、SAP、IBM、Citrixなどのエンタープライズ向けソフトウェア(エンタープライズサポートを含むものもあり)やOSSソフトウェアを含むテンプレートも豊富に用意されています。OSやソフトウェアのライセンスやサポートは、基本的にAzure VMの価格に含まれており、オンプレミスですでに所有しているライセンスを適用できる低価格オプションも用意されています。

Azure VMは、「Azure Virtual Network」が提供する仮想ネットワークのサブネットに接続され、「Azure VPN Gateway」や「Azure ExpressRoute」を利用してオンプレミスの企業内ネットワークとインターネットを介したVPN(仮想プライベートネットワーク)接続や専用線接続で安全に相互接続することができます。そのため、Azure IaaS環境は、企業内ネットワークの延長として、企業内サーバの設置に利用することができます。

さらに、プロセッサ、メモリ、ネットワーク、ストレージ、GPUのスペックの異なるさまざまなシリーズとサイズが用意されており、汎用的なサーバからハイパフォーマンスコンピューティングまで、必要な規模のサーバを最適化されたコストで実行できます。

仮想化やクラウドという条件下では制約を受けるOSやソフトウェアがありましたが、仮想化が広く一般的になった現在、多くの制約は取り除かれています。

参考までに、以下のドキュメントにはWindows Serverの役割およびマイクロソフト製品のサポートについて説明されています。例えば、2017年7月からはHyper-Vの役割の実行が可能になっています(Ev3およびDv3シリーズから、画面2)。2018年6月からは、Azure上の顧客専用の分離されたハードウェアで仮想化を実現することもできるようになりました(E64i v3およびE64is v3シリーズ)。

  • Azure“超”入門 第4回

    現在は、Azure VMのゲストOSでHyper-Vの役割(ハイパーバイザー)を実行し、さらに仮想マシンをホストすることも可能になった

IaaSの利点の1つは、PaaSよりも詳細な制御が可能なことです。そのため、PaaSアプリ向けのプラットフォームを自ら用意するのに、IaaSを利用することも可能です。Azure IaaSの「Azure VM Scale Sets」「Load Balancer」「Azure Application Gateway」のようなサービスは、そのようなニーズに対して、伸縮可能なスケールと高度なセキュリティを提供できます。


山市良
Web媒体、IT系雑誌、書籍を中心に執筆活動を行っているテクニカルフリーライター。主にマイクロソフトの製品やサービスの情報、新しいテクノロジを分かりやすく、正確に読者に伝えるとともに、利用現場で役立つ管理テクニックやトラブルシューティングを得意とする。2008年10月よりMicrosoft MVP - Cloud and Datacenter Management(旧カテゴリ: Hyper-V)を連続受賞。ブログはこちら。

主な著書・訳書
「インサイドWindows 第7版 上」(訳書、日経BP社、2018年)、「Windows Sysinternals徹底解説 改定新版」(訳書、日経BP社、2017年)、「Windows Server 2016テクノロジ入門 完全版」(日経BP社、2016年)、「Windows Server 2012 R2テクノロジ入門」(日経BP社、2014年)などがある。