VPC Reachability Analyzer を使ってみた

はじめに

VPC Reachability Analyzerというサービスについて検証してみました。

目次

VPC Reachability Analyzerとは?

VPC内のリソース間の接続性を確認できるツールです。
指定したリソース間のネットワーク経路を分析し、通信が到達可能かどうかを判定してくれます。
分析の結果にはネットワーク経路のパスも表示してくれ(Linuxでいうtracerouteのような感じですね)、到達が不可の場合はどこで通信が不可になっているかも確認できます。

送信元・送信先のリソースタイプとして下記を選択可能です。

  • EC2インスタンス
  • インターネットゲートウェイ
  • ネットワークインターフェース
  • トランジットゲートウェイ
  • トランジットゲートウェイアタッチメント
  • VPCエンドポイント
  • VPCエンドポイントサービス
  • VPCピアリング
  • VPNゲートウェイ
  • また、一回の分析ごとに0.10USDの料金が発生します。
    あまり何度も分析をかけてしまうと料金も膨れ上がってしまいますので、注意が必要そうです。

    検証

    今回は2つのEC2間で接続が可能かどうかをReachability Analyzerで確認してみます。
    以下の図のように同一のVPC内にEC2を2台配置した環境を用意しました。

    では、Reachability AnalyzerでEC2間の接続が可能か確認してみます。
    VPC→ネットワークマネージャーと進み、Reachability Analyzerを選択します。

    Reachability Analyzerの画面が開けました。
    「パスの作成と分析」を選択します。

    送信元と送信先のリソースを選択します。今回はどちらもEC2インスタンスを選択します。
    通信のプロトコルはTCPとしました。

    ちなみに下記画像のように送信元・送信先のポート番号などを指定できるオプションも用意されています。
    (今回オプションは設定していません)

    分析結果を見てみましょう。

    到達不可能になっていますね。
    「次のセキュリティグループの ingress ルールはいずれも適用されません: sg-0bfd6d4f4f4d3a83aを参照してください。」というメッセージが表示されています。
    sg-0bfd6d4f4f4d3a83a は送信先のEC2にアタッチされているセキュリティグループですので、許可設定に何らかの不備があったようです。

    セキュリティグループを確認してみると・・・・・・。

    許可ルールがありませんでした。このままでは通信ができないので、セキュリティグループにもう一方のEC2からの通信を許可するルールを追加し、再度分析を実施してみます。すると・・・・・。

    到達可能になりました!

    まとめ

    今回はVPC Reachability Analyzerというサービスの検証を実施しました。
    どこで通信がエラーになっているのか、解りやすく表示されるのがReachability Analyzerの強みかと思います。
    今回はEC2インスタンス2台という簡易的な環境で検証してみましたが、トランジットゲートウェイなどが経路にあるような複雑な構成の場合、通信のトラブルシューティングにより効果を発揮してくれるサービスかと思います。
    送信元・送信先を指定するだけ、という直感的な利用方法なのも有難いですね。
    リソース間の通信エラーでお困りの際はぜひ使用を検討してみてください。

    投稿者プロフィール

    kubota