Closed12

NETWORKING IMMERSION DAY / BEGINNER TOPICS / LAB 3: NETWORK MONITORING

kenryokenryo

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ロールについては以下参照。
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs-cwl.html#flow-logs-iam

kenryokenryo

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.
kenryokenryo

Perform the following on the EC2 instance in VPC A

VPCフローログの構成は以下の通りです。

CloudWatch Logsで前手順で作成したロググループを見るとログストリームが作成されています。

ログストリームを選択し、VPCフローログが出力されていることを確認します。

ログ内のInterface IdがVPC Aに紐づいていることを確認します。

kenryokenryo

QUERY FLOW LOG FOR INSIGHTS

CloudWatch Logs Insightsを使用することでCloudWatchに収集されたログをインタラクティブに検索することができます。

テンプレートが用意されているのでユースケースに合えばすぐに目的の検索をすることができます。

kenryokenryo

LAB 3.2: CLOUDWATCH

CloudWatchはメトリクスのリポジトリ(保存するサービス)です。サイト間VPNのようなサービスはCloudWatchにメトリクスを送信します。ユーザーはメトリクスの統計情報を取得することができます。
このLabではCloudWatchで使用可能な幾つかのNetworkメトリクスを確認し、閾値を監視するアラームを設定し、メトリクスの状況を確認するダッシュボードを作成します。
このLabを実施するにはLab1, Lab2の環境が必要です。

kenryokenryo

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が最も多いようです。

kenryokenryo

CREATE ALARM

CloudWatchメトリクスを監視するCloudWatchアラームでメトリクスの値が閾値を超えた時にユーザーにそのことを通知するができます。

ここではサイト間VPNを監視し、VPNが使用できなかった時メールで通知するアラームを作成します。

以下のようにTunnelStateが0になったら指定したアドレスにSNSを使用してメール通知するアラームを作成します。

kenryokenryo

CREATE DASHBOARD

CloudWatchダッシュボードはカスタマイズ可能なダッシュボードです。必要なリソースの情報を1つのビューで閲覧したり、リージョンに跨ったリソースも一目で閲覧できるようになります。
ここでは、TunnelState, NetworkIn, NetworkOutを監視するダッシュボードを作成してみます。

kenryokenryo

LAB 3.3: CLOUDTRAIL

CloudTrailはAWSアカウントのガバナンス、コンプライアンス、運用監査、リスク監査などを可能にするサービスです。
CloudTrailを使用するとAWSインフラストラクチャ全体のアクションに関連するアカウントのアクティビティを記録し、継続的に監視し、保持することができます。
CloudTrailはAWS管理コンソール、AWS SDK、コマンドラインツール、その他のAWSサービスを通じて行われたアクションを含む、お客様のAWSアカウントアクティビティーのイベント履歴を提供します。

ここではアカウントでCloudTrailを有効にし、サイト間VPNに障害を発生させ、何が障害を発生させたかについて監査を実施します。

kenryokenryo

CREATE NEW TRAIL

以下のようにCloudTrailを有効化します。





kenryokenryo

SHUTDOWN THE SITE-TO-SITE VPN CONNECTION

踏み台サーバを停止させ、Transit GatewayへのVPN接続が切断します。

前手順で作成したCloudWatchアラームに設定したアドレスに通知メールが送信されていることを確認します。

ステータスがアラーム状態になっていることを確認します。

kenryokenryo

REVIEW CLOUDTRAIL EVENT HISTORY

CloudTrailを使用して、VPN接続がダウンした原因を調査してみます。

CloudTrail > イベント履歴画面を表示します。
CloudWatchアラームにより送られてきたメールに記載されているVPN接続が停止した時刻(Timestamp)を確認します。

イベント名StopInstancesで検索し、EC2インスタンスが停止させられたイベントが存在することを確認します。

このスクラップは2022/06/05にクローズされました