クラウド技術用語(3)コンテナ
コンテナ技術は、一つのOS環境上に、コンテナと呼ばれる他のプロセスからは隔離された空間を用意し、一つのホストOS上に隔離された仮想OS環境ごとにアプリケーションの実行が行える技術です。サーバーの仮想化はOS側から仮想化するのに対して、コンテナ型はアプリケーションを仮想化します。コンテナによってマルチOSの環境が実現でき、複数のOSバージョンが必要とされるシステムを一つのOS環境で構築できるメリットがあります。
仮想マシンは起動させるのに数十秒から数分程度かかるのに対して、コンテナの場合は仮想化に伴うオーバーヘッドが少ないために、高速でコンテナを起動や停止をさせることができ、性能が劣化することもほとんどありません。ゲストOSを用意する必要がないため、ディスク使用量も抑えることができます。
オーバーヘッドが少ないことや、CPU、メモリ、ストレージ、ネットワークなどのハードウェアリソースの消費が少ないため、集約率が高いといったメリットもあります。
また、コンテナ単位でパッケージ化されているため、ローカルのパソコンで開発していた環境をクラウドに移行、A社のクラウドで構築した環境をB社のクラウドにといったように、複製や移植性に優れています。
各クラウドサービス事業者は、これまで仮想マシンでのサービス提供が一般的でしたが、コンテナに対応したクラウドサービスも多く登場し始めています。
代表的なソフトウェアでは、Docker社が開発しているオープンソースのコンテナ型仮想化ソフトウェアのDockerがあります。
デメリットは、ホストOSに依存するため、ホストOSに障害などの問題が発生すると、すべてのコンテナは利用できなくなります。また、ゲストOSではLinuxカーネルしか選択できません。また、共有カーネルがセキュリティ攻撃されると、そのカーネルを共有しているすべてのコンテナが危険にさらされる可能性があります。