正解:イ
各選択肢の解説
アコンテナごとにゲストOSを持つので、更新の漏れが取引先の数だけ生じうる。
誤り。ゲストOSをそれぞれ持つのは仮想マシン(ハイパーバイザー型・ホスト型)のほうです。 コンテナはゲストOSを起動しないので軽いという特徴と、取り違えています。
イコンテナはホストOSのカーネルを共有し、その脆弱性が他のコンテナにも及びうる。
正解。コンテナは1つのホストOSのカーネルを全員で使います。そのカーネルに脆弱性があると、 1つのコンテナから同じサーバ上の他のコンテナへ影響が及ぶおそれがあります。
ウコンテナはホスト型の仮想化より分離が弱く、ホスト型に変えれば最も強くなる。
誤り。ホスト型は、ホストOSの上で仮想化ソフトを動かす方式です。仮想マシンごとに ゲストOSを持つので分離はコンテナより強いものの、ホストOSが共通の土台として残ります。 最も強いとは言えません。
エ複数のサーバでクラスタを組まないと、コンテナどうしは分離されない。
誤り。クラスタは、複数のサーバをまとめて1台のように動かし、可用性や性能を高める構成です。 止まりにくくする仕組みで、同じサーバ上の利用者どうしを分ける仕組みではありません。
理解を深めるために
コンテナは「台所を共有する個室」
コンテナ型の仮想化は、1つのOSの上で、アプリケーションの実行環境を区切って動かす方式です。 個室は分かれていても、台所(OSの中核であるカーネル)は全員で共有している状態に似ています。 共有している部分に穴があれば、隣の個室にも入られるおそれがあります。
なぜ共有が分離の弱さになるのか
- コンテナ型: ゲストOSを起動せず、ホストOSのカーネルを共有する。軽くて速いが、 カーネルの脆弱性を突かれると、同じサーバ上の他のコンテナへ影響が及ぶおそれがある
- ハイパーバイザー型: ハードウェアの上で直接ハイパーバイザーが動き、 仮想マシンごとにゲストOSを持つ。カーネルを共有しないので、分ける力は強い
- ホスト型: ホストOSの上で仮想化ソフトを動かし、その上でゲストOSを動かす。 ゲストOSは分かれるが、ホストOSが土台として残る
取引先のように、互いに見えてはいけない利用者を同じサーバに載せるときは、 仮想マシンで分ける、物理サーバを分けるといった選択が検討されます。
混同しやすいものとの違い
| 方式・構成 | 何を共有するか/何のためか |
|---|---|
| コンテナ型 | ホストOSのカーネルを共有する |
| ハイパーバイザー型 | 仮想マシンごとにゲストOSを持ち、カーネルを共有しない |
| ホスト型 | ゲストOSは分かれるが、ホストOSの上で動く |
| クラスタ | 複数台をまとめて可用性・性能を高める(分離とは別の目的) |
コンテナの「軽い」と「分離が弱い」は、どちらもカーネルの共有から来ています。 同じ理由の表と裏として覚えます。