はじめに
AWS の VPC Reachability Analyzerはめちゃくちゃ便利。
構築するときに「なんでこれ通信通らないんだ……!ぐぬぬ……!」と時間が格段に減ったと思う。
しかし、これってどんなところまで調べることができるのだろう?
と思い、いくつかのパターンを確認してみた。
VPC Reachability Analyzer 自体の使い方はクラスメソッド先生の記事で詳しく図付きで解説されているので、そちらを見てもらえれば。
AWS構成図
今回分析をかける構成は以下のような感じだ。
冗長化しているのにNLB使わないとか、こんな構成はあまり取らないだろうが、おためしで作った構成ということで。
VPC Reachability Analyzer の分析成功時は以下のように出力される。
さて、以下は、上記の図を各標題に記載した状態に変更した場合の分析結果だ。
VPC Peeringのルーティングをしなかった場合
VPC-B側のNACLでインバウンドを制限した場合
VPC-B側のセキュリティグループでインバウンドを制限した場合
VPC-B側のEC2インスタンスで対象ポートをListenしているデーモンを停止した場合
なんと、これは「到達可能」扱いになった。
わざわざポートまで指定しているのだからこれも検知してくれてもよさそうなものなのだが……。
VPC-B側のEC2インスタンスを停止した場合
まとめ
割と良い感じに色々な通信エラー部分を拾ってくれる。
ただ、デーモン停止は拾ってくれないので、あくまでも「エンドポイントまでの到達」を検査するようだ。
仮に到達可能になった時は、エンドポイントの内部に問題があると考えるのが良さそう、といったところか。