環境
よくあるこういうやつ。
絵きたねー。
- PrivateサブネットのEC2 2台をNLBでロードバランシングする。
- EC2のルーティングはVPC内部へのみ
- プライベートサブネットのセキュリティグループでは、インバウンド通信はパブリックサブネットからのみ許可
事象
上記の環境を構成して、NLBのURLにアクセスしても、ページが表示されない。
curl -v をすると、ネットワークに届きません のメッセージが表示される。
原因
NLBを構築(新規起動)する際に、NLBに関連付けるサブネットの編集で、プライベートサブネットを関連付けてしまっていたため。
この時はルーティングしたいサブネットを指定するもの、と思い込んでいました。
僕の場合も、この方のおっしゃるとおりでした。
↑の記事からもりんくされているが、AWSの公式記事↓
。次に、パブリックサブネットをロードバランサーに関連付けます。
プライベート IP アドレスを持つ EC2 インスタンスをインターネット向け ELB ロードバランサーにアタッチするインターネット向けロードバランサーを使用しています。プライベートサブネットにあるバックエンドの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをアタッチする必要があります。
対処
NLBを作り直した。
- 現在のNLB(サブネットの関連付けがプライベートサブネット担っている者)を削除
- NLBを新規作成
- NLBに関連付けるサブネットの編集で、パブリックサブネットを関連付け
反省(蛇足)
- 初めてやる作業は、きちんと手順確認してからやるべし
- もう少し、人を疑わない
- 他の記事で、NLBがパブリックサブネットに配置されているのを見て、「パブリックサブネットの中にNLB入れるのはおかしいだろ、外に配置だろ、間違ってるなこれ」とか思ってた
- 気になることがあれば書き留めて、後で掘り返す(問題解決のヒントになる)
コメント