EC2でNode.jsからHTTPサーバ起動したときにEADDRNOTAVAILエラーが出た話
[前回の続き]
ローカル開発環境でサーバ起動して動いていたNode.jsのプログラムをEC2上で動かしたい。
→ EC2のIPv4 パブリック IP、ポート番号を(適当に)8080に指定して、Node.jsからHTTPサーバ起動!
events.js:136
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL (IPアドレス)
めっちゃ調べたが、わからず悶々として一週間経過
セキュリティグループ
ふと、そういえばEC2のセキュリティグループで8080のポートを解放してねーじゃんと気づく
再度実行
events.js:136
throw er; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL (IPアドレス)
心が折れる音がした
パブリックIP と プライベートIP
またぐぐる。そして以下のStackoverflowの質問を見つける
stackoverflow.com
パブリック IP は指定するな、プライベートIPを指定しろって言ってる気がしたのでそうしてみる
→ 無事サーバ起動成功!
→ ブラウザで 「プライベートIP:8080/設定したエンドポイント」 にアクセス
→ 白い画面のままずっと読み込み中になる
/(^o^)\ツンダ
そこからまた小一時間、調べたり、色々なパターンのURLを試す
そして
→「 パブリックIP:8080/設定したエンドポイント」ニュウリョク〜
・・・
うおおおおおお!表示された!!!!!
どうやら
パブリックIP は プライベートIP と紐づいていて、ブウラザからアクセスできるもの
プライベートIP は公開されないのでアクセスこそできないが
DBとかサーバのIPを指定するときはこっちを指定するものっぽい
いやー初歩的なことすぎたのか、調べても全然出てこなくて大変でした...
インフラの勉強ちゃんとしないとなあ...