LBはとにかく機械が高いので、うかつに購入することができない。
本番環境だと、冗長構成にする必要があるので、必ず2台購入するから、値段は基本2倍だ。
お財布にやさしいのは何と言ってもLVSということで、開発検証用としてLVSということで環境を構築してみたいと思う。
さらに、macにvagrantを使って端末内で構築してみたいと思う。
こりゃ安上がりだわい。
設定内容
下記の設定を行うことで、LVSやらリバースプロキシのテストがローカル端末で行える。
インストール端末:MacBookAir
仮想ソフト:VirtualBox + vagrant
OS:CentOS6.5 x 3台
Vagrant設定
VirtualBoxとVagrantのインストールは、以前書いたブログを参照してください。
「[Vagrant] 開発環境を作るためにVagrantを15分で覚えてみる」
1.環境構築の為にディレクトリを作成
$ mkdir ~/servers
$ cd ~/servers
2.vagrant初期設定
$ vagrant init
3.Vagrantファイルの設定
$ vi Vagrant
Vagrant.configure(2) do |config|
config.vm.box = "centos65-x86_64-20140116"
config.vm.box_url = "https://github.com/2creatives/vagrant-centos/releases/download/v6.5.3/centos65-x86_64-20140116.box"
config.vm.define :server1 |node|
node.vm.box = "centos65-x86_64-20140116"
node.vm.network :forwarded_port, guest: 22, host: 2001, id: "ssh"
node.vm.network :private_network, ip: "192.168.33.10", virtualbox__intnet: "private_net"
node.vm.network :public_network
end
config.vm.define :server2 |node|
node.vm.box = "centos65-x86_64-20140116"
node.vm.network :forwarded_port, guest: 22, host: 2002, id: "ssh"
node.vm.network :forwarded_port, guest: 80, host: 8000, id: "http"
node.vm.network :private_network, ip: "192.168.33.11", virtualbox__intnet: "private_net"
end
config.vm.define :server3 do |node|
node.vm.box = "centos65-x86_64-20140116"
node.vm.network :forwarded_port, guest: 22, host: 2003, id: "ssh"
node.vm.network :forwarded_port, guest: 80, host: 8000, id: "http"
node.vm.network :private_network, ip: "192.168.33.12", virtualbox__intnet: "private_net"
end
end
インストール完了後、起動
サーバーを1台ずつ起動していきます。
MacBookAiryugetakoji:servers yugeta$ vagrant up server1
Bringing machine 'server1' up with 'virtualbox' provider...
==> server1: Clearing any previously set forwarded ports...
==> server1: Fixed port collision for 22 => 2222. Now on port 2200.
==> server1: Clearing any previously set network interfaces...
==> server1: Available bridged network interfaces:
1) en0: Wi-Fi (AirPort)
2) en1: Thunderbolt 1
3) bridge0
4) p2p0
5) awdl0
==> server1: When choosing an interface, it is usually the one that is
==> server1: being used to connect to the internet.
server1: Which interface should the network bridge to?
起動時にネットワークでどれを使うか聞かれます。
通常は1を選択しておきましょう。
server1: Which interface should the network bridge to? 1
==> server1: Preparing network interfaces based on configuration...
server1: Adapter 1: nat
server1: Adapter 2: intnet
server1: Adapter 3: bridged
==> server1: Forwarding ports...
server1: 22 => 2200 (adapter 1)
==> server1: Booting VM...
==> server1: Waiting for machine to boot. This may take a few minutes...
server1: SSH address: 127.0.0.1:2200
server1: SSH username: vagrant
server1: SSH auth method: private key
server1: Warning: Remote connection disconnect. Retrying...
==> server1: Machine booted and ready!
==> server1: Checking for guest additions in VM...
==> server1: Configuring and enabling network interfaces...
==> server1: Mounting shared folders...
server1: /vagrant => /Users/yugeta/vagrant/servers
==> server1: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> server1: to force provisioning. Provisioners marked to run always will still run.
他のサーバーも、サーバー名を入力して起動してみてください。
全てのサーバーが起動しているかどうかを確かめるには、以前紹介した
[Vagrant] Plugins #global-status「起動しているBOXの一覧を表示」
を実行すると分かりやすいです。
server1 running (virtualbox) 2015-06-30 00:01:00 +0900
server2 running (virtualbox) 2015-06-30 00:01:26 +0900
server3 running (virtualbox) 2015-06-30 00:01:54 +0900
各サーバーは以下のようにsshにログインできます
$ vagrant ssh server1
$ vagrant ssh server2
$ vagrant ssh server3
ポイント
VagrantのエラーとWarningに悩まされましたが、ある程度は無視しても問題無いことがわかりました。
Warning: Connection timeout. Retrying...
init設定ファイルに関しても、かなりシンプル構成でいいこともわかり、作って検証して、用が済めば捨ててしまえばいいのですぐにdestroyしてしまいましょう。
あくまで検証環境なので。
それでは、次回は、このマルチサーバー構成からLVSを組んでみたいと思います。
0 件のコメント:
コメントを投稿