NLBが外から見れない!?は、サブネットがパブリックサブネットじゃなかったから

AWS
スポンサーリンク

環境

 

 

よくあるこういうやつ。

絵きたねー。

 

  • PrivateサブネットのEC2 2台をNLBでロードバランシングする。
  • EC2のルーティングはVPC内部へのみ
  • プライベートサブネットのセキュリティグループでは、インバウンド通信はパブリックサブネットからのみ許可

事象

上記の環境を構成して、NLBのURLにアクセスしても、ページが表示されない。

curl -v をすると、ネットワークに届きません のメッセージが表示される。

 

原因

NLBを構築(新規起動)する際に、NLBに関連付けるサブネットの編集で、プライベートサブネットを関連付けてしまっていたため。

 

 

この時はルーティングしたいサブネットを指定するもの、と思い込んでいました。

 

 

僕の場合も、この方のおっしゃるとおりでした。

 

↑の記事からもりんくされているが、AWSの公式記事↓

。次に、パブリックサブネットをロードバランサーに関連付けます。

 

プライベート IP アドレスを持つ EC2 インスタンスをインターネット向け ELB ロードバランサーにアタッチする
インターネット向けロードバランサーを使用しています。プライベートサブネットにあるバックエンドの Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをアタッチする必要があります。

 

対処

NLBを作り直した。

  1. 現在のNLB(サブネットの関連付けがプライベートサブネット担っている者)を削除
  2. NLBを新規作成
    1. NLBに関連付けるサブネットの編集で、パブリックサブネットを関連付け

 

 

反省(蛇足)

  • 初めてやる作業は、きちんと手順確認してからやるべし
  • もう少し、人を疑わない
    • 他の記事で、NLBがパブリックサブネットに配置されているのを見て、「パブリックサブネットの中にNLB入れるのはおかしいだろ、外に配置だろ、間違ってるなこれ」とか思ってた
  • 気になることがあれば書き留めて、後で掘り返す(問題解決のヒントになる)

 

 

 

コメント