古いバージョンのブラウザーを使用しています。MSN を最適にご利用いただくために、サポートされているバージョンをご使用ください。

コレ1枚で分かる「仮想マシンとコンテナの違い」

ITmedia エンタープライズ のロゴ ITmedia エンタープライズ 2016/12/19
コレ1枚で分かる「仮想マシンとコンテナの違い」: 1つのOSの上で「コンテナ」と呼ばれる「他のユーザーから隔離されたアプリケーション実行環境」を作り、あたかも個別独立したサーバのように使おうというのが「コンテナ仮想化」 © ITmedia エンタープライズ 提供 1つのOSの上で「コンテナ」と呼ばれる「他のユーザーから隔離されたアプリケーション実行環境」を作り、あたかも個別独立したサーバのように使おうというのが「コンテナ仮想化」

 ハードウェアに搭載されているプロセッサやメモリの使用時間を細かく分割し、それぞれをひとまとめにして複数の個別独立したサーバのように機能させるのが「サーバ仮想化」です。こうして作られた見掛け上のサーバを「仮想サーバ」または「仮想マシン」といいます。この仮想マシンを実現するソフトウェアはハイパーバイザーで、VMwareのESXi、LinuxのKVM、MicrosoftのHyper-Vなどがあります。

 一方、1つのOSに「コンテナ」と呼ばれる「他のユーザーから隔離されたアプリケーション実行環境」を作り、あたかも個別独立したサーバのように使おうというのが「コンテナ仮想化」です。これを実現するソフトウェアはコンテナ管理ソフトウェアで、Dockerと呼ばれるオープンソースのソフトウェアが圧倒的なシェアを占めています。

 両者は、「隔離されたアプリケーション実行環境」を提供するということでは同様ですが、仮想マシンでは、それぞれにOSを動かさなくてはなりません。そのため、仮想マシンごとにプロセッサやメモリを消費し、ストレージも必要です。

 一方、コンテナでは、1つのOSで稼働しますので、プロセッサやメモリの消費は少なく、ストレージの使用もわずかです。そのため、仮想マシンに比べて起動時間が短く、同じ性能のハードウェアであれば、より多くのコンテナを同時に動かすことができます。

 また、コンテナ管理ソフトウェアがハードウェアやOSごとの違いを吸収してくれるため、既にアプリケーションやミドルウェアの稼働が確認されているコンテナであれば、他のサーバに移して動かしても確実に動くことが保証されます。

 仮想マシンでは、実行環境が変われば、ハードウェアやOSの設定を確認しなければなりませんので、コンテナよりも手間が掛かります。ただ、仮想マシンは1つの独立したサーバーとして機能しますので、仮想マシンごとに異なるOSを動かすことができます。一方コンテナは1つのOSから作られているため、OSは同じでなくてはなりません。

 システム資源の負担が大きく、可搬性は低いが、自由度が高い仮想マシン。システム資源の負担は小さく、可搬性は高いが、OSは限られるコンテナ。これらは、用途に応じて使い分ける必要があります。

ITmedia エンタープライズの関連記事

image beaconimage beaconimage beacon