仮想環境
今回はちょっと初めて自分で仮想環境を建てた時にまとめたマークダウンを参考に記事を書いていきます。
今回の記事は実践的なことではなく、ちょっとした知識として参考になる程度なのでどんなものか理解したい人とかは参考になるかも。
間違ってたらごめんね。
仮想環境とは
・仮想環境とは、パソコンやサーバーなどのハードウェアの中に仮想化によって作り出されたヴァーチャルな環境のことです。仮想化は、ハードウェアを構成しているCPUやメモリなどを理論的に分離・統合することで実現できる。
仮想環境を使用して開発を行うメリット
1. 開発環境でコストを削減できる
仮想環境の導入によって、物理的なハードウェアを複数台用意する必要がなくなります。そのため、ハードウェアの購入費や維持費、保守点検の費用や人件費などの運用コストのほか、管理の手間や設置スペースまで押されることができ、大幅なコストカットに繋がる。
2. 新しいシステム導入がスムーズ
仮想環境を準備できれば、1つのハードウェアで複数のシステムを稼働させることができます。なので新しいシステムのために逐一新しいサーバーを用意するのは手間ですが、仮想環境によって既存のハードウェアを利用できればそのような手間は不要になります。
仮想環境によってハード面での手間が省けることにより、スムーズに新しいシステムを導入することができるため、迅速な対応が求められる現場では特に大きなメリットになります。
3. 複数のオペレーティングシステムを使える
システムの開発においては、複数のOSでサービスの稼働状態を確認したいことがよくありますが、必要なOSの数だけハードウェアを用意すると、コスト、手間ともに負担が大きくなります。
このような場合でも仮想環境を利用できれば、サーバーを増やすことなくゲストOSとしてインストールするだけで複数のOSを利用できるようになります。
Vagrantとは
・仮想マシン(以下VM)を動かす仮想化ソフトのすごいラッパーツール
・VMWare,VirtualBoxなどの仮想化ソフトの操作を代行する。
仮想マシンをとても簡単シンプルに構築、操作するソフトウェアです。Linux,Windows,MacOSのローカル環境に仮想マシンを構築したり、Microsoft Azure などのクラウド環境の仮想マシンも簡単に構築することができます。実はVagrantはVirtualBoxやVMWare、さらにはMicrosoft Azureなどのフロントに立つソフトウェアです。言い換えれば、VirtualBox, VMWareなどを代理で操作してくれるソフトウェアです。よってVagrantを利用して構築される仮想マシン自体はVirtualBoxやVMWaerの仮想マシンとなんら変わりはありません。
Docker
・特定のプロセスの実行環境をdockerイメージという単位で保管するツール
・イメージをdockerコンテナとして再生・実行しコンテナ同士を連携させる
Apache HTTPサーバー、MySQLサーバーなど、あるプロセスを動かすための環境を丸ごとイメージという形に封印し、それをコンテナとして再生、実行することができるツール。
VagrantとDockerの違い
・Docker
・仮想環境:コンテナ型
・仮想環境で、簡単に作成、破棄ができる開発・実行環境を構築できる
・コンテナ型を言われるもので、ディスク、メモリの消費が少なく、軽量である
・コンテナ型の仮想環境の構築に、Linuxカーネルの技術を使っているため、Linuxカーネルを使ったOSしか使うことができない
・Vagrant
・仮想環境:ハイパーバイザー型
・Dockerと同じく、仮想環境で簡単に作成・破棄ができる開発・実行環境を構築できる。
・仮想環境はハイパーバイザー型と呼ばれるもので、コンテナ型と比べるとディスク。メモリの消費が多い
Linux以外のOSの環境が構築できるなど、コンテナ型に比べて自由度が高い
・それぞれの違い
基本的にどちらにもできることに大きな違いはなく、実現方法に違いがあります。
上記にあるようにDockerには仮想環境にコンテナ型、Vagrantはハイパーバイザー型を採用しています。
Linux系のOSしか使えないなどの制約があり、動作が軽いのがコンテナ型であるDocker、コンテナ型と比べると自由度が高いが動作が重いのはハイパーバイザー型であるVagrantのようになります。
それぞれの環境は、自分にどっちがあっているかなどを理解した上で選択していくといいかもしれません。
そして今回は触れませんでしたが、実際の環境の作り方などもしらべてみるとさらに理解が深まると思います。
ではこんな感じで!
おつかれさまでした。
この記事が気に入ったらサポートをしてみませんか?