1台の物理サーバーの上で、Windows用のアプリとLinux用のアプリを、まるで別々のコンピューターであるかのように同時に動かすことはできるでしょうか?
昔は「1台の物理サーバー=1つのOS」が当たり前でした。しかし今では、1台の中に複数の「独立したコンピューター」を作り出す技術が一般的になっています。どんな仕組みでそれが実現できそうか、考えてみてください。
1つのビルを「仕切り」でオフィスに分ける
仮想化(virtualization)とは、1台の物理的なハードウェアの上に、複数の独立した実行環境を作り出す技術です。1棟のオフィスビルを、壁で仕切って複数のテナント(会社)に貸し出すイメージに近いものです。ビル(物理サーバー)は1つでも、中に入っている会社(実行環境)はそれぞれ独立して動いています。
VM(仮想マシン)とハイパーバイザ
仮想化の代表格がVM(Virtual Machine、仮想マシン)です。VMは、物理サーバーの上にOSごとまるごと再現された仮想的なコンピューターです。1台の物理サーバー上で、Windows用のVMとLinux用のVMを同時に動かす、といったことが可能になります。
この仮想化を実現するソフトウェアがハイパーバイザ(hypervisor)です。ハイパーバイザには大きく2つのタイプがあります。
- タイプ1(ベアメタル型):ハードウェアの上に直接インストールされ、その上でVMを動かします。物理サーバーに直接インストールする方式で、サーバー用途で広く使われます(例:VMware ESXi)。
- タイプ2(ホスト型):既存のOS(Windowsなど)の上にアプリケーションとしてインストールし、その中でVMを動かします。個人のPCで手軽に検証環境を作る際などに使われます。
CCNAでは「タイプ1はハードウェア上に直接、タイプ2は既存OS上に間借りする形」という違いを押さえておけば十分です。
コンテナ:もっと軽量な仕切り方
コンテナ(container)は、VMよりも軽量な仮想化技術です。VMがOSごとまるごと再現するのに対し、コンテナはホストOSのカーネルを共有しながら、アプリケーションの実行環境だけを分離します。そのため、VMに比べて起動が速く、リソース消費も少ないという特徴があります。
VMを「部屋ごと独立した一戸建て」、コンテナを「同じ建物の中で仕切られたシェアオフィスの1区画」に例えると、コンテナがOS部分を共有しつつも独立性を保っている感覚がつかみやすいでしょう。
クラウドの3分類:IaaS・PaaS・SaaS
仮想化技術を使って外部の事業者がリソースを提供するサービスがクラウドコンピューティングです。クラウドサービスは、利用者がどこまで管理するかによって3つに分類されます。
| 分類 | 正式名称 | 利用者が管理する範囲 | 具体例 |
|---|---|---|---|
| IaaS | Infrastructure as a Service | OS・ミドルウェア・アプリ | 仮想サーバー、ストレージ |
| PaaS | Platform as a Service | アプリケーションのみ | アプリの実行基盤 |
| SaaS | Software as a Service | 利用(設定程度) | Webメール、業務アプリ |
IaaSは仮想サーバーやストレージなど「土台」だけを借り、その上のOSやアプリは自分で管理します。PaaSはアプリを動かすための実行基盤(プラットフォーム)まで提供され、開発者はアプリの中身に集中できます。SaaSは完成されたソフトウェアをそのまま利用する形態で、利用者はインフラのことを一切気にする必要がありません。
「下に行くほど(IaaS側)自由度は高いが管理の手間も増え、上に行くほど(SaaS側)手軽だが自由度は下がる」という感覚で覚えると整理しやすくなります。
1台の物理サーバー上で、ホストOSのカーネルを共有しながら、VMよりも軽量にアプリケーションの実行環境を分離する技術は何でしょう?
答えを見る
答えはコンテナ(container)です。VMがOSごとまるごと仮想化するのに対し、コンテナはホストOSのカーネルを共有するため、起動が速くリソース消費も少ないという特徴があります。
試験でのポイント
CCNA試験では、VMとコンテナの違い(VMはOSごと仮想化、コンテナはカーネルを共有して軽量)と、ハイパーバイザのタイプ1(ベアメタル型)とタイプ2(ホスト型)の違いがよく問われます。また、クラウドサービスの分類としてIaaS・PaaS・SaaSの3つを、利用者が何を管理し何を管理しないかという観点で正しく対応させる問題も定番です。「クラウドはすべて同じ」と考えず、それぞれの管理範囲の違いを意識して覚えておきましょう。
利用者がアプリケーションの開発と実行に集中でき、OSやミドルウェアの管理はサービス提供者側が行うクラウドの分類はどれでしょう?
答えを見る
答えは PaaS(Platform as a Service)です。IaaSはOSより下のインフラのみを提供し、SaaSは完成したソフトウェアをそのまま提供します。PaaSはその中間で、アプリを動かすためのプラットフォームまでを提供します。
仮想化は「1つのハードウェアを仕切って複数の環境を作る」技術。VMは部屋ごと独立、コンテナはOSを共有した軽量版。クラウドはIaaS・PaaS・SaaSで管理範囲が変わる——ここは表で整理して覚えておくと試験でも迷わないよ。次はいよいよ自動化の話。なぜネットワークを自動化する必要があるのか、見ていくよ。