Davies氏によると、それらのリソースが使用されているかどうかに関係なく、ユーザーは課金されるという。「現在でも、すべてのIaaSプロバイダーは、そのVMの全サイズの料金をユーザーに請求している。ユーザーのソフトウェアが2Gバイトしか使用していなくても、プロバイダーは8Gバイト分の料金を請求する。ユーザーのサーバが50%のCPU使用率で動作していても、4コア分の料金を請求される」(同氏)
LXCコンテナ
Davies氏によると、「Linux Containers」(LXC)はVMの代替ソリューションだという。「LXCは、巨大な物理マシンを複数のサブサーバに分割する新しい仕組みだ。それは仮想化のアプローチではない。つまり、複数のハードウェア環境をシミュレートして、それぞれの環境でOS全体を実行するアプローチではない」(Davies氏)
「LXCはコンテナ化アプローチである。つまり、ハードウェア上で稼働する単一のLinuxカーネルが分裂して、複数の分離されたコンテナになる、ということだ。各サブサーバは、それぞれのコンテナ内で動作する」(同氏)
VMとコンテナの主な相違点の1つは、内側に隠されている。「サブサーバはメインのLinuxカーネルの一部を有し、独自のLinuxカーネルは持たない。しかし、独自のソフトウェアや独自のファイリングシステム、独自のユーザーなど、そのほかのすべてのものは有している。独自のカーネルは持っていないというだけのことだ」(同氏)
ユーザーはVMとコンテナの違いに気づかないかもしれない。「ユーザーの目に触れる部分は酷似している。これまでと同じようにIPやルートアクセスを利用できるし、ログインも可能だ。ログインすると、SSHサーバやデータベースサーバ、ウェブサーバなどが稼働していることを確認できる」(同氏)
意外にも、コンテナテクノロジは新しいものではない。「Solaris Zones」やLXC、「FreeBSD jail」などのコンテナは10年近く前から存在している。一部のPaaSベンダーは何年も前から自社製品でコンテナを使っており、同テクノロジを完全な仮想化より能率的なものと見なしている。ActiveStateの「Stackato」はLXC、「Parallels Cloud Server」は「OpenVZ」、Joyentの「SmartOS」はSolaris Zonesをそれぞれ使用している。
コンテナはVMより優れているのか
コンテナを使えば、アプリケーションホスティングがはるかに容易になるということに、今、多くの人が気づき始めている。いくつかのOSコンポーネントをそぎ落とすと、複雑さが軽減され、柔軟性が高まるが、それはVM世界に取って代わるものではない。それは、リソース共有への異なるアプローチだ。
これは、いずれか一方だけが生き残るコンテナとVMの戦いではなく、顧客のメニューに新たに登場したもう1つの選択肢なのだ。
この記事は海外CBS Interactive発の記事を朝日インタラクティブが日本向けに編集したものです。