AWSSupport-SetupIPMonitoringFromVPCを利用してVPC内の特定ネットワーク状況を把握する
園部です。
今回は、こちらの記事:Debugging tool for network connectivity from Amazon VPCで、紹介されていた「AWSSupport-SetupIPMonitoringFromVPC」を利用してみます。
AWSSupport-SetupIPMonitoringFromVPCとは?
Systems Manager Automation で利用できるAWSによって事前に準備されたドキュメントの一つです。 AWSSupport-SetupIPMonitoringFromVPC
[説明]
AWSSupport-SetupIPMonitoringFromVPC は、指定されたサブネットに Amazon EC2 インスタンスを作成し、ping、MTR、トレースルートおよび tracetcp テストを継続的に実行することによって、選択したターゲット IP (IPv4 または IPv6) を監視します。結果は Amazon CloudWatch Logs ログに保存され、メトリクスフィルタが適用されて、CloudWatch ダッシュボードの待ち時間とパケット損失の統計をすばやく視覚化できます。
[追加情報]
CloudWatch Logs データは、ネットワークのトラブルシューティングやパターン/傾向の分析に使用できます。さらに、パケット損失やレイテンシーがしきい値に達したときに、Amazon SNS 通知で CloudWatch アラームを設定できます。データはプレミアムサポートケースを開くときに使用され、問題の特定や、ネットワークの問題の調査、解決がすばやく行えるようにします。
(引用:公式ドキュメントより)
構成として、このようになります。(この図には対象インスタンスは含まれていません)
(引用:冒頭の「Debugging tool for network connectivity from Amazon VPC」記事より)
やってみる
環境
今回は、以下のようなイメージで、対象となるEC2を異なるAZに配置したサブネットに1台ずつ用意し、それぞれに対して、実施してみます。
1. 環境作成
前述の環境イメージ図にあるリソースを作成します。 (作成手順は割愛します)
注意点: Monitor EC2からTarget EC2へのアクセス許可をセキュリティグループで設定しておいてください。(ICMPなどのネットワークコマンド用ポート)
2. AWSSupport-SetupIPMonitoringFromVPC の実行
2-1. Systems Manager Automation からドキュメント(AWSSupport-SetupIPMonitoringFromVPC)を選択します
2-2. 必要項目を入力して、実行します
今回は、SubnetIdとTargetIPsとCloudWatchLogGroupRetentionInDaysのみ指定しました。
3. 結果確認
3-1. 実行の詳細を確認します
ステップ数は38ありますが、28まで行けば完了です。
(28以降は、内容的に削除時のステップに見受けられます)
3-2. 作成されたリソースを確認します
【EC2】
「AWSSupport-SetupIPMonitoringFromVPC - subnet-***」という名前で1つインスタンスが起動されています。
【セキュリティグループ】
「SetupIPMonitoringFromVPC_***」というグループ名で1つ作成されています。
- インバウンドは何もなし
- アウトバウンドは全て許可
【IAMロール】
「SetupIPMonitoringFromVPC_***」という名前で1つ作成されています。ポリシーは「AmazonEC2RoleforSSM」と「SetupIPMonitoringFromVPC_CWPermissions」がアタッチされています。
3-3. CloudWatchの内容を確認します
【CloudWach Logs】
Pingなどの結果がCloudWatch Logsに蓄積されています。
【メトリクス】
メトリクスフィルターで、2種類のメトリクスが取得されています。 このメトリクスを用いて、アラームを作成することも可能です。
【ダッシュボード】(若干、加工しました)
PacketLossとLatencyがグラフ化され、その他の項目は、CloudWatch Logsへのリンクが表として表示されています。 一番下のフレームでは、この処理を停止や削除、新規作成のボタンが配置されています。
PacketLossについては、途中でセキュリティグループを変更し、通信を遮断したところ、その部分はロスの結果になっています。
Latencyは、「192.168.1.83」が同一サブネット(寒色系の線)、「192.168.0.168」は異なるサブネット(暖色系の線)に配置されてEC2のため、値に一定の差が出ています。
4. AWSSupport-SetupIPMonitoringFromVPC の撤収
4-1. CloudWatch ダッシュボード 「Terminate test」を選択します
4-2. 必要が自動で入力されるため、実行します
まとめ
セキュリティグループの設定がクリアされていれば、Systems Managerでの入力と選択だけで、環境が構築され、利用可能となります。 とても手軽なのではないかと思います。 想定していたよりパフォーマンスが出ない時や、ネットワークに懸念がある時に、状況を把握する手段の一つとなるのではないでしょうか。
また、ネットワーク監視として利用することも可能かと思います。その際は、(冒頭の記事にも書かれていますが)他の監視方法との併用やコスト面から対象EC2×CloudWatch Logsの保管期間などをご検討の上、利用された方が良いと思います。