【アップデート速報】EC2インスタンス(Nitro)の通信内容をVPC側でミラーする「VPC Traffic Mirroring」がAmazon CloudWatch Metricsでサポートされました!

EC2インスタンス(Nitro)の通信内容をVPC側からミラーする「VPC Traffic Mirroring」がAmazon CloudWatch Metricsでサポートされました!今回追加されたメトリクスについてレポートしたいと思います。
2019.11.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

寒波と止まらない速報の波に揉まれています。

▲ 手がかじかんでもブログを書くのであった

アップデート速報の勢いが衰えないですが、最近グッと気温が下がるせいで生命活動の方が衰えそうで心配です。つよいこになりたい。 こんにちは、寒さに弱いAWS事業本部のShirotaです。汗かきだから寒い方が良いと思っていた時期もありました。

生命活動も維持できるよう、今日もアップデートを熱く追っていきたいと思います。

今回のアップデート

2019年11月26日、以下のアップデートが発表されました!

Amazon VPC Traffic Mirroring Now Supports Amazon CloudWatch Metrics

EC2インスタンス(Nitro)の通信内容をVPC側でミラーする「VPC Traffic Mirroring」をAmazon CloudWatch Metricsで見られるようになったそうです。 VPC Traffic Mirroringの概要や使い方については、弊社渡辺の以下のブログで分かり易く説明してありますので、そちらを参照して下さい。私も今回改めて読み漁りました。

[新機能] EC2 インスタンス(Nitro)の通信内容をVPC側からミラーする VPC Traffic Mirroring が発表されました!

VPC Traffic Mirroringが発表されてから 約5ヶ月 でCloudWatch Metricsの仲間入り。 早速、どんな感じに仲間入りしたのかを見ていきましょう。

今回追加された各メトリクスについて

今回追加されたメトリクスは、VPC Traffic Mirroringのセッションを作成する際に Mirror sourceとして選択すると表示されるようになり 、選択したElastic Network Interface(ENI)が紐づいているEC2インスタンスの項目に追加されるようになっています。

メトリクス名 内容
NetworkMirrorIn ミラー元のインスタンスの全てのネットワークインターフェースで受信してミラーリングされたバイト数
NetworkMirrorOut ミラー元のインスタンスの全てのネットワークインターフェースで送信してミラーリングされたバイト数
NetworkPacketsMirrorIn ミラー元のインスタンスの全てのネットワークインターフェースで受信したパケット数。 標準モニタリング(5分)のみ可能
NetworkPacketsMirrorOut ミラー元のインスタンスの全てのネットワークインターフェースで送信したパケット数。 標準モニタリング(5分)のみ可能
NetworkSkipMirrorIn トラフィックのミラーフィルターのルールに合致し、かつミラー元のインスタンスで受信していたものの、より優先されたトラフィックがあった為ミラーリングされなかった受信バイト数
NetworkSkipMirrorOut トラフィックのミラーフィルターのルールに合致し、かつミラー元のインスタンスで送信していたものの、より優先されたトラフィックがあった為ミラーリングされなかった送信バイト数
NetworkPacketsSkipMirrorIn トラフィックのミラーフィルターのルールに合致し、かつミラー元のインスタンスで受信していたものの、より優先されたトラフィックがあった為ミラーリングされなかった受信パケット数。 標準モニタリング(5分)のみ可能
NetworkPacketsSkipMirrorOut トラフィックのミラーフィルターのルールに合致し、かつミラー元のインスタンスで送信していたものの、より優先されたトラフィックがあった為ミラーリングされなかった送信パケット数。 標準モニタリング(5分)のみ可能

バイト数は、基本的にモニタリング間隔分の総バイト数になります。 つまり標準モニタリングなら5分間分、詳細モニタリングなら1分間分の受信/送信バイト数になると考えて下さい。

実際にモニタリングしてみた

前述したブログに紹介されていた手順でVPC Traffic Mirroringを設定して、ミラー元のインスタンスにSSHログインをしてみます。

まずは、NetworkMirrorInとNetworkMirrorOutをモニタリングしてみました。

▲ SSHログインをした時間にグラフに変化がありました

今回、作成しているMirroringのフィルターがインバウンドルールのみなのでNetworkMirrorInのみで変化が発生しています。

NetworkPacketsMirrorInとNetworkPacketsMirrorOutについても、同様の形のグラフが現れる筈なので見てみます。

▲ 予想通りです

今回、ミラーリングされないといった事が無かった為、Skip関連のメトリクスに関しては以下のようになりました。

▲ 綺麗な直線

ネットワークの監視がより身近に

VPC Traffic Mirroringが出たことで、迅速にネットワーク上の異常を検出しやすくなりました。 ただし、検出したものをAWS内部で可視化するようなサービスは提供されておらず、検出した物をキャプチャして外部ツールへ持ち込む必要がありました。 今回のアップデートによりCloudWatch Metricsでサポートされた事により、より 手軽かつ迅速にネットワーク上の異常を検出できるようになった のではないでしょうか。 詳細な調査は難しいものの、VPC Traffic Mirroringを利用するだけで上記のメトリクスが使えるようになるのでネットワーク上の監視を始めるハードルが下がるだろうなと思いました。

これを機にVPC Traffic Mirroringを導入してみるのも良いかもしれませんね。