【入門編】 VPCフローログのログフォーマット仕様とV2からV5までのフィールド拡張 – クラウドインフラと仮想化ネットワーク実践ガイド

クラウドの世界へようこそ!SREとして日々インフラの裏側と向き合っている私ですが、クラウドネットワークの面白さ、そして怖さの双方が凝縮されているのが「VPCフローログ」です。

AWSの仮想空間(VPC)の中を、目に見えないパケットが日々ものすごい勢いで駆け巡っています。「今、一体誰と誰が通信しているんだろ?」そんな疑問を持ったことはありませんか?ネットワークの初学者にとって、目に見えない通信の可視化は最初の一歩であり、最大の壁でもあります。

今回は、AWSのネットワーク監視の主役である「VPCフローログ」のログフォーマット、そしてバージョンアップに伴う進化(V2からV5まで)について、身近な例えを交えながら優しく紐解いていきたいと思います。一歩ずつ、リラックスして理解していきましょう!

—

1. VPCフローログってなぁに?(現実世界でたとえてみよう)

いきなり「ENI(Elastic Network Interface)を通るパケットのメタデータが〜」なんて言われると、頭がクラクラしてしまいますよね。ですので、まずは私たちの身近な世界に置き換えて考えてみましょう。

想像してみてください。あなたは巨大なマンションの管理人さんです。このマンション(=VPC)にはたくさんの部屋(=EC2インスタンスなどのリソース)があり、住人たちは日々、外の世界と手紙(=パケット)のやり取りをしています。

管理人さんであるあなたは、セキュリティと管理のために、エントランスに「郵便の出入り記録台帳」を置くことにしました。

  • 「何時何分に」
  • 「どこの誰から(差出人)」
  • 「どの部屋の誰宛てに(宛先)」
  • 「どんな大きさの封筒が(データ量)」
  • 「無事に届いたか(ステーションの状態)」

この台帳こそが、AWSにおけるVPCフローログの正体です。パケットの中身(手紙のラブレターの本文など)を見ることはプライバシーの観点(およびAWSの仕様)からできませんが、「誰と誰が、どれくらいやり取りしたか」というメタデータ(封筒の表書き情報)を完璧に記録してくれるスグレモノなのです。

—

2. ログフォーマットの基本構造(V2のフィールドを覗いてみよう)

VPCフローログの歴史はバージョン2(V2)から本格的に普及しました。今でもデフォルトとしてよく見かける、基本のフォーマットを見てみましょう。

フローログは、スペース(またはカスタムの場合は指定文字)区切りのテキストデータとして出力されます。典型的なV2の1行は、次のような並びになっています。

2 123456789012 eni-0123456789abcdef0 192.0.2.1 198.51.100.2 443 52341 6 1 40 1420000000 1420000060 ACCEPT OK

パッと見ると暗号のようですが、左から順に意味が決まっています。主要なものをいくつかピックアップして、郵便の封筒の表書きになぞらえて紐解いてみましょう。

  • version(2): 記録用紙のフォーマットのバージョンです。
  • account-id(123456789012): 荷物を受け付けたあなたのAWSアカウントIDですね。
  • interface-id(eni-0123456789abcdef0): 郵便受け口(ENI)の固有IDです。
  • srcaddr(192.0.2.1): 差出人のIPアドレス。
  • dstaddr(198.51.100.2): 宛先のIPアドレス。
  • srcport / dstport(443 / 52341): 差出人と宛先の「窓口番号(ポート番号)」。例えばWebなら 443 など。
  • protocol(6): 通信のルールの種類。番号 6 はTCP(確実に届けるお堅いルール)、17 はUDP(どんどん投げる速達ルール)を意味します。
  • packets / bytes(1 / 40): 送られたパケットの数と、その総バイト数(重さや大きさ)。
  • start / end(タイムスタンプ): 通信が始まった時間と終わった時間(Unix時間)。
  • action(ACCEPT / REJECT): セキュリティグループやネットワークACLの検問を「通した(ACCEPT)」のか「拒否した(REJECT)」のか。トラブルシューティングで一番見る重要ポイントです!
  • log-status(OK / NODATA / SKIPDATA): ログ自体が正常に記録されたかを示すステータス。

—

3. バージョンアップの歴史:V2からV5までの進化を追う

「基本はV2で十分じゃない?」と思われるかもしれませんが、クラウドのアーキテクチャが複雑化するにつれて、もっと細かい情報が欲しくなりました。

ここで、V2から最新のV5に至るまでの進化のドラマを、段階を追って見ていきましょう。

