前提
・Windows10
背景
・いよいよプロジェクトに参画するので環境構築をすることに。
・開発環境はVirtualBoxとVagrantで仮想サーバーを立てて開発を進める。
・ただ「仮想サーバー」についてあまり理解していないので、簡単に調べたことをメモ
調べたこと
仮想サーバーとは
一言でいうと
1台のサーバー上で複数のオペレーションシステム(OS)を動かし、複数のサーバーとして運用する仕組み
従来は1サーバーに対して、1つのOSやアプリケーションインストールするのが通例だった。
PCのメモリやCPUの性能向上のおかげで1ハード内に複数のOSを処理やアプリケーションを動かすことができるようになった。
仮想サーバーがないとどうなるのか
1OS、1アプリケーションしか開発することができないので、複数プロジェクト開発には複数のサーバー機能を持つハードウェアが必要になる
物理サーバーとの違い
仮想サーバーの対として、「物理サーバー」がある
物理サーバーとは、物理サーバーそのもののリソースを使うサーバーで、ピーク時を想定した環境構築をするため、余裕を持たせることが多い。
それゆえ、本来使えるはずのサーバーリソースを使わずに無駄が生じることが多い。
メリット
1.導入コストのとリプレースコストの削減
サーバーの追加導入に新しいハード(PCなど)は必要ない
2. 設置スペース減少によるランニングコスト減少
サーバー設置のデータセンター代、電気代、保守運用の人件費
3, サーバー管理の一元化による運用負担軽減
4, 必要な時に必要な分だけリソース追加
5. 冗長化構成
VirtualBoxとは
ホストOSにゲストOSを構築する仮想化するためのソフトウェア
Windows環境でLinuxを使えるようにするには必要なソフトウェア
Vagrantとは
(厳密には違うが)簡単に言うと、VirtualBoxをCUIで操作するためのソフトウェア
VirtualBoxとVagrantの違い
大きな違いは環境構築のハードルの高さ
VirtualBox単体の開発環境だと
OSのダウンロード、SSHのインストールなど細かな設定も0からやる必要がある
上記設定を自動化できないため、他社との共有時には膨大な量の手順書が必要になる
一方、Vagrantを使えば、
コマンド一つで開発環境が整う
設定情報の共有ができる
環境構築の自動化ができる
などなど、共同開発が大前提のシステム開発に必須といっても過言ではない。
例えば、仮想マシンを構築する際の、OSのバージョン指定、接続IP、ホスト名などなどを全てVagrantfileに格納しておけば全て自動化できる。
※設定の仕方はRubyで書かれている
所見
「なんでvirtualboxやVagrantが必要なんだろう?」
と思っていた点が少し理解できました。ただ、
「ただ、サーバを立てるならxamppでもいいのでは?」
という素人疑問もわいたので、そこは別でインプット・アウトプットします。