⌚ 2020/10/19 (Mon) 🔄 2024/3/20 (Wed)
コンテナ型仮想化について
- コンテナ技術について勉強する機会があったので、コンテナ型仮想化について
簡単に紹介したいと思います。
■コンテナ型仮想化とは
コンテナ型仮想化とは、ホストOS上でアプリケーションの実行環境をコンテナという
単位で構築でき、従来の仮想化技術よりも少ないコンピューティングリソースで
仮想環境を構築できる仮想化技術です。
■コンテナ型仮想化と従来の仮想化との違い
言葉では分かりにくいと思うので、現在よく使われいるハイパーバイザー型仮想化と
比較してみます。
コンテナ型仮想化とハイパーバイザー型仮想化の一番の違いは
OSの部分にあります。
ハイパーバイザー型は仮想マシンごとにゲストOSが含まれているので、
そのゲストOSを使用してアプリケーションを実行します。
それに対して、コンテナ型仮想化ではコンテナにはOSは含まれておらず、
各コンテナはホストOSのカーネルを共有して使用します。
コンテナはホストOS上で分離された1つのプロセスとして動作します。
この点がコンテナ型仮想化とハイパーバイザ型仮想化の一番の違いといえます。
■コンテナ型仮想化のメリット
- ・オーバーヘッドが小さい
- コンテナ環境ではコンテナ毎にOSを持つのではなく、
ホストOS上の1プロセスとして動作するためOSの起動手順が必要ありません。
そのため、ハイパーバイザー型と比べ、オーバーヘッドが少なく、
コンテナの起動・停止が高速であるというメリットがあります。
- ・環境構築が容易
- コンテナ環境の構築は、とても簡単に行うことができます。
また、まったく同じ環境を複数用意することも容易にできるため、
環境構築や管理に要する作業が大幅に削減できます。
■コンテナ型仮想化のデメリット
- ・ホストOSと異なるOSのシステムが使えない
- コンテナではホストOSのカーネルを共有するため、
LinuxOS上でWindowsのコンテナを動かすといったようなことができません。
- ・分離レベルが低い
-
ハイパーバイザー型では、ハードウェアレベルで仮想化され、
分離レベルが高く他の仮想マシンの影響を受けにくいですが、
コンテナ型では1プロセスとして動作するため、
ハイパーバイザー型に比べて分離レベルが低く他のコンテナの影響を受けやすいです。
■まとめ
コンテナ型仮想化とハイパーバイザー型仮想化の両方のメリット・デメリットを理解して
使い分けていくことが大切だと感じました。
とても便利な技術なので、これからも学習を続けていきたいと思います。