今回は、サーバ仮想化に関する内容だね!
ホスト型、ハイパバイザ型、コンテナ型について学んでいきましょう!
・ホスト型、ハイパバイザ型、コンテナ型の特徴
仮想化技術は、画期的な技術です。仮想化技術の登場により、システムの開発・運用の効率が格段に上がります。本記事では、その中でも、サーバー仮想化を達成する技術について解説しようと思います。具体的には、ホスト型、ハイパバイザ型、コンテナ型について解説します。というのも、サーバー仮想化の技術はプログラマーにとってかなり身近であり、また、これら3つの違いがわかりづらく、どの技術を使用すればよいか迷うことが多いからです。本記事を読むことで、3つの違いがはっきりしてくるでしょう。
ハードウェアのリソースを抽象化し、物理的な制限にとらわれず、ソフトウェア的に統合・分割できるようにする技術です。仮想化技術は、サーバー仮想化、ストレージ仮想化、ネットワーク仮想化など、さまざまな用途に用いられています。
1台の物理サーバー上に複数の仮想マシン(仮想サーバ)を実行する技術です。仮想マシンとは、ハードウェアのリソースを割り当てて作成された、独立したコンピュータです。仮想マシンは、物理マシンと同一のOSやアプリケーションを実行することができます。代表的なサーバー仮想化の技術としては、ホスト型、ハイパバイザ型、コンテナ型が挙げられます。以下では、これらについて詳しく解説していきます。
(仮想化技術に関連する記事はこちら↓)
コンテナ管理を任せるなら? Amazon ECS vs Amazon EKS
AWS でバッチ処理を実装するなら? AWS Lambda vs Amazon ECS vs AWS Batch を徹底比較
ホスト OS によって物理サーバを動作させ、ホスト OS 上で動作するホスト型仮想ソフトウェアによって、複数の仮想マシンを稼働させる方式です。仮想マシン内のゲスト OS 上でアプリケーションを動作させます。
メリットは、既に動作しているコンピュータの中に仮想マシンが作れるので、導入しやすいという点が挙げられます。一方で、デメリットは、オーバーヘッド(負荷)が大きく、処理速度が遅くなりやすいということです。
ハイパバイザと呼ばれる仮想化ソフトにより物理サーバーを動作させ、複数の仮想マシンをサーバを稼働させる方式です。仮想マシン内のゲスト OS 上でアプリケーションを動作させます。
メリットは、ホスト OS に頼らないため、ハードウェアを直接制御することができ、リソースの使用効率がよいことです。一方で、デメリットは、場合によっては、ハイパバイザとそれを運用するための高度な管理ツールを自分で用意する必要があるということです。
ホスト OS によって物理サーバを動作させ、ホスト OS 上で動作するコンテナ型仮想ソフトウェアによって、コンテナと呼ばれる複数の仮想サーバを稼働させる方式です。コンテナは、アプリケーションやその実行に必要なソフトウェアやライブラリなどを一つのパッケージとしてまとめたもので、コンテナ内では、ゲスト OS は動作せず、ホスト OS が必要な機能を提供します。
メリットは、一つの OS で稼働するため、必要最小限のCPUやメモリしか使用せず、また、高速な動作が実現可能となることです。一方で、デメリットは、複数のホスト OS でコンテナを運用する場合、管理が煩雑になってしまうということです。
本記事では、サーバ仮想化を実現する3つの技術について、それぞれ仕組みやメリット、デメリットを解説しました。どれを使えばよいかは、ケースバイケースで、各自の状況によって決まると思います。本記事の内容を参考にして、判断していただけると嬉しい限りです。
各種お問い合わせ