![VPSはどんな技術で動くの?ハイパーバイザー型とコンテナ型の違いを解説](https://academy.gmocloud.com/wp/wp-content/uploads/2021/10/cloudserver-four-points-title.jpg)
VPSはどんな技術で動く?
この記事の読者は恐らく、低価格で扱いやすいクラウド上のバーチャルマシン、 いわゆるVPS(Virtual Private Server)サービスを探しておられる方だと思います。 では、このバーチャルマシンはどんな技術の基で稼働しているか正しく理解していますか?
OSを使う側、アプリケーション開発者だから特に気にしていない、 手元にある開発環境と同等の動きと動作が遅くなければいいと思ってませんか?ある意味では正しい意見です。 実際知らなくてもサービス開発・運用を行っているエンジニアの方々は多いでしょう。 でも、その技術を正しく理解することは、あなたの求めるVPSサービスの選択に一歩でも近づけるのは事実です。
仮想化技術にハイパーバイザー型とコンテナ型があることはご存じの方は多いと思います。 この違い、それぞれのメリット・デメリットを明確に把握してますか?仮想化技術としてハイパーバイザー型は大体把握しても、 コンテナ型との明快な違いを理解している方はどれくらいいらっしゃるのでしょうか?
今回は、バーチャルマシン・VPSを探しているエンジニアに対して、 ハイパーバイザー型とコンテナ型の違いを説明すると共に、 多様なVPSサービスの中からあなたに合ったシステム選択の助けとなるキーポイントを説明します。
二つの仮想化技術の比較を通して、片方が機能的・パフォーマンスに優れていると勧めるつもりはなく、 それぞれのメリット・デメリットを正しく理解し、正しいVPSサービス選択の助けになれば幸いです。
そして、最後の節では、コンテナ技術を使った、高いパフォーマンスと、高い安定性と柔軟性を提供する「クラウドVPS by GMO」を紹介します。
ハイパーバイザー型とコンテナ型の違い
ハイパーバイザー型、 コンテナ型、両方の仮想化技術は、一つの物理マシン上に、多数の、そして、 個々に独立した仮想環境を立ち上げることを可能にします。
仮想環境は、ゲストと呼ぶことができ、1ゲスト専用のCPU・メモリ・ネットワーク・HDD利用域が割り当てられると共に、 そのリソースを自由に扱ってWebアプリケーションやデータベースシステム等のプログラムを自由に起動することができます。 ゲスト間は完全に独立している故に隣のゲストとのデータ共有は、一般的にIPレベルでの通信を必要とします。
以降では、ハイパーバイザー型とコンテナ型のそれぞれの特徴について説明します。 図は、左がコンテナ方式、右がハイパーバイザー型による仮想化システムのアーキテクチャを示します。
![ハイパーバイザー型とコンテナ型の違い](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-02.png)
ハイパーバイザー型の特長
物理マシンにインストールされた単一OS(一般的にホストOS と呼びます)上に多数の仮想ハードウェアを用意します。 仮想ハードウェア(図で示すVM1,VM2,VM3)は、その言葉の通り、ハードウェアエミュレーションによって、 実際には存在しない、仮想のCPUを含めた各種ハードウェアデバイスを提供します。
![ハイパーバイザー型による仮想化システムのアーキテクチャ](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-03.png)
1台のPCが手元に用意されるのと変わらないので、 Red Hat OS等の各種Linuxディストリビューションだけでなく、 Windows OS・BSD系OS等、多様なOS環境をゲストOSとしてインストールすることができます。 (但し、ホストOSで動作保証するOSのみがインストール可能です。)こうした自由なOSを、 物理ハードウェア追加、電力消費量増、複雑な物理ネットワーク構築無しに、 1台の物理ハードウェア内に配置できることは大きなメリットと言えるでしょう。
Linuxをベースとする KVMや、 VMware社から提供されるVMwareプロダクトといった仮想化ソフトウェアの名前は聞いたことがある方もいらっしゃるかと思います。
しかし、 1ゲストOSで稼働するアプリケーションから物理ハードウェアリソースを利用するには、 多くのハードウェアリソースを消費しなければならない仕組みになります。 例えば、 ゲストOSにデータベースシステムが稼働する際のHDDアクセスを考慮すると、
データベースシステム → ゲストOS → 仮想HDD → ホストOS → 物理HDD
というように多層のデータコピー・CPU消費に至り、 物理ハードウェアの最大パフォーマンスを得ることは難しく、 ハイパーバイザー型のデメリットの一つになります。
とはいえ、 昨今の Intel VT-x、 AMD-Vといった物理CPUによる仮想化支援技術による高速化や、 NVIDIAの物理GPUリソースの一部を仮想GPUとして提供するサービスもあり、 この分野の技術進展も大きく期待したいところです。
コンテナ型の特長
ハイパーバイザー型がハードウェア仮想化を実現したものに対し、 コンテナ型はホストOSのリソース領域を個別に独立した形でゲスト(図で示す コンテナ1、 コンテナ2、 コンテナ3)に提供する仮想化方式です。
![コンテナ型による仮想化システムのアーキテクチャ](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-04.png)
コンテナ型はハイパーバイザー型同様に、 ゲストから見て隣のゲストのリソースは基本的に見ることはできません。 しかし、 ゲストは物理ハードウェアに接するホストOSをアクセスできるので、 ハイパーバイザー型で発生するリソース消費はほとんど発生せず、 物理サーバーのハードウェアリソースを最大限に活用できます。
Linux OS上で実現するコンテナ技術が最も商用利用されており、 Dockerコンテナとして広く知られている技術でしょう。 データベースシステム・認証システム・CRMシステム等、 特定のアプリケーションサービス毎に固められているDockerイメージを活用すれば、 ゲスト毎に1サービスを素早く展開し、 ASP型のサービス展開も容易に実現可能です。
アプリケーション開発者が新しく開発したアプリケーションを、 手元の開発環境からプロダクション(本番)環境へ簡単に展開できる、 DevOpsを大きく支援する仕組みでもあります。
半面、 コンテナ型はホストOSとして存在する共通のkernelをゲストOSとして提供するため、 自由なOS選択や kernelのアップデートができず、 ハイパーバイザー型との比較ではデメリットの一つと言えます。
しかし、 1ホスト上でのコンテナ毎にLinuxディストリビューションの混在(例えば、 一つはRed Hat OS、 隣はUbuntu OSのような選択)ができるため、 Nginx・WordPress・MariaDB等といったLAMP環境実現を前提としている限り大きな問題にはならないでしょう。 ちょっと話は
変わりますが、 Microsoft社/Docker社によるWindows OS向けの純粋なDockerコンテナの実装も進んでいるのでこの分野の革新も期待したいですね。
さて、 コンテナ型には、 Application コンテナとSystemコンテナ(もしくはOSコンテナ)の二つのタイプがあることも知っておきましょう。 一般的に、 Dockerコンテナのようにアプリケーションサービス提供を軸に機能実装されているのがApplicationコンテナと呼ばれるものです。
Systemコンテナは、 Linux仮想化環境提供を軸として機能実装されるものです。 ゲストからアプリケーションサービスを利用するユーザレベルでは、 普通にRedHat系やUbuntu等のLinuxサーバーが提供されていることと変わりありません。 二つの機能の方向性は違いますがベースの技術に変わりのないことを理解ください。
今VPSを活用されている方は、 ご自身のシステムがハイパーバイザー型かコンテナ型か把握していますか?これからVPSの選択を検討されている方は、 先の理解も取り入れつつ、 そして、 利用コストも鑑みつつ、 これから実装するシステムにとってどちらの仮想化技術があなたのニーズに一番合致するかよく考えてみましょう。
コンテナ型技術を採用したクラウドVPS by GMOのメリット
2021年5月、 新しいVPSサービス「クラウドVPS by GMO」がGMOグローバルサイン・ホールディングス株式会社からリリースされました。 コンテナ技術によって高い処理速度やリソース効率を追及しつつ、 物理的に高性能なCPUやSSDストレージを利用することで、 国内屈指の高速なI/O性能を実現した Systemコンテナによる VPSサービスです。
((※) GMOグローバルサイン・ホールディングス株式会社による調査(2020年11月時点)。 国内主要事業者が提供するサービスを選定して、 V2プランと同等スペックのプランにおけるディスク性能を測定。 I/O負荷テストツール「fio」を用いて複数の計測値を比較しています。 )
採用されている 仮想化ソフトウェア - Virtuozzo Hybrid Server (以下、 VHS)は、 Linux kernel 実装に多くの技術供与を行う Virtuozzo社 が提供するもので、 開示されるコンテナ技術を越える高いパフォーマンスと、 ゲストOSに対してリソースの柔軟な拡張・変更機能を提供します。 例えば、 コンテナ内からFirewall(IP Tables)制御が利用できたり、 Dockerコマンドを操作してSystemコンテナ内部にApplicationコンテナを用意することがポイントです。
また、 既知のパフォーマンステストを利用したパフォーマンス比較においても、 VHSのコンテナはCentOS KVMによるVMより2倍もの高いパフォーマンスを持ち、 且つ、 極端にパフォーマンスを落とすことなくより多くのゲストOSを1物理サーバーに収容できるスペックを持ち合わせています。 広く知られたKVMと比較して実績が少ないように思われがちですが、 VPSサービスのコアシステムとして数多く導入されている仮想化ソフトウェアで、 レンタルサーバーサービスUS大手のGoDaddy社でも現在採用されています。
![LAMP benchmark](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-05.png)
![Number of Containers/VMs](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-06.png)
![Configuration](https://academy.gmocloud.com/wp/wp-content/uploads/2021/12/vps-hv-container-07.png)
※Virtuozzo社の公開資料より引用
そして、 VMであれば個々のゲストOS管理者が kernel セキュリティにアンテナを張って必要に応じてアップデートを行う必要がありますが、 Systemコンテナによる本サービスでは、 GMOグローバルサイン・ホールディングスによるメンテナンスによってkernelのアップデートが実施されます。 さらに、 有償オプションとして利用可能なサーバー管理ツール Plesk を活用する場合、 kernelから上に位置する各種ソフトウェアアップデートも自動でできるので、 セキュリティ向上を目的とする日々の運用業務の削減にも大きく寄与します。
VPSサービス「クラウドVPS by GMO」は、 同価格帯の他社VPSと比較して確実に高いパフォーマンスを利用者に提供します。 さらに、 1台のシステム構築から、 マルチサーバー構成によるデータベース冗長化やスピード重視のWebサービス確立を助ける、 市場の多様なニーズを取り入れた各種支援機能を提供しつつ、 サービス稼働後は、 運用管理の手がかかりにくく、 手離れの良い安定したシステム基盤を定額で納品するニーズに応えます。 是非VPSの選択の一つとして考えてみてはいかがでしょうか?