はじめに
今回は、コンテナ型とハイパーバイザー型の違いについてアウトプットを込めて解説していきたいと思います。
この違いは、LPIC304にも試験範囲として出題されていました。
そのため、これから受験しようと思う人には参考になる記事だと思います。
コンテナ型とは何か?
1つのOSの中にアプリケーションを格納する箱を複数用意するという考え方の仮想化技術になります。
図にするとこのような形になります。
特徴
- とにかく処理が軽量
- 一つのOS内でアプリケーションを動作させることができる
- コンテナ設定の再利用が可能
代表的なコンテナ技術
- docker
- Linuxコンテナ
ハイパーバイザー(Hypervisor)とは何か?
ハイパーバイザーとは、コンピューターを仮想化するためのソフトウェアです。
図にするとこのような形になります。
ハイパーバイザーという仮想化ソフトウェアの上に複数のOS(仮想マシン)が乗っているという構成になります。
特徴
- ハイパーバイザーの上に複数の仮想マシンを立てることができる
- それぞれ別のOSでサーバーを立てることができる
代表的なハイパーバイザー技術
- KVM
- OpenStack
- vSphere
- Hyper-V
- Xen
コンテナ型とハイパーバイザー型の違いは?
アプリケーション起動速度
コンテナ型の方が高速です。
なぜなら、OSを一回一回立ち上げる必要がないからです。
試験的にdockerを構築後に「nginx」を導入したことがあります。
実際に「nginx」を起動させてみました。
結果、vSphere上でOSを起動させるよりも圧倒的に早かったです。(30秒程)
このように、アプリケーション起動速度はコンテナの方が早いです。
OSのカスタマイズ性
こちらは、ハイパーバイザーの方が優れています。
なぜなら、コンテナ型は使用するOSが限られているからです。
一方、ハイパーバイザーはOS毎に箱が作成されます。
「一方のサーバーのOSはLinuxにして、他はWindowsにする」
このような要件であれば、ハイパーバイザーの方が優れています。
このように、OSカスタマイズ性を考えるとハイパーバイザーの方が使いやすいです。