コンテナと仮想化の違いとは?

仮想マシンは、ハイパーバイザーレイヤでエミュレートされた Guest OS を意味し、一つのハードウェア上に複数の Guest OS が展開されます。 コンテナ は、アプリケーションレイヤでエミュレートされた仮想環境で、これらは一つの OS カーネルを共有します。

containers vs VMs

システムのパフォーマンス

仮想マシン
従来の仮想マシンによる仮想化では、 それぞれの仮想マシンには独自の OS が搭載されているため、仮想マシン上のアプリケーションを実行すると、メモリ使用量が増加し、仮想マシンがサーバのリソースを使い果たす場合があります。
コンテナ
コンテナ化されたアプリケーションは、OS 環境(カーネル)を共有しているため、仮想マシンよりもリソースの利用が抑えられ、サーバーのメモリ負荷が軽減されます。

コンテナの負荷

仮想マシン
従来の仮想マシンは、ディスク容量を占有することがあります。これは仮想マシンに搭載されているアプリケーションに加えて、OS とその関連ツールが容量に含まれるためです。
コンテナ
コンテナは仮想化に比べて軽量です。コンテナには、アプリケーションを実行するために必要なライブラリとツールのみが含まれるため、仮想マシンよりもコンパクトで起動も早くなります。

containers vs VMs

メンテナンスとアップデート

仮想マシン
OS のアップデートやパッチの適用に関しては、従来の仮想マシンでは全ての仮想マシンでそれぞれ OS のアップデートやパッチ適用を行う必要があります。
コンテナ
コンテナでは、更新が必要となるのはコンテナホスト(コンテナを搭載しているサーバ)の OS のみとなるため、メンテナンスが楽になります。

containers vs VMs

Alibaba Cloud Elastic Container Instance (ECI) は迅速でセキュアなサーバレスのコンテナインスタンスサービスです。サーバーの管理は不要で、簡単にコンテナを実行できます。また、コンテナによって消費されたリソースに対してのみ課金が発生します。ECI によって、IT インフラストラクチャの管理ではなく、ビジネスアプリケーションに集中することが可能になります。(ECI は JP サイトでは今後リリース予定となります。2019年2月時点)

関連情報