こんにちは、おゆかよです。この記事では、応用情報技術者試験で出題される「コンテナ型仮想化」について、基礎から最新トレンドまで学べるよ!試験対策はもちろん、実務で役立つ知識も満載だから、ぜひ最後まで読んでね。

博士!前にもDockerについて勉強したけど、応用情報技術者試験の過去問を見てたら「コンテナ型仮想化」の説明を選ぶ問題が出てきたの。改めて、ちゃんと復習しておきたいな!

それは素晴らしいね、おゆかよさん。Dockerはコンテナ型仮想化を実現するツールの代表格だけど、試験では「概念」そのものが問われることが多いんだ。まずは実際の試験問題を見て、ポイントを整理していこうか。

出典:令和4年度秋期 応用情報技術者試験 午前問12
過去問から学ぶ「コンテナ型仮想化」の正解

画像の問題、選択肢が似ていて迷っちゃうな…。コンテナの特徴って、ズバリ何だったっけ?

コンテナ型仮想化の最大の特徴は、「ホストOSのカーネルを共有し、個別のゲストOSを持たない」ことだよ。だから、正解は「ウ」になるんだ。他の選択肢も見てみよう。
- イ:ハイパーバイザ型(VMware ESXiなど)
- エ:ホスト型(VirtualBoxなど)
これらはどちらも「ゲストOS」を必要とするから、コンテナに比べて動作が重くなってしまうんだね。
なぜコンテナは「軽い」のか?比喩で理解する効率性

ゲストOSを持たないと、どうしてそんなに便利なの?

例えば、マンションに住むのと、家を丸ごと一軒建てるのを想像してみて。従来の仮想化(VM)は、アプリケーションを動かすたびに「一軒家(ゲストOS付きの環境)」を建てるようなものなんだ。土地(物理リソース)をたくさん使うし、建てる(起動する)のにも時間がかかるよね。対してコンテナは、すでに建っているマンション(ホストOS)の中に、自分専用の「個室(コンテナ)」を作るイメージなんだ。玄関や水道(OSの基本機能)は共有しているから、部屋を用意するだけでいい。圧倒的に速くてリソースの無駄がないんだよ。
数式的にリソース消費の効率を考えると、VMのオーバーヘッドを \( O_{vm} \)、コンテナのオーバーヘッドを \( O_{ct} \) とすると、概ね \( O_{vm} \gg O_{ct} \) という関係になるね。この軽量さが、クラウドネイティブな開発には欠かせないんだ。
WasmとAIコンテナ

最近になって、コンテナの使い方も変わってきてるの?

鋭いね。最近ではコンテナよりもさらに軽量なWebAssembly (Wasm)をサーバーサイドで動かす試みが一般的になってきたんだ。コンテナがミリ秒単位で起動するなら、Wasmはマイクロ秒単位。エッジコンピューティングなどで大活躍しているよ。また、AI開発でもコンテナは必須だね。NVIDIAのGPUをコンテナから直接利用する技術が洗練されて、巨大なLLM(大規模言語モデル)の実行環境を1つのコマンドでどこにでも構築できるようになったんだ。まさに、成功事例として「環境差異によるバグの撲滅」が完全に達成されつつあると言えるね。
メリットとデメリットの深い比較

いいことずくめに見えるけど、デメリットはないの?

実は、「セキュリティ上の隔離の弱さ」が課題なんだ。OSカーネルを共有しているから、もしコンテナからカーネルの脆弱性を突かれると、他のコンテナやホスト全体に影響が及ぶリスクがある。これを防ぐために、最近は「コンフィデンシャル・コンピューティング」をコンテナに適用する手法も注目されているよ。また、Windows OS上でLinux専用のコンテナを動かすときなどは、内部で小さな仮想マシンが動いていたりして、結局「重く」なってしまうケースもあるんだ。適材適所が大切だね。
まとめ
コンテナ型仮想化について、応用情報技術者試験の対策として押さえておくべきポイントをまとめるよ!
- 正解の鍵:ホストOSの機能を共有し、ゲストOSを必要としない。
- メリット:起動が速く、リソース消費が少ない。開発環境と本番環境の差異をなくせる。
- 注意点:OSカーネルを共有するため、VMよりも隔離性が低くセキュリティに注意が必要。
- 最新動向:Wasmの台頭やAI実行環境としての標準化が進んでいる。
試験では、よくハイパーバイザ型との違いが問われるから、今回の「マンションの個室」の比喩を思い出して正解を導き出してね!
博士のおすすめアイテム
この記事のテーマに関連して、博士が自信を持っておすすめするアイテムはこちらだよ!
Amazonで「Docker実践ガイド 第3版 (Impress Top Gear)」をチェック
※ 本セクションはPR(広告)です。Amazonアソシエイト・プログラムの参加者として、当サイトは適格販売により収入を得ています。

コメント