higehikiのブログ

iPhoneアプリ「ログ雀」の中の人です。

ELBがつながらないわ、設定でエラーでるわ

VPCで環境構築する案件で、OnDemand NATパターンっぽい箇所の構築ではまりました。

つくろうとしてるのはこんな感じ
f:id:higehiki:20140327142123p:plain
引用: http://dev.classmethod.jp/cloud/amazon-vpc-elb-nat/

事象としては、PrivateSubnetと定義した中に、Webインスタンスを置いて、ELBでアクセスするってだけたったんですが、ブラウザから繋がらずタイムアウトしてしまう…。

ACLやSecGroup、ルーティング、NATのiptablesなど色々見回りましたが、解決できず3日ぐらいハマってました。
apacheアクセスログはELBからの死活監視だけ流れている状態。

最終的に他の案件で上手くいっているものと見比べて発見したのが、ELBのAvailability Zoneの設定でした。

ELBもPrivateSubnetになってるし…

げんなりしながら、PublicSubnetに切り替えようとしたところ
f:id:higehiki:20140327142128p:plain
You are not able to change all the subnets on a load balancer at the same time
こんなエラー。

なんなんですかw

原因はよくわかりません。

が、問題に対する解決方法は以下。

[ 問題 ]
ELBの Availability Zone に ap-northeast-1a (PrivateSubnet) が設定されている

[ 目的 ]
ELBの Availability Zone に ap-northeast-1a (PublicSubnet) が設定されている

[ 解決 ]
1. ELBの Availability Zone に ap-northeast-1b (PrivateSubnet) を追加
2. Save
3. ELBの Availability Zone に ap-northeast-1a (PrivateSubnet) を削除
4. Save
5. ELBの Availability Zone に ap-northeast-1a (PublicSubnet) を追加
6. Save
7. ELBの Availability Zone に ap-northeast-1b (PublicSubnet) を削除
8. Save

なんだこれ…w

とりあえず直った!