知られざるAWSネットワークの味方、Reachability Analyzerの紹介
はじめに
Amazon Web Services(AWS)のネットワーク構築をしていると、「なぜか通信が通らない...」という状況に遭遇することが意外と多いです。早く検証進めたいのに、ネットワーク設定でハマってしまい、原因調査に1時間かかってしまう。このような、経験をした方も多いのではないでしょうか。
この時に頼りになるのがReachability Analyzerです。
Reachability Analyzerを使用すると、通信経路上のどの箇所で疎通が失敗しているかを可視化し、原因箇所を特定してくれます。さらに、リソース除外機能を利用することで、例えば「Firewallを経由せずに外部ネットワークへ到達可能な経路が存在しないか」という検証を実施することも可能です。本記事では、Reachability Analyzerの基本的な利用法とリソース除外機能を活用した便利機能について紹介します。
本記事の対象者
- AWSを使用したことがある方全員
記事の構成
記事の構成は以下の通りです。
- Reachability Analyzerの概要
- 基本的な利用方法
- リソース除外機能の活用方法
- 最後に
1. Reachability Analyzerの概要
Reachability Analyzerとは、VPC内のリソース間の到達可能性をテストするツールです。基本はパスの送信元、パスの送信先、プロトコル(TCP or UDP)を指定するだけで、送信元から送信先へ通信が到達するか検証してくれます。現在、パスの送信元と送信先に選択できるリソースは次の通りです。
| 設定可能項目 | パスの送信元 | パスの送信先 |
|---|---|---|
| Instances | ○ | ○ |
| Internet Gateways | ○ | ○ |
| Network Interfaces | ○ | ○ |
| Transit Gateways | ○ | ○ |
| Transit Gateway Attachments | ○ | ○ |
| VPC Endpoints | ○ | ○ |
| VPC Endpoint Services | ○ | ○ |
| VPC Peering Connections | ○ | ○ |
| VPN Gateways | ○ | ○ |
| IP Address | × | ○ |
詳細は公式ドキュメントを参考にしてください。
次章では、このReachability Analyzerの基本的な使い方を確認していきます。
2. 基本的な使い方
ここでは、次のネットワーク構成を例に、EC2からRDSへの接続が可能かテストしてみましょう。

手順①:Reachability Analyzerを開く
検索窓から「Reachability Analyzer」と検索し、「パスの作成と分析」を押下します。

手順②:送信元・送信先・プロトコルを設定する
- パスの送信元:Instances(EC2のID)
- パスの送信先:Network Interfaces(RDSのENI)
- プロトコル:TCP
RDSのENIの探し方については、以下のAWS公式ブログが参考になります。
また、RDSのENIは説明欄がRDSNetworkInterfaceと表示されるため、RDSの数が少ない場合はこれで特定することも可能です。

手順③:パスの作成と分析を実行する
設定が完了したら、「パスの作成と分析」を実行します。
疎通が成功した場合
ステータスが到達可能となり、接続経路が全て表示されます。

疎通が失敗した場合
ステータスが到達不可能となり、接続が失敗した原因となるリソースと失敗理由が表示されます。例ではセキュリティグループのアウトバウンドが許可されていないため失敗したと表示されてます。

3. リソース除外機能の活用方法
Reachability Analyzerには、「中間コンポーネント」という機能があります。この機能を使うと、解析経路の中で特定のリソースを強制的に経由させたり、逆に除外したりすることができます。除外機能は、例えば特定のリソース(ロードバランサーやファイアウォールなど)を経由せずに通信が行われる経路が存在するかを確認する際などに活用できます。
ここでは、次のネットワーク構成を例に「Firewallを経由せずに外部ネットワークへ到達可能な経路が存在しないか?」というセキュリティチェックを実施してみましょう。

手順①:パスの作成と分析を実行
2章を参考に、パスの作成と分析を実行します。ここでは、次の送信元と送信先を設定しました。
- パスの送信元:Instances(EC2のID)
- パスの送信先:Internet Gateways
- プロトコル:TCP
分析結果を見ると、疎通が成功していることが分かります。(Firewallを経由してますね)

手順②:中間コンポーネントを除外し、分析を実行
分析結果と同じ画面にある「パスの分析」を押下すると、中間コンポーネントの設定が出来ます。

中間コンポーネントの設定画面
「中間コンポーネントの除外」にFirewallのARNを入力し、「確認」を押下すると分析が実行されます。疎通に失敗しているため、Firewallを経由しないパスは存在しないことが確認できました。

4. 最後に
Reachability Analyzerは、AWSのネットワークトラブルの際に非常に役に立つツールです。私自身何度も助けられてきました。今回紹介した基本的な利用法と中間コンポーネント機能を活用することで、トラブルシューティングだけでなく、意図しない経路のチェックにも役立ちます。この記事がAWSのネットワークに悩む方の助けになれば幸いです。
NTT DATA公式アカウントです。 技術を愛するNTT DATAの技術者が、気軽に楽しく発信していきます。 当社のサービスなどについてのお問い合わせは、 お問い合わせフォーム nttdata.com/jp/ja/contact-us/ へお願いします。