VPC フローログ
VPC Flow Logs は、Virtual Private Cloud(VPC)ネットワークでパケットをサンプリングしてフローログを生成します。フローログは IP 接続(5 タプル)別に集計されます。VPC Flow Logs は、次のパケットをサンプリングします。
- 仮想マシン(VM)のインスタンスによって送受信されるパケット(Google Kubernetes Engine ノードとして使用されるインスタンスなど)
- Cloud Interconnect と Cloud VPN トンネルの VLAN アタッチメント経由で送信されたパケット
フローログは Cloud Logging で表示でき、Cloud Logging のエクスポート先としてサポートされている任意の宛先にエクスポートできます。 これらのログは、ネットワーク モニタリング、フォレンジック、セキュリティ分析、費用の最適化に使用できます。
詳細については、サポートされている構成をご覧ください。
ユースケース
VPC Flow Logs のユースケースは次のとおりです。
ネットワーク モニタリング
VPC Flow Logs を使用すると、ネットワークのスループットとパフォーマンスを把握できます。次のことが可能です。
- VPC ネットワークをモニタリングする
- ネットワーク診断を実行する
- VM、VLAN アタッチメント、Cloud VPN トンネルによりフローログをフィルタ処理して、トラフィックの変化を理解する
- トラフィックの増加を把握し、キャパシティの予測に役立てる
ネットワーク使用方法の理解とネットワーク トラフィック費用の最適化
VPC Flow Logs を使用すると、ネットワークの使用状況を分析して、ネットワーク トラフィック費用を最適化できます。たとえば、ネットワーク フローを分析して次のことを把握できます。
- リージョンとゾーンの間のトラフィック
- インターネットでの特定の国へのトラフィック
- オンプレミスおよび他のクラウド ネットワークへのトラフィック
- ネットワーク内のトップトーカー(VM、VLAN アタッチメント、Cloud VPN トンネルなど)
ネットワーク フォレンジック
VPC Flow Logs をネットワーク フォレンジックに利用できます。たとえば、インシデントが発生した場合、以下を調べることができます。
- どの IP が、いつ、どの相手と情報をやり取りしたか
- 不正使用された IP(すべての受信と送信のネットワーク フローを分析して調査)
サポートされている構成
VPC Flow Logs は、組織レベルとプロジェクト レベルで有効にできます。組織レベルの VPC Flow Logs 構成では、組織のすべての VPC ネットワークにあるすべてのサブネット、VLAN アタッチメント、Cloud VPN トンネルでフローログが有効になります。
プロジェクト レベルでは、特定の VPC ネットワーク、サブネット、VLAN アタッチメント、Cloud VPN トンネルで VPC Flow Logs を有効にすることができます。
構成スコープ | フローログが生成されるリソース | 有効にする手順 |
---|---|---|
組織 |
|
組織の VPC Flow Logs を有効にする(プレビュー) |
VPC ネットワーク |
|
VPC ネットワークで VPC Flow Logs を有効にする(プレビュー) |
サブネット | 特定のサブネット内のすべての VM インスタンス | サブネットで VPC Flow Logs を有効にする |
VLAN アタッチメント | 特定の VLAN アタッチメント | VLAN アタッチメントで VPC Flow Logs を有効にする |
Cloud VPN トンネル | 特定の Cloud VPN トンネル | Cloud VPN トンネルで VPC Flow Logs を有効にする |
フィルタリングを使用して、これらの構成スコープをカスタマイズできます。詳細については、ログのサンプリングと処理をご覧ください。
ログの収集
パケットは集計間隔内でサンプリングされます。特定の IP 接続について集計間隔内で収集されたすべてのパケットは、単一のフローログ エントリに集計されます。このデータは、フローを報告した VPC ネットワークの Google Cloud プロジェクトの Logging に送信されます。
ログはデフォルトで 30 日間 Logging に保存されます。それより長く保持するには、カスタム保持期間を設定するか、サポートされている保存先にログをエクスポートします。
ログのサンプリングと処理
フローログを生成するために、VPC Flow Logs は VM で送受信されたパケット、または VLAN アタッチメントや Cloud VPN トンネルなどのゲートウェイを通過するパケットをサンプリングします。生成されたフローログは、VPC Flow Logs によって、このセクションで説明する手順に沿って処理されます。
VPC Flow Logs は、プライマリ サンプリング レートを使用してパケットをサンプリングします。プライマリ サンプリング レートは動的で、サンプリング時に VM またはゲートウェイを実行している物理ホストの負荷によって異なります。単一の IP 接続をサンプリングする確率は、パケットの量とともに上昇します。プライマリ フローログのサンプリング プロセスの制御や、プライマリ サンプリング レートの調整を行うことはできません。
生成されたフローログは、VPC Flow Logs によって、次の手順に沿って処理されます。
- フィルタリング。指定した条件に一致するログのみを生成するように指定できます。たとえば、特定の VM のログのみ、または特定のメタデータ値を持つログのみが生成され、残りは破棄されるようにフィルタリングできます。詳細については、ログのフィルタリングをご覧ください。
- 集計。サンプリングされたパケットの情報が、ユーザーが構成可能な集計間隔にわたって集計され、フローログ エントリが生成されます。
- セカンダリ フローログのサンプリング。これは 2 番目のサンプリング処理です。ユーザーが構成可能なセカンダリ サンプリング レートのパラメータに従って、フローログのエントリがさらにサンプリングされます。セカンダリ サンプリングは、プライマリ フローログ サンプリング プロセスによって生成されたフローログに対して実行されます。たとえば、セカンダリ サンプリング レートが 1.0(100%)に設定されている場合、VPC Flow Logs は、プライマリ フローログのサンプリングで生成されたフローログの 100% をサンプリングします。
- メタデータ。無効にすると、すべてのメタデータ アノテーションが破棄されます。メタデータを保持する場合は、すべてのフィールドまたは指定したフィールド セットが保持されるように指定できます。詳細については、メタデータのアノテーションをご覧ください。
- Logging への書き込み。最終的なログエントリが Cloud Logging に書き込まれます。
VPC Flow Logs はすべてのパケットをキャプチャするわけではないため、キャプチャされたパケットから補間することで、欠落したパケットを補います。これは、初期構成とユーザーが構成可能なサンプリング設定が原因でパケットが欠落している場合に起こります。
Google Cloud がすべてのパケットをキャプチャしない場合でも、ログレコードのキャプチャがきわめて大きいサイズになることがあります。ログ収集の以下の設定を調整すると、トラフィックの可視性と必要なストレージ費用のバランスをとることができます。
- 集計間隔。 一定の時間間隔でサンプリングされたパケットは、単一のログエントリに集約されます。この時間間隔は、5 秒(デフォルト)、30 秒、1 分、5 分、10 分、15 分から選択できます。
- セカンダリ サンプリング レート。
- Compute Engine API で作成した構成の場合、デフォルトではログエントリの 50% が保持されます。このパラメータは
1.0
(100%、すべてのログエントリを保持)から0.0
(0%、ログを保持しない)の範囲で設定できます。 - Network Management API で作成した構成の場合、デフォルトではログエントリの 100% が保持されます。このパラメータは、
1.0
から0.0
より大きい値の範囲で設定できます。
- Compute Engine API で作成した構成の場合、デフォルトではログエントリの 50% が保持されます。このパラメータは
- メタデータ アノテーション。フローログ エントリには、 Google Cloud の送信元と宛先の名前や、外部の送信元と宛先の地理的リージョンなどのメタデータ情報によるアノテーションがデフォルトで付加されます。保存容量を節約するためにメタデータ アノテーションをオフにすることも、特定のアノテーションのみを指定することもできます。
- フィルタリング。デフォルトでは、サンプリングされたすべてのフローについてのログが生成されます。特定の条件に一致するログのみを生成するように、フィルタを設定できます。
仕様
- VPC Flow Logs を有効にしても、遅延やパフォーマンスの低下は発生しません。
- VPC Flow Logs は、以前のネットワークではなく、VPC ネットワークで機能します。
- VPC Flow Logs は、TCP、UDP、ICMP、ESP、GRE、RDMA のフローをサンプリングします。
- インバウンド フローとアウトバウンド フローの両方がサンプリングされます。RDMA over Converged Ethernet(RoCE)では、アウトバウンド フローのみがサンプリングされます。
- フローは、 Google Cloud 内または Google Cloud と他のネットワーク間のいずれでもかまいません。
- フローがサンプリングによってキャプチャされると、そのフローについてのログが VPC Flow Logs によって生成されます。各フローレコードには、レコードの形式セクションで説明されている情報が含まれます。
- VPC Flow Logs は、次の方法でファイアウォール ルールとやり取りします。
- 下り(外向き)のパケットは、下り(外向き)ファイアウォール ルールの前にサンプリングされます。下り(外向き)ファイアウォール ルールによってアウトバウンド パケットが拒否されていても、これらのパケットは VPC Flow Logs でサンプリングできます。
- 上り(内向き)パケットは、上り(内向き)ファイアウォールルールの後でサンプリングされます。上り(内向き)ファイアウォール ルールによってインバウンド パケットが拒否された場合、それらのパケットは VPC Flow Logs でサンプリングされません。
- VPC Flow Logs のフィルタを使用して、特定のログのみを生成できます。
- VPC Flow Logs は、複数のネットワーク インターフェースを持つ VM をサポートします。各 VPC で、ネットワーク インターフェースを含むサブネットごとに VPC Flow Logs を有効にする必要があります。
- 同じ Google Kubernetes Engine(GKE)ノード上で Pod 間のフローをログに記録するには、クラスタでノード内の可視化を有効にする必要があります。
- Cloud Run リソースでは、VPC Flow Logs はサポートされていません。
- これらのサブネットはプロキシ専用サブネットとして使用され、VM インスタンスがないため、目的が
INTERNAL_HTTPS_LOAD_BALANCER
のサブネットでは VPC Flow Logs がサポートされていません。 - VPC Flow Logs は、レポート VPC ネットワークのプロジェクトにログを書き込みます。共有 VPC ネットワーク内のリソースの場合、ログはホスト プロジェクトに報告されます。
料金と課金
Logging、BigQuery、または Pub/Sub の標準料金が適用されます。VPC Flow Logs の料金については、ネットワーク テレメトリーの料金をご覧ください。
VPC Flow Logs の料金は、フローログを報告するリソースの Google Cloud プロジェクトに請求されます。組織で VPC Flow Logs が有効になっている場合、プロジェクトごとに個別に課金されます。
次のステップ
- VPC Flow Logs のレコード形式と使用可能なメタデータ アノテーションを確認する。VPC Flow Logs レコードについてをご覧ください。
- さまざまなユースケースで収集される VPC Flow Logs の例を確認する。トラフィック フローについてをご覧ください。
- サブネットのフローのレポートを開始する。VPC Flow Logs を構成するをご覧ください。