ここから仮想ロードバランサーを作っていきます。いったん踏み台に戻り、そこからさらにlab-desktopに戻ります。
lab-desktopからprivate_subnet上にmypoolというロードバランサープールを作ります。
$ neutron lb-pool-create --lb-method ROUND_ROBIN --name mypool --protocol HTTP --subnet-id private_subnet
2台の仮想Webサーバーをロードバランサープールのメンバーに入れます。
$neutron lb-member-create --address 10.0.0.4 --protocol-port 80 mypool $neutron lb-member-create --address 10.0.0.5 --protocol-port 80 mypool
ロードバランサーのヘルスモニターを作成します。 リトライ回数3秒、タイムアウト3秒です。
$neutron lb-healthmonitor-create --delay 3 --type HTTP --max-retries 3 --timeout 3
ヘルスモニターをロードバランサープールのmypoolと関連付けます。
$ neutron lb-healthmonitor-associate <heath-monitor-id> mypool
private_subnet上にロードバランサーの仮想IPを作ります。
$ neutron lb-vip-create --name myvip --protocol-port 80 --protocol HTTP --subnet-id private_subnet mypool
ロードバランサーの仮想IPのポートに対して、フローティングIPと関連付けてpublicネットワークから通信できるようにします。
$ neutron floatingip-create --port-id=<vip-port-id> public
curlコマンドでこのロードバランサーのフローティングIP(この例では、172.16.1.130)に対してアクセスしてみます。
curl 172.16.1.130
ここからは、ファイアウォールを作成していきます。
ファイアウォールのデフォルトポリシーを作ります。
$ neutron firewall-policy-create default_policy
ファイアウォールを作成し、デフォルトポリシーを使います。
$ neutron firewall-create default_policy
ルールはデフォルトでは全てのトラフィックがブロックされるので、httpの80番ポートを開けるルールを作ります。
$ neutron firewall-rule-create --protocol tcp --destination-port 80 --action allow --name allow_http
デフォルトポリシーにルールを追加します。
$ neutron firewall-policy-insert-rule default_policy allow_http
踏み台から通信テストを行います。http 80だけ通るようになりました。
$ ssh 172.16.1.129 (踏み台マシンへ不通) ssh: connect to host 172.16.1.129 port 22: Connection timed out $ curl 172.16.1.130 web_server2 $ curl 172.16.1.130 web_server1
この結果を見ると分かるように、Webサーバーが交互に通信されることが確認できました。こうしたNeutronのコマンドを介した操作によって、仮想Webシステムの構築ができます。
本稿では仮想Webシステムに必要な仮想マシン、仮想サーバー、ロードバランサー、ファイアウォールなどを、nova、neutronコマンドを通して作成する手順を紹介しました。
特にロードバランサー、ファイアウォール、フローティングIPを組み合わせた構成については、参考になるドキュメントが少ないのですが、本稿で紹介したのは、Neutronのコア開発者が自ら設計したハンズオンですから、参考になるのではないでしょうか。
Copyright © ITmedia, Inc. All Rights Reserved.