クラウド 〜仮想化技術の活用形〜
【連載コラム:仮想化技術をしっかり解説します(7)】
クラウドと一言でいってもさまざまなサービスがあります。そこで今回は分類を通じて解説します。
前回までは、仮想化技術やコンテナの概要と、代表例としてVirtualBox、KVM、Dockerを紹介しました。今回からは、これらの技術が活用されているクラウドについて解説していきます。
目次
クラウドとは
クラウドとは、「雲」にたとえられるように、ネットワークの向こう側にあるコンピューターやネットワークなどを利用する方式のことを指します。現在では、様々な意味合いとしてクラウドという言葉が使われるようになったので定義は一様ではありませんが、ここではいくつかの典型的な分類を使って、クラウドとは何かということを解説します。
クラウドのXaaSによる分類
クラウドには、様々な提供形態がありますが、最も基本的な分類方式ではIaaS、PaaS、SaaSに分けられます。まとめてXaaSと表現されたりもします。Xには、クラウドとして何を提供しているのか、ということで分類されます。
IaaS(Infrastructure as a Service)
IaaSは、システムのインフラ部分、すなわちコンピューターリソースの基本であるCPUやメモリ、そしてOSあたりまでを提供するサービス形態を指します。多くの場合、仮想マシンとして提供されるため、CPUやメモリなどの容量は必要に応じて変えることができます。OSはLinuxやWindowsなど、いくつかの種類やバージョンから選べるようになっており、必要に応じてミドルウェアやアプリケーションをインストールして使うことになります。
PaaS(Platform as a Service)
ミドルウェアまでを提供する形態です。以前はアプリケーションの開発言語に応じた環境を提供するサービス形態が主流でしたが、現在ではバックエンドで動作するデータベースなど、ミドルウェアサービスを含めた形でまとめてPaaSと呼ぶことがあります。また、そのようなミドルウェアのクラウドサービスを個別に「DBaaS」などと呼ぶ場合もあります。
SaaS(Software as a Service)
最終的に利用するアプリケーションまで提供する形態です。最近では経理や人事などの業務に使うようなアプリケーションをクラウド上でサービスするものも増えてきました。
パブリックやプライベートとしての分類
パブリッククラウド
クラウドサービスが、誰に対しても提供されている形態です。利用したリソース量などに応じて利用料が課金される従量課金制である場合がほとんどです(定額制の場合もあります)。
プライベートクラウド
利用者が自分たちだけのために用意したクラウドを利用する形態です。コンピューターなどを自前で用意する場合と、パブリッククラウドサービスが利用者専用にリソースを用意して提供する場合があります。後者を仮想的なプライベートクラウド(VPC)と呼ぶこともあります。
オンプレミス
オンプレミス(on-premises)とは、コンピューターなどを自分たちの用意した施設に用意する方式です。主にデータセンターにサーバー等を設置するスタイルです。この場合、プライベートクラウドを構築、利用することになります。
最近では、パブリッククラウドサービス提供者が、ハードウェア等を提供し、オンプレミスに設置するようなサービスまで出てきています。
ハイブリッドクラウド
パブリッククラウドとプライベートクラウドを混在させて利用する形態です。両者の間は、VPNや専用回線などで接続して、相互に連携ができるようにします。
システムの規模が大きくなるとパブリッククラウドとプライベートクラウドを使い分けるようになり、必然的にハイブリッド化してくるので、現在ではあまり特別なものではなくなってきています。
少し特別な分類
ここまで出てきた一般的な分類の他、提供されているサービスによる呼び名などがあります。よく目にするものについて挙げておきます。
DBaaS
PaaSのところでも出てきましたが、データベースをサービスとして提供する形態です。一般的なRDBMSからNoSQL系のものまで、様々なものが提供されています。一般的にデータベースの管理は大変であると考えられており、それらの管理をある程度クラウドサービス側で受け持って貰える点や、性能が不足した場合にスケールアップさせることができるなどのメリットがあるため、利用されるケースが増えています。
コンテナサービス
コンテナを利用するためのサービスが提供されている場合です。多くの場合、コンテナオーケストレーションツールであるKubernetesと、コンテナを実際に動作させる「ワーカーノード」と呼ばれるホストがセットで提供されます。Kubernetesは動作環境の構築や運用に手間がかかるので、クラウドサービス側で一括して面倒を見てもらえるコンテナサービスはメリットが多く利用が増えています。
MBaaS(Mobile Backend as a Service)
スマートフォンのアプリケーションなど、沢山のデータのやり取りを行う仕組みの場合、それらのやり取りを一括して受け持ってくれる仕組みが提供されています。これらの総称としてMBaaSと呼びます。
サーバーレス・FaaS(Function as a Service)
これまで紹介してきた各種クラウドサービスは、仮想マシンやコンテナ、物理ホストなどの単位で数えることができ、その数量に応じて課金される形でしたが、サーバーレスの場合には「何回」処理を行ったかによって課金されるような形であることが一番の特徴です。実際にはサーバーは存在していますが、ユーザーは処理を行うだけなのでサーバーの存在を意識することがないのでサーバーレスアーキテクチャと呼ばれます。
関数を実行することからFaaSと呼ばれることもあります。
今回は分類のための用語でどのようなクラウドサービスがあるのかを概観してみました。それぞれの分類をどのような技術が使われているのか、という観点で詳しく調べてみると、より理解が深まるのではないでしょうか。
- 筆者紹介
宮原 徹 氏
Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。
バックナンバー
第10回:クラウド利用の留意点
第9回:オンプレミスのクラウド環境
第8回:たくさんあるぞ!クラウドサービス
第7回:クラウド〜仮想化技術の活用系〜
第3回:第3のサーバー環境「コンテナ」
第2回:仮想化の種類と特徴