V3での進化:トラフィックの「向き」がわかるように!

V2では「どちらから通信が始まったか」の方向性が少し分かりにくかったのですが、V3で flow-direction や traffic-path といったフィールドが追加されました。

  • 例え話: 郵便が「マンションの住人が外に出したもの(Egress)」なのか、「外から住人宛てに届いたもの(Ingress)」なのかが、パッと見で判別できるようになりました。

V4での進化:より深いネットワーク階層へ

V4では、AWSのローカルネットワーク環境におけるIPアドレスの仕組みに合わせたフィールド(パケットが通るレイヤーの拡張など)が強化されました。コンテナや複雑なVPCピアリング環境での追跡精度がグッと上がったのです。

V5での進化:カスタムフィールドと多様なプロトコルの網羅

そして現在の主流であるV5。これが本当に強力です!
V5では、これまでの固定化されたフィールドに加え、自分で記録したい情報を自由に追加できる「カスタムフォーマット」の柔軟性が飛躍的に向上しました。
さらに、TCPのフラグ(SYN, ACK, FINなど、通信の「握手」のフェーズ)や、パケットの方向、さらにはAWSTransit Gatewayを通過する際のメタデータなど、ネットワークエンジニアが「ここが知りたかった!」と叫びたくなる痒い所に手が届くフィールドが網羅されました。

—

4. 実務でどう使う?VPCフローログの活用シナリオと設定例

SREの現場では、このフローログをどのように活かしているのでしょうか。具体的なシーンと、AWS CLIでの簡単な有効化のハンズオンを見てみましょう。

シーン:セキュリティインシデントの早期発見と「REJECT」の解析

「なんだか特定のサーバーにやたらとアクセスが集中しているぞ?」という時、CloudWatch Logs InsightsやAmazon Athenaを使って、フローログから action = 'REJECT' となっているログを検索します。
「おや、海外の未知のIPから、SSH(ポート22)への総当たり攻撃(ブルートフォース)がガンガン弾かれているな」といった状況が手に取るように分かります。ファイアウォール(セキュリティグループ)がしっかり仕事をしている証拠を確認できるわけですね。

AWS CLIでの設定サンプル

それでは、実際に特定のVPCに対して、豊富な情報量を持つ最新のV5形式でフローログを有効化するコマンドの例を見てみましょう。実務でそのまま参考にしていただけます。

# 【AWS CLI】指定したVPCに対して、CloudWatch Logsに出力するVPCフローログ(V5形式)を作成する例
aws ec2 create-flow-logs \
    --resource-type VPC \
    --resource-ids vpc-0123456789abcdef0 \
    --traffic-type ALL \
    --log-destination-type cloud-watch-logs \
    --log-group-name /aws/vpc/flow-logs/production \
    --deliver-logs-permission-arn arn:aws:iam::123456789012:role/VPCFlowLogsExecutionRole \
    --log-format '${version} ${account-id} ${interface-id} ${srcaddr} ${dstaddr} ${srcport} ${dstport} ${protocol} ${packets} ${bytes} ${start} ${end} ${action} ${log-status} ${flow-direction} ${traffic-path}'

コードのポイント解説:

  • --traffic-type ALL: 「通したもの(ACCEPT)」だけでなく「拒否したもの(REJECT)」も含めたすべての通信を記録します。セキュリティ調査には ALL が基本です。
  • --log-format: ここでV5のカスタムフォーマットを指定しています。バージョン情報から方向(flow-direction)、パス(traffic-path)まで網羅し、後からの解析をしやすくしています。

—

5. おわりに

いかがでしたでしょうか?
VPCフローログのフォーマット仕様、そしてV2からV5への進化の背景には、「クラウド上の巨大なネットワーク都市で、安全かつ円滑に通信を行わせたい」というエンジニアたちの知恵と工夫が詰まっています。

最初は呪文のように見えたアルファベットの羅列も、「郵便の表書き」という文脈に置き換えてみると、途端に親しみやすく感じられたのではないでしょうか。

インフラやネットワークの初学者の皆さん、焦る必要は全くありません。まずはマネジメントコンソールから小さなVPCでフローログをポチッと有効にし、CloudWatch Logsでその中身をのぞき見るところから始めてみてください。「おっ、自分のPCからAWSへの通信が記録されてる!」という小さな感動の積み重ねが、あなたを一流のクラウドエンジニアへ導いてくれます。

それでは、また次回のインフラ探検でお会いしましょう!

コメント

タイトルとURLをコピーしました