GMOクラウド環境にてロードバランサとファイアウォール設定でつまづいたお話

どうも、先輩エンジニアの無茶ぶりによって
後輩エンジニアにどや顔でブログに履歴を残す素晴らしさを説明したら
最後に「さぞ、ブログにたくさんの記事を書かれたのでしょうね。」と
めった刺しにされた私です。

今日は先日、GMOパブリッククラウドにて
環境構築(というかロードバランサ構築)でつまづいた経験を残したいと思います。

といっても、今回のミスは冷静に考えればつまづかなさそうなところではあるんですが
GMOクラウド特有なところを少し書きたいと思います。

私がそもそもやりたかったことは、
3台の仮想サーバの上にロードバランサ(以下LB)を作るという
とても単純なことだったんだけれども、
なんせLBからその3台に接続できてないというのでひたすらつまづいた。

結論から先に言っちゃうと、
単にサーバ側のファイアウォール(以下FW)の設定がミスっていただけなんだけど
そこまでつまづいたのには訳がある。(言い訳していいわけ。)

足をすくわれたのはポイントは 2 つ。

GMOクラウドのLBは
1. LBのIPアドレスに合わせてサーバのIPアドレスを変更する必要がある
2. LBのIPアドレスは自動的に2つ割り当てられる

GMOクラウドのLBについての詳細は下記を参照してね。
クラウドコンソール|GMOクラウド Public サポート
screenshot

1. LBのIPアドレスに合わせてサーバのIPアドレスを変更する必要がある

ロードバランサーに設定する仮想サーバーは、第三オクテットまで同一のIPアドレスが設定されている必要があります。
第三オクテットが異なる場合には、対象サーバーを同一の第三オクテットに変更してください。

と書かれている訳ですが、
サーバもLBも作った時点で自動的にIPアドレスがふられるので
たまたま第三オクテットまで一緒だったラッキー☆
って場合以外は、メンドクサイのですが、サーバのIP変更してあげる必要があります。
まぁ、ここまでは100歩譲ってやろうじゃないの。(全然譲りたくないけどね。)

2. LBのIPアドレスは自動的に2つ割り当てられる
ファイアウォールの設定がミスってたというのは、この2つあるLBのIPアドレスの許可ができていなかったから。
私、2つのうちの片一方しかFWのルールに追加してへんかった。
てか、2つも登録する必要ないと思ってたのよ。
というのも

割り当てられるIPアドレスは2つありますが、DNSに設定されるIPアドレスは下段のIPアドレスをご利用ください。

って書いてあるんですよ。
だから私はてっきり、下段のIPアドレスしか使わないと思っていた訳です。この誤解が悲劇を生んだ。。

ちなみに、この誤解の原因となったのには理由があって、
私は以前に1クラスタ作っていたから、そのクラスタの構成をみて、真似をしながら作っていた訳です。
そのクラスタのFWの設定みたら、下段のIPアドレスしかFWのルールに登録していなかったのです。
でもそれできちんと使えていたのです。

では、なぜ前作ったクラスタはLBからサーバに接続できていたのか?

前作ったクラスタのサーバのFWのルール設定には
LBのIPアドレスに対して第三オクテットまでをネットワーク指定して設定していたのです。
つまり、xxx.xxx.xxx.ddd/24でAcceptしていました。

このときはたまたまLBの2つのIPが「第三オクテットまで同じ」IPアドレスだったので
そりゃ通る、という訳です。

ところがどっこい、今回は不運なことに、LBに与えられたIPアドレス
第三オクテットすら違うという残念IPアドレスだったのです!!!!

これまでGMOクラウドのLB作ったときは、必ず番号が並びのIPアドレスだったのですが
そうじゃないこともあるんや・・・という気付きがありました。
今回はついてなかったんやろなぁ。。。激おこぷんぷん丸。

原因は単純なことだったですが、そこに行き着くまで時間がかかりましたよー。

続きは後編として記事をアップしたいと思います。
あとはただの愚痴かもw

あぢゅー。