AzureのIaaSとPaaSの違いについて
はじめに
AzureのIaaSとPaaSのサービスについての特徴と違いについて解説します。
IaaSとPaaSの違いについて
まず、IaaSとは、インフラストラクチャーをサービスとして提供するサービスモデルで、もう少し簡単な表現すると、利用者自身が提供されたハードウェア(仮想サーバー)上に好きなプラットフォーム(OS、ミドルウェア)やソフトウェアを用意し、管理できるサービスです。
PaaSとは、アプリケーションのプラットフォームをサービスとして提供するサービスモデルです。ユーザーは、そのプラットフォーム上で、アプリケーションを開発し、それをクラウドに展開します。
IaaSとPaaSの違いは、IaaSがネットワーク、ハードウェア、OSを提供するサービスであるのに対して、PaaSはそれに加えミドルウェアまで提供するサービスです。
具体的な違いの例として、仮想マシンやサーバといった開発に必要なインフラのみを提供するのがIaaSだとすれば、開発ツールやデータベースといった開発環境(プラットフォーム)までカバーするのがPaaSです。
両者の一般的な違いは大まかにはこのようになっており、AzureのIaaSとPaaSの特徴と違いを見ていきます。
IaaSのサービスであるAzureの仮想マシン
IaaS型のサービスであるAzure仮想マシンでは、Windows ServerまたはLinuxの好みのOS(ディストリビューション、バージョン)を選択し、サーバー環境を構築、利用できます。また、Azure仮想マシンは、マイクロソフトのサーバー仮想化技術であるHyper-VをベースにしたIaaSのため、手持ちのHyper-Vで実行できるOSイメージ(OSやアプリケーションを含むディスク全体のイメージファイル)をクラウド上のAzure 仮想マシンでも実行できます。
Azureの仮想マシンは、Azureのデータセンターの物理サーバー上に存在します。一般に、ハイパーバイザーがインストールされた物理サーバはホスト、仮想マシンはゲストと呼ばれます。AzureはハイパーバイザーにHyper-Vで仮想化された仮想マシンがユーザーに提供される、という構造です。
PaaSのサービス
PaaSのサービスとしては、モバイルサービスやActive Directory、メディアサービス、CDN、バックアップ、HPCやBizTalk Servicesなどが挙げられます。複合的な機能を持つ製品であればあるほど、製品のシステム構成が複雑ですので、自社での構築・運用負荷が高まります。こうした複雑なシステムがPaaSで提供されるサービスの価値は、極めて高いと言えるでしょう。
データベースもHadoopもテーブルもキューもBLOBも、データ管理のサービスは、全てPaaSです。例えば、ファイルサーバーのOSのアップグレードは負担の大きい作業です。基本的に無停止で運用することが望まれます。多重化されたファイルストレージとしてBLOBは、非常に有用なサービスです。
BLOBに限らず、PaaSを利用することのメリットは、ユーザーがメンテナンスから開放されることです。アプリケーションを組む際に、PaaSを部品として使うことが可能であれば、運用管理の工数が大幅に削減されます。
現在オンプレミスや仮想OSでやっているものを、PaaSに移していいかどうかの判断基準には、いろいろ考えられます。
その中にアプリケーションの変更が少ないため、共通のAPIが使えるか、という基準があります。例えば、データベースを利用している場合、SQL文がそれほど変わらない場合は移行が容易であるといえるでしょう。SQL ServerとSQL DatabaseのSQL文は、高い互換性があります。BizTalk Servicesであれば、BizTalkサーバーと同じアダプターを利用している場合などが挙げられます。他の例としては、データそのものを社外に置いても良いのかという点です。この点は企業の運用ポリシーに依存しますが、Azureの日本データセンター登場以来、敷居は大きく下がりました。
運用管理の負担を大幅に軽減(PaaS利用のメリット)
もう少しPaaSを利用するメリットについてみていくことにしましょう。実際に、運用管理の作業から開放されるものとしては、以下のような作業が挙げられます。
- ミドルウェアのインストール
- パフォーマンスチューニング
- 更新プログラム適用
- サポート切れ対応
ミドルウェアのインストールは、IT管理のスキルとしては高度なスキルを要求する場合があります。
例えばフェールオーバークラスターがそうです。100人中100人のエンジニアが必要なスキルというものではありません。インストールや設定のノウハウはトップエンジニアの何人かがしっていればいいことです。しかし、その優秀なエンジニアがどれだけ時間をかけてやっているかを考えると、その工数には無視できないものがあります。
よくある例として、データベースを代表とするミドルウェア系では、パフォーマンスチューニングの効果が高い場合があります。これも高度なスキルと経験が必要とされます。こうした事に対応できる優れたエンジニアを毎回確保するのは容易ではないはずです。
PaaSを利用する事で、基本的なデータベースそのもののチューニングはクラウド事業者に任せられます。例えば、物理ストレージのどこにデータファイルとインデックスと、ログファイルを配置するか、といった設計をする必要がなくなります。
AzureにおけるIaaSとPaaSの違いのまとめ
AzureにおけるIaaSとPaaSのサービスの特徴は上で述べたとおりで、違いをまとめると、
IaaSとPaaSのサービスの違いは、IaaSが仮想マシンでPaaSがバイルサービスやActive Directory、メディアサービス、CDN、バックアップ、HPCやBizTalk Servicesであるということです。