第5章 · プラットフォームとクラウド·v1.0.0·更新 2026/7/11·読了目安 約15分
変更要約: 初版
5.1仮想化とコンテナ
この節の要点
サーバ仮想化・ストレージ仮想化を担うハイパーバイザ(Type1/Type2)の仕組みと、OSカーネルを共有し起動が速く軽量なコンテナ(Docker)の特徴、そして多数のコンテナを自動運用するKubernetesによるオーケストレーションの判断を学びます。
システムアーキテクトは、限られた物理ハードウェアの上に複数の実行環境をどう載せるかを設計する場面に必ず直面します。1台の物理サーバに複数のOSをまるごと動かす仮想マシン方式と、1つのOSカーネルの上でアプリケーションの実行環境だけを隔離するコンテナ方式は、隔離の強さ・起動速度・リソース効率の点で明確に性質が異なり、要件に応じて使い分けが必要です。この節では両者の違いと、コンテナを大規模に運用するための仕組みを学びます。
5.1.1ハイパーバイザとサーバ/ストレージ仮想化
- ハイパーバイザ=物理ハードウェア上で複数の仮想マシン(VM)を稼働させる制御ソフトウェア。各VMは独立したカーネルを含むOS丸ごとを持ち、CPU・メモリ・ディスクをハイパーバイザが仮想化して各VMに割り当てる。Type1(ベアメタル型)=物理ハードウェア上に直接インストールされ、ホストOSを介さず高い性能と隔離を実現(サーバ仮想化の主流)。Type2(ホスト型)=既存のホストOS上でアプリケーションとして動作し、導入は容易だがオーバーヘッドが大きく検証環境向き。
- ストレージ仮想化=複数の物理ディスク装置を論理的に1つのプールとして扱い、容量拡張・スナップショット・シンプロビジョニング(実使用量に応じた動的割当)を可能にする技術。物理構成の変更をアプリケーション側から隠蔽し、可用性(冗長化)と拡張性を両立させる目的で用いる。
5.1.2コンテナ(Docker)の軽量性と移植性
- コンテナ(代表例:Docker)=ホストOSのカーネルを共有しながら、プロセス空間・ファイルシステム・ネットワークを隔離してアプリケーションを実行する方式。VMのように独立したOSを持たないため、イメージサイズが小さく、起動が数秒未満と高速で、1台のホストにより多くの実行単位を高密度に配置できる。一方でカーネルを共有する分、VMよりOSレベルの隔離が弱い(カーネルの脆弱性が全コンテナに影響しうる)という設計上のトレードオフがある。
- コンテナは「アプリケーションとその依存関係一式をイメージとして固定化する」ため、開発環境・検証環境・本番環境で同一のイメージを動かせる=環境差異に起因する不具合を減らし移植性を高めるという利点がある。この特性から、頻繁なデプロイやスケールアウトを繰り返すマイクロサービス構成との親和性が高い。

