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

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

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の豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。

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

news026.png

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

news136.jpg

「Vポイント」「Ponta」と連携したCTV向けターゲティング広告配信と購買分析 マイクロアドが提供開始
マイクロアドは、VポイントおよびびPontaと連携したCTV向けのターゲティング広告配信を開...

news105.jpg

Netflixの広告付きプランが会員数34%増 成長ドライバーになるための次のステップは?
Netflixはストリーミング戦略を進化させる一方、2022年に広告付きプランを立ち上げた広告...