【AWS】VPCフローログとは?設定方法・CloudWatch/Athena連携をわかりやすく解説
生徒
「先生、AWSのVPCフローログって何のためにあるんですか?まだ設定したことがなくて…」
先生
「VPCフローログは、AWS内のネットワークトラフィックを記録できる便利な機能です。トラブルシューティングやセキュリティ監視に使えますよ。」
生徒
「なるほど!ネットワークの動きを可視化できるってことですね。CloudWatchとかAthenaとも関係ありますか?」
先生
「いい質問です。それも含めて、VPCフローログの基本からAthena連携まで一緒に学んでいきましょう!」
1. VPCフローログとは?
VPCフローログ(VPC Flow Logs)とは、AWSの仮想ネットワーク(VPC)内を流れる「通信の記録」をキャッチして保存する機能です。 簡単に言えば、ネットワーク上の「誰が(IPアドレス)」「どこへ(送信先)」「どんな方法で(プロトコル)」「通信を許可されたか、拒否されたか(アクション)」という情報を記した「通話履歴」のようなものです。
この機能の最大の特徴は、エージェント(専用のソフト)をサーバーにインストールすることなく、AWSのインフラ側で自動的にログを収集できる点にあります。そのため、システムのパフォーマンスに影響を与えることなく、ネットワーク全体の動きを手に取るように把握できます。
VPCフローログの役割を身近なものに例えると、「建物の廊下に設置された防犯カメラ」が非常に近いです。
- 防犯カメラ(VPCフローログ): 誰がどの部屋に入ろうとしたか、その結果(入室許可か拒絶か)をすべて記録します。
- 実際の通信(パケット): カメラは「誰が通ったか」を記録しますが、その人が持っている「カバンの中身(メールの内容やファイルの中身)」までは映しません。
このように、中身までは見ない代わりに「通信のルールが正しく機能しているか」をチェックするための、最も信頼できるデータとなります。
このログを活用することで、具体的には以下のようなメリットが得られます。
不審な海外IPアドレスからのアクセスや、深夜の異常な通信を早期に発見できます。
「なぜか通信がつながらない」という時、セキュリティ設定で拒否(REJECT)されていないか即座に確認可能です。
2026年現在のクラウド運用において、VPCフローログの有効化は「セキュリティの基本(ベストプラクティス)」とされており、万が一の事態が起きた際の原因究明には欠かせない存在となっています。
2. VPCフローログで記録される情報
VPCフローログは、ネットワーク上を流れるパケット一つひとつの中身(ペイロード)を見るのではなく、通信の「メタデータ」を記録します。これにより、プライバシーを保護しつつ、「誰が・どこに・どのくらいのデータを送ったか」を正確に把握できます。
具体的には、デフォルトのログ形式で以下のような主要な項目が記録されます。
| 項目名 | 説明 | 例 |
|---|---|---|
| srcaddr | 送信元IPアドレス | 10.0.1.5 |
| dstaddr | 宛先IPアドレス | 203.0.113.10 |
| srcport / dstport | 送信元と宛先のポート番号(通信の窓口) | 443 (HTTPS) など |
| protocol | 通信プロトコル番号(TCPは6、UDPは17) | 6 |
| packets / bytes | 転送されたパケット数とデータサイズ | 1000 bytes |
| action | 通信の結果(許可または拒否) | ACCEPT / REJECT |
| log-status | ログの記録状態 | OK / NODATA |
VPCフローログの1行は、Javaのオブジェクトのように「データの塊」として考えると分かりやすくなります。例えば、「10.0.1.5から外部サーバーへアクセスしたが拒否された」というログは、以下のようなイメージで管理されています。
public class FlowLogEntry {
String srcAddr = "10.0.1.5";
String dstAddr = "203.0.113.10";
int dstPort = 80;
String action = "REJECT"; // ここが最重要!通信がブロックされたことを示す
public void checkSecurity() {
if (this.action.equals("REJECT")) {
System.out.println("警告:不正なアクセス、または設定ミスにより通信が遮断されました。");
}
}
}
警告:不正なアクセス、または設定ミスにより通信が遮断されました。
実際のログはスペース区切りのテキスト形式で出力されますが、このように「action(結果)」と「addr(住所)」をセットで見ることで、異常な通信を即座に特定できるようになります。
これらの情報が蓄積されることで、「特定のIPアドレスから大量の拒否ログが出ている=攻撃を受けている可能性がある」といった高度なセキュリティ分析が可能になるのです。
3. VPCフローログの設定方法(CloudWatch Logs出力)
VPCフローログをCloudWatch Logsに出力するには、以下のステップで設定します。
- AWSマネジメントコンソールでVPCダッシュボードを開く
- 「フローログ」を選択し、「フローログの作成」をクリック
- ログ出力先に「CloudWatch Logs」を選択
- IAMロール、ロググループ、ログフォーマットを設定
- 対象のVPC・サブネット・ENIを選択して作成
CloudWatchでログを確認すれば、通信内容がリアルタイムでモニタリングできます。
4. S3出力とAthena連携の設定方法
CloudWatch以外にも、VPCフローログをS3バケットに出力することで、Amazon Athenaでのクエリ分析が可能になります。
設定の流れは以下の通りです。
- VPCの「フローログ」から「フローログの作成」
- ログ出力先として「Amazon S3」を選択
- S3バケット名とプレフィックスを指定
- IAMロールとログ形式(パーケット形式またはテキスト)を指定
- 作成後、ログがS3に保存される
Athenaでの分析に備え、Glueクローラでパーティションテーブルを作成するのがおすすめです。
5. AthenaでVPCフローログを分析する方法
VPCフローログのS3出力をAthenaで分析する手順は次の通りです。
- AWS Glueでクローラを作成
- S3ログパスを指定し、データベースに登録
- Athenaでテーブルを選択してクエリ実行
たとえば、特定IPからのアクセス回数を分析するには以下のようなクエリを実行します。
SELECT sourceaddress, COUNT(*) as access_count
FROM vpc_flow_logs
WHERE action = 'ACCEPT'
GROUP BY sourceaddress
ORDER BY access_count DESC
LIMIT 10;
このように、Athenaを使えば、大量のログをサーバレスで効率的に解析できます。
6. VPCフローログのユースケースと活用例
VPCフローログは以下のようなユースケースで活用されています。
- 不正アクセスの検出: 未承認のIPアドレスからのトラフィックを可視化
- ポートスキャンの検知: 不審な複数ポートへのアクセスログから検出
- 通信エラーの原因分析: アクセスが拒否された通信ログからルール誤りを特定
- データ転送量の集計: 通信バイト数を分析してコスト最適化
7. VPCフローログ利用時の注意点
- すべてのトラフィックが記録されるとは限らない: DNSやVPCピアリングなど一部の通信は記録対象外
- ログボリュームが多くなる: 長期間保存するとコストが増加。必要に応じてS3にアーカイブ
- ログフォーマットの理解: 分析や可視化の際は項目順と意味を正しく理解する必要がある
活用の幅が広いVPCフローログですが、設計と運用のバランスが大切です。
まとめ
今回は、AWSのVPCフローログとは何かという基礎から始まり、CloudWatch LogsやAthenaとの連携方法まで、実践的な内容を交えて詳しく解説しました。 VPCフローログは、ネットワークの可視化とセキュリティ強化に欠かせない機能であり、特にトラブルシューティングや不正アクセス検知、通信分析など多方面で活躍します。
CloudWatch Logsに出力すれば、リアルタイムの監視ができ、S3 + Athena連携を使えば、大量のログデータを効率よくクエリで分析することが可能です。 Glueとの組み合わせにより、Athenaの利便性がさらに高まります。
また、以下のようなAthenaクエリ例を活用することで、実際のネットワークの状態やトラフィックパターンを把握できます。
-- アクセス拒否された通信ログを抽出
SELECT sourceaddress, destinationaddress, protocol, action
FROM vpc_flow_logs
WHERE action = 'REJECT'
AND protocol = 6
LIMIT 20;
このように、VPCフローログの活用は「AWS セキュリティ監視」「VPC ネットワーク分析」「Athena ログ可視化」など、 検索ユーザーがよく調べるキーワードに非常に関連しています。 今回の知識を活かして、セキュアかつ効率的なクラウドインフラの運用に役立ててください。
生徒
「VPCフローログでネットワークの動きが記録されるって、本当に便利ですね!CloudWatchとAthena両方使えるのもすごいです。」
先生
「そうですね。状況に応じて出力先を選べるのがポイントです。リアルタイムで見たいならCloudWatch、分析したいならAthenaが便利ですよ。」
生徒
「AthenaでSQLを使ってログを調べられるのは、データベース感覚で使えて面白いですね。実際のトラブル解析にも活かせそうです!」
先生
「その通り。特にセキュリティや運用保守の現場では必須の技術になりますよ。実際にログを出力してAthenaでクエリを試してみてくださいね。」
生徒
「はい!VPCフローログの設定もやってみて、自分の環境でも活用してみます!」
先生
「素晴らしい意欲ですね。次はGuardDutyやWAFとの連携も学んでいくと、セキュリティの理解がさらに深まりますよ。」