仮想環境について

いろいろな仮想マシン

開発にあたり、実行環境を再現するため仮想マシン(仮想機械)を構築することはよくあると思う。

今まで漠然と使っていたが、改めて仮想環境についてまとめてみる。

仮想マシンの種類

まず、仮想マシンと言っても、いくつか種類がある。

ホスト型

VMware Player、VMware Fusion、VirtualBoxなど。

ホストとなるOSの上で動作する仮想マシン。

他のアプリケーションと同じように、インストールして実行するだけなので、導入がカンタン。

ただし、ホストOSの上で動作するため、マシンスペックがある程度ないと厳しいかも。

ハイパーバイザ型

Hyper-V、vSphere、Xenなど。

ハードウェア上で動作する。

この型では、各種OSとハードウェアの間で、ハイパーバイザと呼ばれる管理システムが仮想化を実現しているため、ホスト型に比べてハードウェアの負荷が少なくて済む。

コンテナ型

Dockerしか知らない(笑)

コンテナ型は、他の種類と違い、OSを仮想実行するのではなく、OSで使用するアプリケーションを仮想実行している。

メモリを喰うOSが動いていないため、他に比べると処理が軽い。

ただし、それらを実装するためにホストOSのカーネルを共有しているため、ホストOSや仮想化できるコンテナに制限がある。

仮想環境の構築を便利にするツール

Vagrant

ホスト型仮想マシンのVirtualBoxやVMwareなどで使うことができる、Vagrant(ベイグラント)というツールがある。

これは仮想マシン構築用の補助ツールで、仮想環境の構成を、指定した環境と同じに再現することが出来る。

Vagrantを導入することで、構築手順書を指差し呼称しながら新環境を構築する必要がなくなり、開発初期のコストを大幅に下げることが出来る。

Kubernetes

Dockerの実行環境をクラスタ化するシステム。

スケールアウトしたい場合に、コンテナの実行環境が別々のマシンだと連携させるのが大変だが、Kubernetesを利用することで、一つの実行環境のように扱うことが出来る。

とりあえず聞きかじったことだけ並べてみた。
後は開発で実際に使いながら、詳細をまとめていこうと思う。

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のSEを経て、独立。 ここ数年はWEB以外の仕事をしていたため、割と本気で勉強中。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください