今度はどうしたのか
当たり前のことを書くので、
AWS中級者以上の方々にはつまらない記事になることをご了承ください。
先日、今までなんとなくしか意識していなかったのか
構築中に「あれ?なんで?ん?」
という うっかりミス がありました。
ちょっとその事象を記録します。
やろうとしてたこと
ELB(L7)をフロントに置いて、ECSへのアクセスを考えていた。
ECSの設定等は今回考慮せず、シンプルに全体的にこんな感じの想定です。 本来は。
もはや省略しますが、VPCやサブネット、SG作成をして
ALB作成して、ACMで証明書発行。関連付けて、OK!
じゃ、繋いでみるかー!
テストでnginx置いてみよ。
・・・
起きたこと
.......
あーわかった、LBのSecurityGroupミスったのかな?
→HTTPS(443)空いてないとか、絞ってる指定IPが違うとか!!(あるいは自分のIPが違う)
あってた
...........
PublicSubnetなのにInternetGateway当ててなかったり…
しなかった
......................
ルートテーブル、違うものあててる?
と、こんな感じで30分以上トラブルシューティングしてました。
・そもそもACMアタッチできてないのでは??
・え、LBの種類あってる?L7?
・VPC全部同じ?笑
・じゃあ…あ!逆に受ける側のECSサービスのSecurityGroupがあってないのか?
見たけど、全く問題なし。
問題だったのは?
本当に気づかなかった。
実は今回、NATゲートウェイを挟んでいますが
彼らのためにProtected Subnetを用意しています。
LBのターゲットは、Protected Subnet上に設置しているECSだったな。
とELBの画面から確認。
ん・・・?
いや、ここはターゲットじゃなくてロードバランサー自体の場所...
つまり、ここはターゲットのサブネットではなく、ELBを配置するPublic Subnetがないといけな(
こ れ か
そう、これはつまり、LBがPublicではなくProtectedにしまわれています。
しまっちゃうおじさんが原因です。外に出てません。
つまりこういう事**(酷い)**
フロントにいるはずのELB、そこじゃ見られるわけがないですね。
正しく修正します。
せっかくなのでELBの作成画面。サブネットを指定する場所です。
これで外に出ました。
疎通テストOK!他は全然問題なかった。
凡ミスすぎて泣ける。
まとめ
構成図が頭に入っていても、ネットワーキングは構築時に小さなミスを起こしがちです。
だから、その辺りも含めて自分で把握しきったテンプレートを使った方が無難かもしれません。
AWSの学習をして資格取ったりもしていますが、構築をしていて気付く事は
やってみないとわからない事が多いということです。
他に今回得られた経験としては、特に構築時点では、自分で決めたName Tagに騙されるなということです。
IGWが通ってない状態ならただのPrivate Subnetだし、
NAT Gatewayへのルートを通していなければ、まだProtected Subnetではありません。
まだまだ精進します。
おまけ
アーキテクチャ図は draw.io で作成しました。
無料です。最近のアーキテクチャ図も対応しています。(AWS公式)
New 2018 AWS icons – draw.io
draw.ioの良いところは、pngファイルとして保存しただけでも、次の編集時にpngファイルを開くだけで通常の編集ができるという点です。専用の形式があるわけではないので、保存が楽。