仮想化・コンテナ・Docker|ITパスポート試験対策
仮想マシン(VM)とコンテナの違い、ハイパーバイザの種類、Docker・Kubernetes の基礎をITパスポート試験向けに整理します。
仮想化とは
仮想化とは、物理ハードウェア上に論理的な仮想環境を作り出す技術です。この技術により、複数のシステムを同時に動作させることが可能になります。具体的には、1台のサーバをあたかも複数台のサーバであるかのように見せかけたり、逆に複数台のサーバを1台として統合して扱うこともできます。仮想化の主なメリットとして、リソースの効率的な利用、コストの削減、そしてシステムのスケーラビリティ向上が挙げられます。
仮想化の2 大方式
サーバ仮想化(VM・ハイパーバイザ型)
サーバ仮想化(VM・ハイパーバイザ型)では、ハイパーバイザと呼ばれるソフトウェアが物理ハードウェア上で動作し、複数の仮想マシン(VM)を管理します。各仮想マシンは完全に独立したOSを持ち、それぞれ別々のシステムとして振る舞います。例えば、1台の物理サーバ上でWindowsとLinuxを同時に実行することも可能です。ただし、起動には数十秒から数分かかり、リソース消費も大きいという特徴があります。代表的な製品としてVMware、Hyper-V、KVMが挙げられます。
ハイパーバイザの2 タイプ
ハイパーバイザには2つのタイプが存在します。タイプ1(ベアメタル型)はハードウェアに直接インストールされる方式で、VMware ESXiやHyper-Vが該当します。タイプ2(ホスト型)は既存のOS上で動作する方式であり、VirtualBoxやVMware Workstationが代表例です。タイプ1は高いパフォーマンスが期待でき、タイプ2はホストOSの機能を利用できるという違いがあります。
コンテナ型仮想化
コンテナ型仮想化では、ホストOSのカーネルを共有し、アプリケーションとその依存ライブラリのみをパッケージ化して動作させます。そのため起動が数秒と高速で、リソース消費も少ないという利点があります。ただし、ホストOSの種類と同じOS上でしか動作できないという制約があります。コンテナ型仮想化の代表的なプラットフォームとしてDockerがあります。
Docker
Dockerは、2013年から広く使われているコンテナ型仮想化の代表的なプラットフォームです。コンテナの定義はDockerfileというファイルにコードとして記述します。また、コンテナイメージの共有にはDocker Hubと呼ばれるレジストリが利用されています。
Kubernetes(k8s)
Kubernetes(k8s)は、多数のコンテナを自動で配置、スケール、障害復旧するオーケストレーションツールです。Googleが開発を開始し、現在はCNCF(Cloud Native Computing Foundation)が管理しています。大規模なシステムにおけるコンテナ管理の標準技術として広く採用されています。
VM とコンテナの違いまとめ
| 観点 | VM | コンテナ |
|---|---|---|
| OS | 各 VM に独自 | ホスト OS と共有 |
| 起動速度 | 遅い | 速い |
| リソース消費 | 大 | 小 |
| 分離性 | 高 | 中 |
| OS 種別 | 自由 | ホストと同じ |
ITパスポート試験での出題ポイント
ITパスポート試験では、VMとコンテナの違いを問う問題が頻出です。特に、それぞれの起動速度やリソース消費、分離性の違いを正しく理解しておく必要があります。ハイパーバイザのタイプ1とタイプ2の区別も覚えておきましょう。また、DockerやKubernetesがそれぞれどのような役割を担うのかも重要です。
過去問の典型パターン
- 「コンテナと仮想マシンの違いとして正しいものはどれか」型
- 「コンテナを管理するオープンソースのプラットフォームはどれか」型 → Docker
関連用語
- クラウドサービス(SaaS・PaaS・IaaSの違い)
- マイクロサービス(クラウドネイティブとマイクロサービス)
- DevOps(DevOpsとは)
学習のコツ
学習のコツとしては、まずVMはOSまで仮想化するのに対し、コンテナはアプリケーションのみをパッケージ化するという違いを押さえましょう。ハイパーバイザについては、タイプ1はハードウェアに直接インストールされ、タイプ2は既存OSの上で動作するという点を区別します。また、Dockerはコンテナそのものを扱うプラットフォームであり、Kubernetesはコンテナのオーケストレーションを行うツールであると覚えてください。
まとめ
VMとコンテナの違い、そしてDockerとKubernetesの役割を理解していれば、関連問題で得点できるでしょう。テクノロジ系を網羅的に演習したい方はテクノロジ系まとめを参照し、本番形式の問題に取り組みたい方は模擬試験を活用してください。