ELBで苦戦

晴れ今日は友達とモーニングに行く約束になっていたので、9時に「Coco Smile」へ。 インターネットの情報だと「木曜休業」「年中無休」と肝心な定休日の情報が不明だったが、2017年9月までは木曜が定休日だったが、9月以降は無休になっている、というのが正解だった。
9時オープンなので、9時に待ち合わせをしている。 モーニングはCセットで「ビーフシチュー」「パン」「サラダ」「ゆで卵」「シャウエッセン」のを頼んだ。 ドリンクは450円のものまでは追加料金無しで注文でき、500円のは+50円、550円のは+100円で注文できるような感じだった。 コーヒーはサーバーがあり、モーニングを注文した人は11時半までおかわり自由とのことだった。
9時から11時位まで、技術的な話や、マラソンの話や、今やるべきことの話や、どうでもいい話をして過ごしてきた。 全然関係無いのだけど、ここの店員が松雪泰子っぽい雰囲気で美しかった。
モーニング ビーフシチュー

仕事ではELBという、アマゾンのロードバランサーの設定でいろいろ苦戦していた。
さくらのクラウドと同じように、ロードバランサ立てて、該当IPにアクセスがあったものを、全て任意のIPに飛ばすだけかと思って、リスナーには80を登録し、転送先にEC2のインスタンスと80ポート、同インスタンスと443ポートを指定していた。 リスナーへの443登録は証明書が必要だったので、これはあとで準備するとして、転送先だけ先に443を登録していた。
が、これだと理想の動作にならず、80で受けたものを、80か443に回すという感じだったので、80に回された場合は問題なかったのだけど、443に回された場合はnginxのエラーが出ている状態だった。
AWSの場合はリスナーに80を登録し、転送先に80を登録し、さらにリスナーに443を登録し、転送先に443を登録するような感じなのだね。
さくらのクラウドの場合は、ロードバランサ1つに付き、月額4,000円程度かかるし、リスナーのIPが4つまでしか登録できないので、リスナーをなるべく減らして4つしか使えない貴重なIPを節約しようとしていたが、どうも考え方とか作法がそもそも違うみたい。
そんなで、単純なことだったのだが、nginxのエラー解決するまでに、けっこう時間を食ってしまった。

他にもセキュリティグループの設定で、内部のサーバーからしかアクセスさせたくないので、10.0.0.0/16という風に指定していたが、内部のサーバーからアクセスさせる際、グローバルなホスト名でアクセスさせていて、その場合だとグローバルIP経由になってしまい、先程していしたネットワーク帯域に入らずアクセスできない、というのもあった。 この辺りもELBのリスナーがが原因なのか、ELBの転送先が原因なのか、セキュリティグループが原因なのかがわからず、きちんと出来るようになるまで時間がかかった。
結果的にはELBは全く使わずでき、ELBからはそれに関するルールを削除。 サーバーからホスト名でアクセスしている所のホスト名をlocalhostとし、リクエストヘッダにホスト名を含めることによりグローバル経由せずローカル経由でアクセスさせることができた。 hostsに同様のルール書いた場合も同じ動作になるっぽいが、今回はhostsではなく、リクエストヘッダに意図的に含める方法で対応。
そんなで、サーバー構築が非常にスローペースで進んでいく。 年内にと思っていたが、1月中にと延期され、今では2月中にと、さらに延期してしまった。 きちんと計画もってやらないといけないなぁ。 ただ、初物を触るのでなかなか上手くいかないことが多い。