ネットワークの「健康診断」を始めよう!GCP VPCフローログの読み方を完全マスター
こんにちは!クラウドインフラの世界へようこそ。
インフラエンジニアやSREの仕事をしていると、時々「あれ?通信が通らないぞ?」「なんか変なトラフィックが流れている気がする……」という、目に見えないネットワークの迷路に迷い込むことがあります。そんなとき、私たちを救ってくれる強力な味方がVPCフローログです。
今日は、GCPのVPCフローログが吐き出す「暗号のようなJSONデータ」を、誰でもスラスラ読めるようになるための「翻訳ガイド」をお届けします。
—
そもそも「フローログ」って何のためにあるの?
想像してみてください。あなたは巨大なマンション(VPC)の管理人です。住人(VMインスタンスやコンテナ)たちが誰に手紙(パケット)を出し、誰から受け取っているのか。それを全て記録しておくのが「フローログ」です。
「誰が」「どこへ」「どれくらいの量を」送ったのか。これが分かれば、セキュリティ事故の早期発見や、無駄な通信コストの削減、そして「なぜ通信がつながらないのか」というトラブルの解決に直結します。
—
郵便配達で例える、主要フィールドの正体
VPCフローログが書き出すJSONデータには、たくさんの項目があります。難しく考えず、郵便配達に例えて紐解いていきましょう。
1. src_ip と dst_ip(送信元と宛先の住所)
src_ip(Source IP): 「誰が送ったのか?」という差出人の住所です。dst_ip(Destination IP): 「どこへ届けたいのか?」という宛先の住所です。
2. src_port と dst_port(部屋番号)
IPアドレスが「マンションの住所」なら、ポート番号は「何号室か」です。
- Webサイト(
80や443)なのか、データベース(3306など)なのか。この番号を見るだけで、どんな種類の「手紙(通信)」なのかが見えてきます。
3. proto(通信の言語)
「どんな手段で送ったか」です。
6ならTCP(しっかり届いたか確認する丁寧な郵便)17ならUDP(確認なしでどんどん投げ込む速達郵便)
といった具合です。
4. packets と bytes(荷物の量)
packets: 手紙の「通数」です。bytes: 荷物の「総重量(サイズ)」です。
ここが異常に大きいと、「誰かが大量のデータを外部へ送っているのでは?」といったセキュリティリスクを疑うサインになります。
5. tcp_flags(手紙のやり取りの状態)
これは少し上級編ですが、通信が「繋がったのか」「切れたのか」「拒否されたのか」という状態を示すフラグです。通信の「挨拶(ハンドシェイク)」から「お別れ(終了)」までを追いかけるのに必須です。
—
実践!ログを覗いてみる
実際にGCPのコンソールやBigQueryでログを見ると、以下のような形式でデータが流れてきます。
{
"jsonPayload": {
"connection": {
"src_ip": "10.0.0.5", // 送信元のIPアドレス
"dst_ip": "142.250.1.1", // 宛先のIPアドレス
"src_port": 54321, // 送信元のポート番号
"dst_port": 443, // 宛先ポート(HTTPS通信ですね)
"protocol": 6, // 6なのでTCPです
},
"packets": 10, // 10通のパケットがやり取りされました
"bytes": 5000, // 合計5000バイトの通信量です
"tcp_flags": 2 // TCPの状態フラグ(SYNパケットなど)
}
}
—
SREの現場からのアドバイス
初心者のうちは、全てのログを追いかける必要はありません。まずは以下の手順で「ネットワークの健康診断」を始めるのがおすすめです。
1. 「許可されていない通信」を探す: dst_port が開けてはいけないはずのポートになっていないか確認する。
2. 「異常なトラフィック」を見つける: 特定の src_ip からの bytes が跳ね上がっていないか確認する。
3. 「接続失敗」の原因を探る: tcp_flags を確認し、通信が RST(強制切断)などで拒否されていないか分析する。
注意点:ログはコストがかかる!
VPCフローログはとても便利ですが、全てのパケットを記録するとデータ量が膨大になり、GCPの利用料が高額になることがあります。「サンプリングレート(何%のログを残すか)」という設定を適切に行い、必要な通信だけを効率よく拾うのが、賢いエンジニアのたしなみです。
—
まとめ
ネットワークのトラブルは、まるで霧の中を歩くような不安を感じるかもしれません。でも、VPCフローログという「航海図」さえあれば、パケットがどこへ向かっているのか、どこで迷子になっているのかが必ず見えてきます。
まずは難しく考えず、一つひとつのフィールドを「郵便の宛先や重さ」だと捉えてみてください。皆さんのインフラ運用が、今日から少しでも快適なものになりますように!
何か分からないことがあれば、いつでもまた聞きに来てくださいね。一歩ずつ、一緒に学んでいきましょう!
コメント