「なんのためにローカル開発環境が必要なの?」
目次
ローカルとリモート
説明に入る前に、まず、ローカルとリモートの違いについて知らなければいけません。
かんたんに説明すると、
- ローカル:自分のパソコン
- リモート:自分からみてネットワークの向こう側サーバーや別のパソコン
です。
ローカル開発環境とは?
WEBアプリケーションを公開するときは、リモート側のサーバー上に設置します。
本番のサイト環境に限りなく近い仮想的な環境をローカルパソコンに用意するのがローカル開発環境です。
なぜ、ローカル開発環境を構築するのか?
ローカル開発環境を構築する一番の目的は、「開発する環境(自分のPC)」と、「公開する環境(サーバー)」のOSを揃えること。
WEBアプリケーションをインターネットを公開するためにはサーバーが必要です。
あなたの使っているパソコンのOSなんですか?おそらく、ほとんどの方がMac、Windowsのどちらかでしょう。一方、サーバーで使われているOSで大きなシェアを占めているのLinux(リナックス)です。
レンタルサーバーを借りてブログ運営やWEBサイトを運営している方は、サーバーに使わているOSを調べてみてください。
「Ubuntu」「Debian」「CentOS」と書かれたいたら、これらはすべてLinux(リナックス)の一種です。
WEBアプリケーションを公開するとき、多くのケースでは最終的にはLinux(リナックス)で動くサーバー上にプログラムを設置することになります。
MacOSやWindows上で正常に動くアプリケーションできたとしてもそれがLinuxでも上手く動くとは限りません。そのため、自分のパソコンの中に、公開する環境(サーバー)に合わせた仮想的な環境を用意して開発を行います。
ローカル開発環境を構築するメリット
ローカル開発環境を構築するメリットは次のとおり。
- 限りなく本番環境に近い環境を用意できる
- ホストPCと隔離された開発環境を作成出来る(ホストPCは自分のPCのこと)
- 「Box」で共通の環境をチームで共有できる
- 開発環境の自動化(Chef、puppetなどと連携)
- 初心者の学習にも最適
限りなく本番環境に近い環境をローカルのパソコン内に設置することができます。そのため、「開発環境ではプログラムがうまく動いたけど、本番環境では正常に動かない!」という自体を避けることができます。
ローカル開発環境は作ったり壊したりが簡単に行えます。初心者がOS、サーバー、プログラミングの勉強をするときにも最適です。
「スナップショット」という機能あり、ある時点の状態に戻すことができます。何か設定変更を加えてうまく動かなくなってしまった場合にも、元の状態にすぐに戻るすことができます。
仮想化ソフトウェア、「VirtualBox」
仮想化ソフトウェア「VirtualBox」
仮想マシンとは仮想的なハードウェアのことです。物理的なサーバーを用意することなく、仮想的なサーバーを設置できます。
パソコンの中に仮想マシンを作成するには、VirtualBoxなどの仮想化ソフトウェアと呼ばれるソフトを使います。
VirtualBoxは、オープンソースツール(元になるソースコードが公開されているソフトウェア)で利用料金は無料です。
仮想化ソフトウェアを使えば、WindowsやMacの中にLinuxで動作するコンピュータを設定できます。
ホストOS と ゲストOS
物理的なパソコン(物理マシン)上で動作するOS側を「ホストOS」、仮想マシン上で動作するOSを「ゲストOS」と呼びます。
- ホストOS:パソコン本体のOS
- ゲストOS:パソコンの中の仮想環境上で動くOS
ホストOSとゲストOSは隔離されています。それぞれ別のOSを使うことができます。
仮想マシンは物理的にはパソコンの中ですが、振る舞いとしては、パソコンの外部のサーバー存在するのと変わりません。例えば、「ゲストOSの設定をめちゃくちゃにしまった!」という場合にもホストOS側に影響を与えません。
仮想マシンは簡単に増やしたり削除できる
仮想マシンは、必要に応じて増やしたり、削除が簡単にできます。「構築に失敗してしまった・・・」という場合にも手軽に作り直すことができます。
そのため、サーバーの学習目的としても活用できます。
Vagrant(ベイグラント)
仮想マシンに簡単に立ち上げ・管理・削除
仮想マシンの構築を簡単に行うために使うのが、 「Vagrant(ベイグラント)」 というソフトウェアです。Vagrantは、仮想マシンの作成、起動、接続、停止などを簡単なコマンドで出来るよう手助けするためのツールです。
Vagrantは、オープンソースツール(元になるソースコードが公開されているソフトウェア)で利用料金は無料です。
Vagrantでは仮想マシンに関する情報を Vagrantfile という設定ファイルに書きます。
ターミナルとは?
仮想マシンの設置、接続の操作には、「ターミナル」を使います。「ターミナル」言ってもあまり聞き慣れないかもしれません。
「黒い画面」といえば、ピンくるでしょうか?「ターミナル」では「コマンド」言って文字列でパソコンを操作します。
使うOSによって必要なソフトが違います。
Windows環境なら TeraTerm 。
Macの環境なら標準でインストールされている Terminal やもっと高機能なiterm2などがあります。
「コマンドで操作」というと、とてもややこしそうに思えます。難しく考える必要はありません。
フォルダを作る、フォルダを移動するという操作はマウス使ったり、パソコン操作に慣れている人ならキーボードショートカットを使ったりしているでしょう。
ターミナルでのコマンド操作も同じです。
「hajipro」という名前のフォルダを作る場合、「mkdir hajipro」というコマンドを実行します。「mkdir」はフォルダを作るときに使うコマンドです。
最後に
ローカル開発環境ついて初心者向けに解説しました。
ローカル開発環境にざっくりと理解できたら、次はVagrant(ベイグラント)とVirtualBox(バーチャルボックス)をインストールしましょう。導入方法は以下の記事を参照してください。
コメントを残す