「仮想マシン」と「コンテナ」の強みが分かる“根本的な違い”いつもコンテナが最適とは限らない【後編】

仮想化技術として、企業におけるシステムの構築や運用に使われている「仮想マシン」と「コンテナ」には、どのような違いがあるのか。それぞれの仕組みの違いを踏まえて、得意なことと不得意なことを明らかにする。

2023年11月21日 05時00分 公開
[Matthew GrasbergerTechTarget]

関連キーワード

仮想マシン(VM) | 仮想化


 アプリケーションの実行環境を用意するための仮想化技術に、「仮想マシン」(VM)と「コンテナ」がある。これらは類似する技術として考えられる傾向にあるが、その仕組みには明確な違いがあるため、リソースの使用といった基本的な違いを理解して使うことが欠かせない。本稿はVMの短所を踏まえて、VMとコンテナの違いを明らかにする。

仮想マシン(VM)の短所

 CPUやメモリなどのリソースに関して、VMは独立したリソースを必要とする。一方コンテナは、ホストシステムのリソースを共有する。VMのイメージファイルはOSを含むため大きくなりがちであるのに対し、コンテナはコンテナ自身やその中のアプリケーションを動かすためのソフトウェアであるランタイムやライブラリ(プログラム部品群)を含む。こうしたファイルから成るコンテナのサイズは、概してVMよりも小さくなりやすい。そのためコンテナは、実行に必要なリソースがVMよりも少なくて済む傾向にある。

 特にクラウドサービスにおいて、これは大きな違いをもたらす。クラウドサービスでVMを使用すると、各VMがそれぞれ必要なリソースを専有するため、同時に実行できるVMの数には限度がある。一方で同じホストシステムにあるコンテナは、ホストシステムのOSをコンテナ間で共有するため、1つのホストシステムでコンテナを効率的に同時実行できる。この効率性は、コンテナ数を増減させる「水平スケーリング」が頻繁に必要となるモダンなアプリケーションにおいて有用だ。一般的には、1台のホストシステムで同時実行できるVM数よりも、同時実行できるコンテナ数の方が多くなる。

 つまりコンテナは、アプリケーションのデプロイ(配備)を簡素化する際に役立つ。アプリケーションはコンテナ内で完結するため、アプリケーションに必要な特定のOSやライブラリをホストシステムにインストールする作業は不要だ。「Kubernetes」などのコンテナオーケストレーションツールを用いてデプロイやスケーリングを実行できる。追加のコンテナを実行するためのリソースは、実行中のコンテナが使っているリソース以外にはほとんどない。

TechTarget発 世界のインサイト&ベストプラクティス

米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。

Copyright © ITmedia, Inc. All Rights Reserved.

アイティメディアからのお知らせ

From Informa TechTarget

なぜクラウド全盛の今「メインフレーム」が再び脚光を浴びるのか

なぜクラウド全盛の今「メインフレーム」が再び脚光を浴びるのか
メインフレームを支える人材の高齢化が進み、企業の基幹IT運用に大きなリスクが迫っている。一方で、メインフレームは再評価の時を迎えている。

ITmedia マーケティング新着記事

news017.png

「サイト内検索」&「ライブチャット」売れ筋TOP5(2025年5月)
今週は、サイト内検索ツールとライブチャットの国内売れ筋TOP5をそれぞれ紹介します。

news027.png

「ECプラットフォーム」売れ筋TOP10(2025年5月)
今週は、ECプラットフォーム製品(ECサイト構築ツール)の国内売れ筋TOP10を紹介します。

news023.png

「パーソナライゼーション」&「A/Bテスト」ツール売れ筋TOP5(2025年5月)
今週は、パーソナライゼーション製品と「A/Bテスト」ツールの国内売れ筋各TOP5を紹介し...