アプリケーションの実行環境を用意するための仮想化技術に、「仮想マシン」(VM)と「コンテナ」がある。これらは類似する技術として考えられる傾向にあるが、その仕組みには明確な違いがあるため、リソースの使用といった基本的な違いを理解して使うことが欠かせない。本稿はVMの短所を踏まえて、VMとコンテナの違いを明らかにする。
CPUやメモリなどのリソースに関して、VMは独立したリソースを必要とする。一方コンテナは、ホストシステムのリソースを共有する。VMのイメージファイルはOSを含むため大きくなりがちであるのに対し、コンテナはコンテナ自身やその中のアプリケーションを動かすためのソフトウェアであるランタイムやライブラリ(プログラム部品群)を含む。こうしたファイルから成るコンテナのサイズは、概してVMよりも小さくなりやすい。そのためコンテナは、実行に必要なリソースがVMよりも少なくて済む傾向にある。
特にクラウドサービスにおいて、これは大きな違いをもたらす。クラウドサービスでVMを使用すると、各VMがそれぞれ必要なリソースを専有するため、同時に実行できるVMの数には限度がある。一方で同じホストシステムにあるコンテナは、ホストシステムのOSをコンテナ間で共有するため、1つのホストシステムでコンテナを効率的に同時実行できる。この効率性は、コンテナ数を増減させる「水平スケーリング」が頻繁に必要となるモダンなアプリケーションにおいて有用だ。一般的には、1台のホストシステムで同時実行できるVM数よりも、同時実行できるコンテナ数の方が多くなる。
つまりコンテナは、アプリケーションのデプロイ(配備)を簡素化する際に役立つ。アプリケーションはコンテナ内で完結するため、アプリケーションに必要な特定のOSやライブラリをホストシステムにインストールする作業は不要だ。「Kubernetes」などのコンテナオーケストレーションツールを用いてデプロイやスケーリングを実行できる。追加のコンテナを実行するためのリソースは、実行中のコンテナが使っているリソース以外にはほとんどない。
米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
「マーケティングオートメーション」 国内売れ筋TOP10(2023年12月)
今週は、マーケティングオートメーション(MA)ツールの売れ筋TOP10を紹介します。
倒産する? マスク氏は金持ちなんだから自腹を切ればいいのでは? Xの将来に関する5つの考察【前編】
主にイーロン・マスク氏の言動をきっかけに広告主の離脱が進む中、Xの将来はますます不透...
世界の一流ブランドはなぜ「ゲーマー」を重視するのか
ブランドがZ世代を理解し、彼らと適切なコミュニケーションを取るためには、何よりもまず...