仮想マシンとコンテナを徹底解説【第3回】
いまさら聞けない「仮想マシン」と「コンテナ」の違い 使い分け方は?
依然として多くのインフラで重要な役割を担っている仮想マシンと、クラウドネイティブな技術として台頭してきたコンテナ。両者の違いを明らかにし、どう使い分けるべきかを解説する。
アプリケーションの開発や更新を素早く行いたい、インフラの運用をより効率的にしたい、といったニーズが高まる中、改めて注目を集めている仮想化技術。物理サーバごとに分離された仮想環境を提供する仮想マシン(VM)が広く使われる一方で、「コンテナ」の仮想化技術も存在感を増している。
仮想マシンとコンテナは、いずれも仮想化の一形態として語られることが多いが、両者の仕組みは大きく異なる。仮想化とコンテナの違い、そしていま求められている仮想化技術の在り方を押さえておこう。
いまさら聞けないコンテナは仮想マシンと何が違うか
コンテナ化とは、アプリケーションとその実行に必要な環境(ソースコードや依存関係、設定など)を一つの単位としてパッケージ化し、他のアプリケーションとは分離した状態で実行できるようにする技術を指す。これにより、異なるOSやインフラ環境であっても、アプリケーションを安定して動作させやすくなる。
仮想マシンとは異なり、コンテナはホストOS(物理サーバ上で稼働するOS)のカーネルを直接利用する。各コンテナは独立して動作するように見えるが、実際には同じホストOSのカーネルを共有している。その分だけ、独立したOSを持つ仮想マシンよりも軽量かつ高速に起動できるのがコンテナの特徴だ。
コンテナには、アプリケーションの実行に必要なソースコードに加え、システムツール、ランタイム(実行環境)、ライブラリ(アプリケーションが利用す部品の集まり)、設定ファイルなどが含まれている。これらを1つにまとめてパッケージ化することで、単一のOS上でも複数のコンテナを並行して実行できるため、複数のアプリケーションを効率よく稼働させたい場面でよく使われる。
コンテナは、マイクロサービスを基盤とする分散アプリケーションなど、クラウド環境での運用を前提とした「クラウドネイティブ」なアプリケーションに使われている。アプリケーションの可搬性(ポータビリティー)を高めたり、展開を簡素化したりする目的でもコンテナを活用するケースが広がっている。
こうしたコンテナ技術を広く普及させるきっかけとなったのが、2013年に登場したLinuxベースのコンテナ管理ツール「Docker」だ。
併せて読みたいお薦め記事
連載:仮想マシンとコンテナを徹底解説
仮想マシンの選択肢
仮想マシンとコンテナの違い
仮想マシンは、ホストマシン(物理サーバ)のCPUやメモリ、ストレージといったリソースを個別に割り当てて動作する。そのため、1台の仮想マシンがストレージやメモリなどを過剰に消費し、別のVMが十分なリソースを使えなくなるといった偏りが生じる可能性がある。こうした状況を防ぐには、リソースを適切に分配・制御する必要がある。仮想環境全体のリソースを抽象化し、バランスよく管理できるようにするための仮想化ソフトウェアがハイパーバイザーだ。
コンテナは、仮想マシンに比べてオーバーヘッド(余分な処理負荷)が小さく、はるかに軽量だ。起動も速く、CPUやメモリといったリソースの消費も少ない。アプリケーションとその実行環境をまとめて持ち運べる特性もあるため、異なる実行環境への移行(移植)もしやすい。こうした特性から、マイクロサービスアーキテクチャなどの最新のアプリケーション設計に適している。
ただし、コンテナはホストOSのカーネルを利用する仕組みであるため、Linuxで作ったコンテナはLinux上でしか動かせないなど、基本的に同じOS環境が必要になる。一方、仮想マシンは独自のOS(ゲストOS)を搭載しており、ホストマシンとは異なる種類のOSを実行することができる。仮想マシンはコンテナに比べて高い隔離性を持ち、これはセキュリティや安定性の確保がしやすいという利点につながる。
こうした特性から、仮想マシンは、複数のアプリケーションを同時に稼働させたい場合や、機能が密接に結び付いた大規模なモノリシックアプリケーションを運用する場合に適している。特に、古いOSやミドルウェアに依存しており、他のシステムと混在させると不具合やセキュリティ上の問題が生じかねないレガシーアプリケーションにとっては、仮想マシンのように他の環境と完全に分離された実行基盤が有効だ。
仮想マシンとコンテナの併用
仮想マシンとコンテナは、併用することでそれぞれの強みを生かすことができる。仮想マシンは高い隔離性をもたらし、コンテナは軽量かつ迅速なデプロイを実現する。コンテナだけでは補い切れないセキュリティ層を仮想マシンで補強することも可能だ。こうした構成により、最新のクラウドネイティブアプリケーションと、既存のレガシーアプリケーションの両方を同じ基盤で支える「ハイブリッドインフラ」が実現できる。
このようなハイブリッド環境は、HCI(ハイパーコンバージドインフラ)製品でも採用が進んでいる。多くのHCI製品は、コンテナオーケストレーションツール「Kubernetes」に対応しており、コンテナ化したワークロード(アプリケーションやその処理タスク)を仮想マシンで実行できる。これにより、従来の仮想マシンベースのシステムと最新のクラウドネイティブなワークロードを、同じインフラで効率的に運用できるようになる。
次回は代表的な仮想化製品を紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.
TechTarget発 世界のインサイト&ベストプラクティス
米国TechTargetの豊富な記事の中から、さまざまな業種や職種に関する動向やビジネスノウハウなどを厳選してお届けします。
この記事の著者
関連記事
新着ホワイトペーパー PR
-
製品資料
[LRM株式会社] 「標的型攻撃メール」事例・サンプル集 -
製品資料
[LRM株式会社] セキュリティ教育はなぜ「年間計画」を立てる必要があるのか? -
製品資料
[LRM株式会社] セキュリティの重要性が伝わらない…… 効果がない社員教育から脱却する方法 -
製品資料
[LRM株式会社] 「標的型攻撃メール訓練」導入ガイド 社員の意識を確実に高める仕組みの作り方 -
事例
[株式会社マクニカ] アイカ工業に学ぶ脆弱性対策 情シスが把握できずにいたアセットも正確に把握
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
「VMware離れ」は本当か 3000社がVCF 9にかじを切った現実的な理由
-
2
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
3
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
4
AI全部入り「Microsoft 365 E7」に企業が二の足を踏む訳 移行意向はわずか4%
-
5
エンジニアが選考を辞退する本当の理由 7割が隠す“面接の違和感”とは
-
6
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
7
Oracle巨大ITプロジェクトはなぜつまずいたのか 8年で導入1割、追加で170億ドル
-
8
Microsoft製品でここまで自動化できる 情シスがやめられる手作業10選
-
9
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
10
GitHubが指摘 AIが書いた「おそらく動くコード」が招くシステム崩壊
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
3
5回聞くだけじゃ足りない? トヨタ式「なぜなぜ分析」の正しい実践方法
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
インシデント対応工数を約3割削減、東京ガスの事例に学ぶ監視体制刷新のコツ
-
7
PostgreSQLの「機能」「性能」「運用」「拡張性」に関する悩みの解消法
-
8
5分で分かる「セキュア大容量ファイル転送サービス」の機能とメリット
-
9
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
10
情報セキュリティ対策早分かりガイド:25の自社診断で弱点と解決策を理解
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー