Google Cloud の VPC フローログでネットワーク トラフィック分析を行う方法
Google Cloud Japan Team
※この投稿は米国時間 2021 年 5 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。
ネットワーク トラフィック分析は、組織がワークロードのパフォーマンスを把握し、ネットワークの動作と費用を最適化して、トラブルシューティングを実施するための主な方法として挙げられます。この分析は、本番環境でミッション クリティカルなアプリケーションを実行する際に欠かせません。VPC フローログは、こうしたエンタープライズ クラスのネットワーク トラフィック分析ツールの 1 つであり、Google Kubernetes Engine(GKE)ノードとして使用されるインスタンスなど、Google Cloud 上の VM インスタンスとの間で TCP や UDP のトラフィック フローに関する情報を送受信します。VPC フローログは Cloud Logging で表示したり、サードパーティ ツールや BigQuery にエクスポートしたりして詳細に分析できます。
ただし、強力なツールでありがちなのですが、VPC フローログを使おうとするとどこから始めたらよいかわからない場合があります。そうしたユーザーへの支援として、VPC フローログを使用する際に役立ち、ネットワークに関する一般的な質問に回答する一連のガイドをご用意しました。
この投稿では、さまざまなユースケースにエクスポート、分析、レポート作成機能を提供する Google Cloud プロフェッショナル サービスの一連のオープンソース ツールについて概要を説明します。
VPC フローログの費用を見積もり、費用を最適化する
組織全体でフローログが生成されるようにし、セキュリティ ポリシーに準拠するようにする
BigQuery にエクスポートし、分析を実施する。たとえば、トラフィック使用量が特に多いプロセス(トップトーカー)を環境内で特定して費用分析を行い、さまざまなプロジェクトごとに相互接続の使用量を把握します。
これらのツールやチュートリアルはすべて GitHub から入手できます。以下では、これらのユースケースについて、それぞれ詳しく確認していきます。
1. VPC フローログの費用を見積もり、ログ容量を最適化する
VPC フローログを本格的に使い始める前に、費用が想定外の金額になってしまわないよう、環境がどの程度の規模になるかを把握しておくことをおすすめします。環境でのロギングを有効にする前に、料金計算ツールを使用して VPC フローログのサイズを予測し、予想使用量に基づいて費用の見積もりを作成できます。Cloud Console のサブネット編集インターフェースを通じて、1 日あたりの生成ログの推定サイズを表示できます。複数のサブネット、プロジェクト、ワークスペース全体でフローログを有効にする前に費用を見積もる場合、こちらの Cloud Monitoring サンプル ダッシュボードで、トラフィック量とログ使用量に基づいてフローログのサイズを見積もることができます。
必要に応じて、別のサンプリングレートを使用して VPC フローログのサイズを削減できます。これによる結果の精度への影響は、特にトップトーカーなどのトラフィック統計情報を確認するときには、比較的小さくなります。必要に応じてログをフィルタして、ログの量をさらに削減することもできます。
2. 組織全体でフローログを使用する
VPC フローログはセキュリティとコンプライアンスに必要なネットワークの監査機能を提供します(多くの組織では、組織全体で VPC フローログを有効にすることを義務付けています)。
これを支援するために、Cloud Functions で特定フォルダの下にあるすべてのネットワークに VPC フローログを適用するスクリプトを作成しました。Cloud Functions は、サブネットの変更に関する通知を Pub/Sub トピックでリッスンします。
概要と Terraform コードはこちらでご覧ください。
3. 分析を実施する
VPC フローログでコスト分析を行う方には、チュートリアルや Terraform コードも用意されています。VPC フローログを BigQuery に簡単にエクスポートして分析を実行する方法を確認できます。具体的には、これらのスクリプトは 2 つの異なる課題を解決します。
さまざまなプロジェクトごとに相互接続の使用量を把握する
こちらの Terraform コードとチュートリアルでは、VPC フローログを分析して、さまざまなプロジェクトごとに相互接続のアタッチメントの使用量を見積もるためのメカニズムを説明し提供しています。これらは、ランディング ゾーン(Google Cloud でワークロードをホストするためにプロビジョニングされ準備された環境)を管理するネットワーク管理者が使用することを想定しています。
VPC フローログは VM との間のさまざまなフローをキャプチャしますが、このスクリプトは相互接続を流れる下り(外向き)トラフィックにのみ焦点を当てています(図の赤い矢印)。スクリプトが下り(外向き)トラフィックのみに焦点を当てている理由は、課金対象が VPC から相互接続へのトラフィックに限られるためです(ロードバランサなど、上り(内向き)トラフィックを処理しているリソースがない場合)。
トップトーカーを特定する
こちらの Terraform コードを使用すると、VPC フローログを分析して、オンプレミス、インターネット、特定のアドレスなどの構成可能な IP アドレス範囲に対するトップトーカー サブネットを特定できます。
使ってみる
もちろん、ここで紹介したのはこのツールのユースケースのごく一部にすぎません。他にもセキュリティのユースケースからコストの内訳や見積もりの実施まで多岐にわたります。特定の機能をリクエストする場合、お気軽にお問い合わせください。同じことは VPC フローログ向けに作成していただいた特定の分析にも当てはまります。お客様がこのリポジトリにそれらの分析を提供してくださることを楽しみにしています。詳細については、VPC フローログのドキュメントをご覧ください。
これを可能にしてくれた多くの Google Cloud の関係者のみなさん(Alfonso Palacios、Anastasiia Manokhina、Andras Gyomrey、Charles Baer、Ephi Sachs、Gaspar Chilingarov、Xiang Shen)に感謝します。
-Google Cloud プロダクト マネージャー Irene Abezgauz