「仮想マシン」と「物理サーバ」を比較 コンテナにはどちらを選ぶべき?:メリットとデメリットを整理
物理サーバと仮想マシンのどちらがコンテナ導入に適するのか。どちらにも、それぞれ大きな長所と短所がある。
コンテナのメリットは広く知られているが、コンテナの導入先に選ぶべきインフラの種類についてはどうだろうか。コンテナを物理サーバに配備するのは、仮想マシン(VM)に配備するよりも適切な選択なのだろうか。
当然、その答えはさまざまな要素によって変わる。コンテナを物理サーバとVMで運用することには、それぞれ長所と短所がある。
併せて読みたいお薦め記事
「コンテナ」についてもっと詳しく
- いまさら聞けないコンテナの歴史 「chroot」から「Docker」まで
- コンテナ管理ツールは「Docker」だけではない 主要ツールを紹介
- DockerとKubernetesのさらに先へ拡大するコンテナエコシステム
「物理サーバ」のメリット
物理サーバとVMの比較
2000年代にデータセンターでサーバ仮想化技術が普及して以来、最高技術責任者(CTO)は物理サーバとVMのどちらが適切かをずっと考えてきた。コンテナ管理ツール「Docker」の名を誰もが耳にするようになったのは、そのかなり後のことだ。Dockerの登場は2013年にさかのぼる。
主要な物理サーバのメリットは、次の通りだ。
- 物理ハードウェアのエミュレーションによるシステムリソースの浪費が基本的にはないため、パフォーマンスが高い。
- 負荷のピーク時に未使用のシステムリソースが生じにくく、リソースを十分に活用しやすい。
一方のVMには、以下のようなメリットがある。
- サーバから別のサーバへVMイメージを転送するだけで、サーバ間でアプリケーションを簡単に移動できる。
- アプリケーションを異なるVMで実行させることで、アプリケーション同士を論理的に分離できる。この構造はセキュリティ上のメリットがあり、管理の複雑さも減る。
ただしVMには、次のような幾つかのデメリットも伴う。
- サーバリソースが十分に活用されない可能性がある。例えばVMイメージを作成するためにサーバのストレージ領域を確保すると、その領域を他の目的に使用することが難しくなる。VMがそのストレージ領域を使い切っていなくても同様だ。
- ほとんどの場合、VMから物理ハードウェアへの直接アクセスはできない。例えば演算処理をサーバのGPU(画像処理プロセッサ)にオフロード(移転)することは、少なくとも簡単にはできない。
- VMではアプリケーションとハードウェアの間に抽象化層が追加されるため、一般的に物理サーバと同程度のパフォーマンスではアプリケーションを実行できない。
サーバ仮想化製品の最新機能は、管理者がこうした制約を回避するのに役立つ可能性がある。VMの使用量増加に合わせてディスクイメージの容量を動的に拡大させる機能を使えば、ゲストOSが実際に使わないにもかかわらず、サーバのストレージ領域を余分に確保してしまう事態を回避できる。VMからサーバの物理ハードウェアに直接アクセスするパススルー機能の実装も進む。
こうした機能は、必ずしも適切に動作しないことがある。全ての種類のゲストOSで利用できるわけでもない。新たな機能によって管理の負担が増える可能性もある。実行したいアプリケーションで物理ハードウェアへのアクセスが必要なら、そのアプリケーションは物理サーバで実行するのが最適だ。
物理サーバ×コンテナで不可能を可能に
物理サーバでコンテナを実行すると、以下のようなメリットを享受できる。しかもVMのデメリットは伴わない。
Copyright © ITmedia, Inc. All Rights Reserved.