質問・問題
拠点側からEC2に対してICMPを打ち続けていたのですが、VPCフローログを確認したところ、全てのICMPのトラフィックが表示されていないように見受けられました。
また、10分毎にICMPのログが出力されているように見受けられ、すべての10分間のログが出力されていないようです。
回答・解決方法
VPCフローログにて出力されるログは一定間隔のものになります。
実際にはパケットはキャプチャーされており、フローログで出力されるログはこのキャプチャー情報を集約したものとなります。
この挙動はVPCフローログの仕様となり、 ICMP(Ping)通信に限ったものではございません。(ドキュメント [1])
より短い間隔のログが必要となる場合、ログの集約期間を短く設定する必要がございます。
ログの集約間隔はデフォルトで10分となっており、 フローログの作成時に1分へ変更可能です。
既に作成されたフローログの集約期間を変更することは出来ず、再作成する必要がございます。(ドキュメント [2] [3])
出力されるログレコードから通信の詳細なタイミングなどを確認するには、ログに含まれる以下の情報を元に推察していただく必要がございます。(ドキュメント [4])
- packets : フロー中に転送されたパケットの数
- start : 集約間隔内にフローの最初のパケットが受信された時間 (UNIX 秒)
- end : 集約間隔内にフローの最後のパケットが受信された時間 (UNIX 秒)
【参考記事】
[1] フローログレコード - Amazon Virtual Private Cloud ユーザーガイド https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html#flow-log-records
===(抜粋)
各レコードは、集約間隔 (キャプチャウィンドウとも呼ばれる) 内で発生するネットワークインターネットプロトコル (IP) トラフィックフロー (ネットワークインターフェイスごとに 5 タプルによって特徴付けられる) をキャプチャします。
===
[2] 集約間隔 - Amazon Virtual Private Cloud ユーザーガイド https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html#flow-logs-aggregration-interval
===(抜粋)
集約間隔は、特定のフローがキャプチャされ、フローログレコードに集約される期間です。
デフォルトでは、最大の集約間隔が 10 分に設定されています。
フローログを作成する場合、オプションで最大集約間隔を 1 分に指定できます。
最大集約間隔が 1 分のフローログでは、最大集約間隔が 10 分のフローログよりも多くのフローログレコードが生成されます。
===
[3] Amazon VPCフローログで集約間隔を1分に設定可能 - 弊社技術ブログ https://blog.serverworks.co.jp/tech/2020/02/16/vpc-flow-logs/
[4] 使用可能なフィールド - Amazon Virtual Private Cloud ユーザーガイド
https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/flow-logs.html