NETWORKING IMMERSION DAY / BEGINNER TOPICS / LAB 3: NETWORK MONITORING
LAB 3.1: VPC FLOW LOGS
VPCフローログはVPC内のIPトラフィックのメタ情報を取得することができる機能です。
このLabではLab1で作成したIGW, TGW, EC2インスタンスを持つ3つのVPCを利用します。
VPC AでVPCフローログの設定をし、トラフィックを発生させ、ログをCloudWatchで確認します。
このLabはLab1の環境があれば実施可能です。
Create CloudWatch Log group
CloudWatchでロググループを作成する。
Create VPC Flow log
VPC画面でVPC Aを選択し、フローログの作成を押下する。
以下のような設定でVPCフローログを作成する。IAMロールについては以下参照。
GENERATE TRAFFIC
以上の設定でVPC A内のネットワークインターフェースを通過するIPトラフィックの情報をCloudWatchLogsに保存することができるようになった。
Update Security Group for EC2 instance in VPC B
VPC BにあるEC2インスタンスのセキュリティグループを変更し、iperfを使えるようにする。
インバウンドルールにTCPポート5201、ソースに10.0.0.0/24を追加する。
Install and run iperf3 server on EC2 instance in VPC B
VPC Bのインスタンスにログインし、以下のコマンドでiperfをインストールする。
sudo yum install iperf3 -y
次に以下のコマンドでiperfを起動する。
SSH接続は維持し、次のステップを行う。
iperf3 -s
sh-4.2$ sudo yum install iperf3 -y
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00:00
Resolving Dependencies
--> Running transaction check
---> Package iperf3.x86_64 0:3.1.7-2.amzn2.0.2 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================================================================
Package Arch Version Repository Size
=============================================================================================================================================================
Installing:
iperf3 x86_64 3.1.7-2.amzn2.0.2 amzn2-core 79 k
Transaction Summary
=============================================================================================================================================================
Install 1 Package
Total download size: 79 k
Installed size: 196 k
Downloading packages:
iperf3-3.1.7-2.amzn2.0.2.x86_64.rpm | 79 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : iperf3-3.1.7-2.amzn2.0.2.x86_64 1/1
Verifying : iperf3-3.1.7-2.amzn2.0.2.x86_64 1/1
Installed:
iperf3.x86_64 0:3.1.7-2.amzn2.0.2
Complete!
sh-4.2$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Perform the following on the EC2 instance in VPC A
VPC Aのインスタンスにログインし、以下のコマンドで同様にiperfをインストールする。
sudo yum install iperf3 -y
以下のコマンドにより、VPC Bのインスタンスに対して30秒間、2並列でTCPを転送する。
iperf3 -c <VPC BインスタンスのプライベートIP> -P 2 -t 30
sh-4.2$ iperf3 -c 10.1.0.176 -P 2 -t 30
Connecting to host 10.1.0.176, port 5201
[ 4] local 10.0.0.28 port 34676 connected to 10.1.0.176 port 5201
[ 6] local 10.0.0.28 port 34678 connected to 10.1.0.176 port 5201
[ ID] Interval Transfer Bandwidth Retr Cwnd
[ 4] 0.00-1.00 sec 67.6 MBytes 567 Mbits/sec 21 305 KBytes
[ 6] 0.00-1.00 sec 55.5 MBytes 465 Mbits/sec 25 206 KBytes
[SUM] 0.00-1.00 sec 123 MBytes 1.03 Gbits/sec 46
- - - - - - - - - - - - - - - - - - - - - - - - -
[ 4] 1.00-2.00 sec 64.5 MBytes 541 Mbits/sec 13 289 KBytes
[ 6] 1.00-2.00 sec 56.1 MBytes 471 Mbits/sec 18 264 KBytes
[SUM] 1.00-2.00 sec 121 MBytes 1.01 Gbits/sec 31
- - - - - - - - - - - - - - - - - - - - - - - - -
中略
[ 6] 0.00-30.00 sec 1.63 GBytes 468 Mbits/sec 469 sender
[ 6] 0.00-30.00 sec 1.63 GBytes 468 Mbits/sec receiver
[SUM] 0.00-30.00 sec 3.45 GBytes 987 Mbits/sec 888 sender
[SUM] 0.00-30.00 sec 3.44 GBytes 986 Mbits/sec receiver
iperf Done.
Perform the following on the EC2 instance in VPC A
VPCフローログの構成は以下の通りです。
CloudWatch Logsで前手順で作成したロググループを見るとログストリームが作成されています。
ログストリームを選択し、VPCフローログが出力されていることを確認します。
ログ内のInterface Id
がVPC Aに紐づいていることを確認します。
QUERY FLOW LOG FOR INSIGHTS
CloudWatch Logs Insightsを使用することでCloudWatchに収集されたログをインタラクティブに検索することができます。
テンプレートが用意されているのでユースケースに合えばすぐに目的の検索をすることができます。
LAB 3.2: CLOUDWATCH
CloudWatchはメトリクスのリポジトリ(保存するサービス)です。サイト間VPNのようなサービスはCloudWatchにメトリクスを送信します。ユーザーはメトリクスの統計情報を取得することができます。
このLabではCloudWatchで使用可能な幾つかのNetworkメトリクスを確認し、閾値を監視するアラームを設定し、メトリクスの状況を確認するダッシュボードを作成します。
このLabを実施するにはLab1, Lab2の環境が必要です。
REVIEW METRICS
このLabでは以下2つのCloudWatchメトリクスを確認します。
- VPNトンネルのTunnelState
- VPC AのEC2インスタンスのNetworkInとNetworkOut
CloudWatch > Metricsからすべて>VPN>VPN トンネルのメトリクスと進むとTunnellState
を確認できます。
このメトリクスにより、トンネルの使用状況を確認することができます。このサムネでは1つのトンネルしか使用されていないことがわかります。
Review EC2 network metrics
CloudWatch > Metricsからすべて>EC2>インスタンス別メトリクスのメトリクスと進むとEC2インスタンス毎のNetworkIn
, NetworkOut
を確認できます。
このメトリクスにより、各インスタンスのネットワークIN/OUTの統計情報をbyte単位で確認することができます。
このサムネだと踏み台サーバのINが最も多いようです。
CREATE ALARM
CloudWatchメトリクスを監視するCloudWatchアラームでメトリクスの値が閾値を超えた時にユーザーにそのことを通知するができます。
ここではサイト間VPNを監視し、VPNが使用できなかった時メールで通知するアラームを作成します。
以下のようにTunnelState
が0になったら指定したアドレスにSNSを使用してメール通知するアラームを作成します。
CREATE DASHBOARD
CloudWatchダッシュボードはカスタマイズ可能なダッシュボードです。必要なリソースの情報を1つのビューで閲覧したり、リージョンに跨ったリソースも一目で閲覧できるようになります。
ここでは、TunnelState
, NetworkIn
, NetworkOut
を監視するダッシュボードを作成してみます。
LAB 3.3: CLOUDTRAIL
CloudTrailはAWSアカウントのガバナンス、コンプライアンス、運用監査、リスク監査などを可能にするサービスです。
CloudTrailを使用するとAWSインフラストラクチャ全体のアクションに関連するアカウントのアクティビティを記録し、継続的に監視し、保持することができます。
CloudTrailはAWS管理コンソール、AWS SDK、コマンドラインツール、その他のAWSサービスを通じて行われたアクションを含む、お客様のAWSアカウントアクティビティーのイベント履歴を提供します。
ここではアカウントでCloudTrailを有効にし、サイト間VPNに障害を発生させ、何が障害を発生させたかについて監査を実施します。
CREATE NEW TRAIL
以下のようにCloudTrailを有効化します。
SHUTDOWN THE SITE-TO-SITE VPN CONNECTION
踏み台サーバを停止させ、Transit GatewayへのVPN接続が切断します。
前手順で作成したCloudWatchアラームに設定したアドレスに通知メールが送信されていることを確認します。
ステータスがアラーム状態になっていることを確認します。
REVIEW CLOUDTRAIL EVENT HISTORY
CloudTrailを使用して、VPN接続がダウンした原因を調査してみます。
CloudTrail > イベント履歴画面を表示します。
CloudWatchアラームにより送られてきたメールに記載されているVPN接続が停止した時刻(Timestamp)を確認します。
イベント名StopInstances
で検索し、EC2インスタンスが停止させられたイベントが存在することを確認します。