すべてのプロダクト
Search
ドキュメントセンター

Virtual Private Cloud:VPC フローログ

最終更新日:Sep 19, 2026

VPC フローログは、Elastic Network Interface (ENI) のインバウンドおよびアウトバウンドトラフィックをキャプチャします。フローログを使用して、ネットワークパフォーマンスの監視、ネットワーク障害のトラブルシューティング、トラフィックコストの最適化を行います。

仕組み

フローログを作成して、ENI、vSwitch、または VPC の 3 つの粒度でトラフィックをキャプチャできます。VPC または vSwitch のフローログを作成すると、システムは後で作成された ENI を含め、関連するすべての ENI からのトラフィックをキャプチャします。

デフォルトで 10 分間の各キャプチャウィンドウ中に、システムはトラフィックデータをフローログエントリに集約し、Simple Log Service (SLS) に配信します。

各フローログエントリは、キャプチャウィンドウの特定の 5 タプルネットワークフローをキャプチャします。エントリには、送信元および宛先 IP アドレス、送信元および宛先ポート、およびプロトコルのフィールドが含まれます。例:

Eni-id

Direction

Srcaddr

Srcport

Protocol

Dstaddr

Dstport

...

eni-xxx

in

10.0.0.1

53870

6

10.0.0.2

80

...

eni-xxx

out

10.0.0.2

80

6

10.0.0.1

53870

...

すべてのフィールドの説明については、「フローログのフィールド」をご参照ください。

コストを削減するために、特定のパスからのトラフィックのみをキャプチャできます。利用可能なパスは次のとおりです:

  • IPv4 ゲートウェイを介したインターネットへのトラフィック

  • NAT ゲートウェイを介したトラフィック

  • VPN ゲートウェイを介したトラフィック

  • Transit Router (TR) を介したトラフィック

  • ゲートウェイエンドポイントを介したクラウドサービスへのトラフィック

  • 仮想ボーダールーター (VBR) を介した Express Connect 回線へのトラフィック

  • Express Connect Router (ECR) を介したトラフィック

  • Gateway Load Balancer エンドポイントを介したトラフィック

  • インターネットへのトラフィック

    インターネットに接続された Classic Load Balancer (CLB) からインターネットへのトラフィックのキャプチャはサポートされていません。

フローログの一般的なユースケースは次のとおりです:

  • ネットワーク監視:VPC のスループットとパフォーマンスを監視し、VPC 内のリソースのトラフィックパターンと傾向を分析し、ネットワークの問題をトラブルシューティングし、セキュリティグループとネットワーク ACL ルールが期待どおりに機能していることを確認します。

  • ネットワークコストの最適化:ネットワークトラフィックを分析して、データ転送費用を最適化します。たとえば、VPC から他のリージョン、特定のパブリック IP アドレス、またはオンプレミスデータセンターや他のクラウドネットワークへのトラフィックを特定できます。また、VPC 内で大量のトラフィックを生成する Elastic Compute Service (ECS) インスタンスを見つけることもできます。

  • セキュリティ分析:セキュリティインシデント中に、インバウンドおよびアウトバウンドトラフィックを分析して、不審な IP アドレスを特定したり、悪意のある IP からのアクセスを調査したりできます。

制限事項

  • フローログを初めて使用するには、次の操作が必要です:

    • フローログページで、[今すぐ有効化] をクリックします。パブリックプレビュー中にフローログインスタンスを作成した場合でも、これらのインスタンスを表示および管理するには、[今すぐ有効化] をクリックする必要があります。

    • フローログページで、権限の付与 をクリックし、次に 権限付与 をクリックします。この操作により、AliyunVPCLogArchiveRole という名前の RAM ロールと AliyunVPCLogArchiveRolePolicy という名前の RAM ポリシーが自動的に作成されます。VPC は、デフォルトでこのロールとポリシーを使用して SLS にアクセスし、フローログを書き込みます。

    • Simple Log Service 製品ページ で Simple Log Service を有効化します。

  • フローログを有効にした後、新しい ENI の最初のトラフィックキャプチャが遅れることがあり、通常は 10 分未満です。

  • フローログはマルチキャストトラフィックをキャプチャしません。

  • サブスクリプションフィールドをカスタマイズする場合、少なくとも 1 つのフィールドをサブスクライブする必要があります。ログを NIS Traffic Analyzer にも配信する場合、サブスクリプションは NIS の最小必須フィールドセットの検証ルールを満たす必要があります。

フローログの管理

コンソール

フローログの作成

VPC コンソールの フローログページに移動し、フローログの作成 をクリックします。フローログの作成 パネルで、次のパラメーターを設定します:

  1. 収集の設定:

    1. リージョン:ターゲットリソースのリージョンを選択します。

    2. リソースタイプ と リソースインスタンス:収集の粒度を選択します。VPC、VSwitch、または ネットワークインターフェイス を選択できます。VPC または vSwitch を選択した場合、システムは選択したリソース内のすべての ENI のトラフィックを監視します。

    3. トラフィックタイプ:セキュリティグループやネットワーク ACL ルールなどのアクセス制御によって許可または拒否されたトラフィックをキャプチャするかどうかを選択します。

    4. IP Version:IPv4 トラフィックのみをキャプチャするには IPv4 を選択し、IPv4 と IPv6 の両方のトラフィックをキャプチャするには デュアルスタック を選択します。次のリージョンが IPv6 をサポートしています:中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (フフホト)、中国 (深セン)、シンガポール、米国 (シリコンバレー)、および 米国 (バージニア)。

    5. サンプリング間隔 (分):トラフィック情報を集約するためのキャプチャウィンドウの期間を指定します。間隔は 1、5、または 10 分に設定できます。間隔が短いほど、フローログがより頻繁に生成され、よりタイムリーなデータが提供されるため、問題の検出と特定が迅速になります。間隔が長いほど、データのタイムリーさは低下しますが、ログエントリの数が減り、コストを節約できます。

      たとえば、持続的接続を維持する TCP セッションの場合、1 分のウィンドウでは 1 時間あたり 60 のログエントリが生成されますが、10 分のウィンドウでは 6 つのログエントリしか生成されません。

      VPC 内の複数のフローログインスタンスが同じ ENI からトラフィックを収集する場合、システムはすべてのインスタンスの中で最も短いサンプリング間隔を実際のキャプチャ期間として使用します。
    6. サンプリングパス:コストを削減するために、特定のキャプチャシナリオを選択できます。特定のシナリオを選択するには、まずデフォルトの すべて オプションの選択を解除します。

      次のネットワークコンポーネントを通過するトラフィックをキャプチャできます:IPv4 ゲートウェイ、NAT ゲートウェイ、VPN ゲートウェイ、Transit Router (TR)、ゲートウェイエンドポイント、仮想ボーダールーター (VBR)、Express Connect Router (ECR)、Gateway Load Balancer (GWLB) エンドポイント、およびインターネットへのトラフィック。

  2. 分析と送信の設定:ログを Log Service (SLS) と NIS Traffic Analyzer に配信できます。フローログを作成するときにのみ、ログを Log Service に配信できます。この機能を無効にすると、再度有効にすることはできません。

    • SLS に送信:

      • プロジェクトと Logstore の選択:最初のフローログを作成するときは、Create プロジェクト と Create ログストア をクリックしてデータを分離することを推奨します。集中分析のために複数のフローログを統合するには、同じ Logstore を選択します。

      • FlowLog レポート分析機能の有効化:このオプションを選択することを推奨します。この機能は、フローログを含む Logstore のインデックスとダッシュボードを自動的に作成し、ログに対する SQL クエリと視覚的分析を実行できるようにします。この機能を有効にすると、Log Service (SLS) の使用に対して料金が発生します。

    • NIS トラフィック分析:NIS アナライザーの選択 をクリックしてトラフィック分析を実行します。選択リストが空の場合は、まず NIS アナライザーの作成 を行う必要があります。作成または選択した NIS Traffic Analyzer の トラフィック分析のサンプリング間隔は、フローログのサンプリング間隔よりも大きくする必要があります。ことを確認してください。

      VPC フローログと NIS Traffic Analyzer の統合をサポートするリージョン。

  3. フローログを作成すると、システムは自動的にトラフィックのキャプチャを開始します。その後、フローログを分析できます。

フローログの開始または停止

VPC コンソールの フローログページで、対象のフローログを見つけ、操作 列の 有効化 または 無効化 をクリックします。

フローログを停止すると、フローログの生成に対する課金は発生しなくなります。ただし、SLS は既存のフローログのストレージに対して引き続き課金します。

フローログの削除

VPC コンソールの フローログページで、対象のフローログを見つけ、操作 列の 削除 をクリックします。

フローログを削除すると、フローログの生成に対する課金は発生しなくなります。ただし、SLS は課金を継続します。すべての課金を停止するには、Log Service コンソールに移動し、Logstore を管理します。

API

フローログを作成する前に、フローログ機能を有効にし、SLS でプロジェクトと Logstore を作成していることを確認してください:

これらの前提条件を満たした後、次の操作を実行できます:

  • CreateFlowLog を呼び出してフローログを作成し、オプションで CreateIndex を呼び出してインデックスを作成します。

  • ModifyFlowLogAttribute を呼び出してフローログの属性を変更します。フローログ名、説明、集計間隔、カスタムサブスクリプションを変更できます。

  • DeactiveFlowLog を呼び出してフローログを停止します。

  • ActiveFlowLog を呼び出してフローログを開始します。

  • DeleteFlowLog を呼び出してフローログを削除します。

Terraform

リソース:alicloud_log_project、alicloud_log_store、alicloud_vpc_flow_log
# フローログを作成するリージョンを指定します。
provider "alicloud" {
  region = "cn-hangzhou"
}

# プロジェクトの説明と Logstore およびフローログの名前を指定します。
variable "name" {
  default = "vpc-flowlog-example"
}

# プロジェクト名に使用するランダムな文字列を生成します。
resource "random_uuid" "example" {
}

# Log Service プロジェクトを作成します。
resource "alicloud_log_project" "example" {
  project_name = substr("tf-example-${replace(random_uuid.example.result, "-", "")}", 0, 16)
  description  = var.name
}

# Log Service Logstore を作成します。
resource "alicloud_log_store" "example" {
  project_name          = alicloud_log_project.example.project_name
  logstore_name         = var.name
  shard_count           = 3
  auto_split            = true
  max_split_shard_count = 60
  append_meta           = true
}

# VPC フローログを作成します。
resource "alicloud_vpc_flow_log" "example" {
  flow_log_name        = var.name
  log_store_name       = alicloud_log_store.example.logstore_name
  description          = var.name
  traffic_path         = ["all"] # すべてのシナリオからトラフィックをキャプチャします。
  project_name         = alicloud_log_project.example.project_name
  resource_type        = "VPC" # リソースタイプ。
  resource_id          = "vpc-bp1ekmgzch0bo3hxXXXXXX" # VPC ID。
  aggregation_interval = "1" # 集計間隔 (分)。
  traffic_type         = "All" # 許可および拒否されたすべてのトラフィックをキャプチャします。
}

フローログの分析

フローログを分析することで、ネットワークパフォーマンスの監視、ネットワーク問題のトラブルシューティング、トラフィックコストの最適化、ネットワークセキュリティの分析に役立ちます。

コンソール

Logstore でのカスタム分析

VPC コンソールの フローログページに移動します。対象のフローログの ログストア 列で、Logstore 名をクリックして Logstore の詳細ページを開きます。このページでは、次のことができます:

Logstore のクエリインターフェイスには、[生ログ]、[グラフ]、[ログクラスタリング] の 3 つのタブがあります。クエリの時間範囲を設定できます。上部エリアにはログ量の分布を示すタイムライングラフが表示され、下部エリアには srcaddr、dstaddr、protocol などのフィールドを含むクエリ結果のテーブルが表示されます。

プリセットテンプレートによる分析

フローログセンターは、VPC フローログを迅速に分析するための可視化テンプレートを提供します。テンプレートは、VPC ポリシー統計、ENI トラフィック統計、および CIDR ブロック間のトラフィック統計をサポートします。

  1. フローログセンターページに移動し、右上隅の 追加 をクリックします。

  2. インスタンスの作成 パネルで、インスタンス名 を入力し、既存のフローログが含まれる [プロジェクト] と [Logstore] を選択し、OK をクリックします。

  3. インスタンスが作成されたら、Flow Log Center でそのインスタンス ID をクリックします。フローログの詳細 ページで、フローログを表示および分析できます。

    モニタリングセンターは、以下のダッシュボードおよびカスタムクエリ機能を提供します。

    • 概要:フローログの許可および拒否の傾向、インバウンドおよびアウトバウンドトラフィックの傾向、各 VPC および ENI のパケットとバイトの総数、送信元および宛先 IP アドレスの地理的分布を表示します。

    • ポリシー統計:許可および拒否の傾向、および 5 タプルに基づく許可および拒否イベント数の統計を表示します。5 タプルは、送信元 IP アドレス、送信元ポート、プロトコルタイプ、宛先 IP アドレス、および宛先ポートで構成されます。

      • 許可:セキュリティグループおよびネットワーク ACL によって許可されたトラフィック。

      • 拒否:セキュリティグループおよびネットワーク ACL によって拒否されたトラフィック。

    • ENI トラフィック:ENI のインバウンドおよびアウトバウンドトラフィック情報を表示します。

    • ECS 間トラフィック:ECS インスタンス間のトラフィックを表示します。

    • カスタムクエリ:独自のクエリを作成できます。手順については、「クエリと分析のクイックガイド」をご参照ください。

  4. ドメイン間分析を有効にする (オプション):フローログの詳細 ページで、CIDR ブロック設定 をクリックします。CIDR ブロック設定 タブで、ドメイン間分析 スイッチをオンにします。

    ドメイン間分析機能を有効にすると、システムは自動的にデータ変換タスクを作成します。このタスクは、異なる CIDR ブロック間のトラフィックを分析するための CIDR ブロック情報を含む VPC フローログを生成します。データ変換機能は料金が発生します。

    SLS は、複数の事前定義された CIDR ブロックを提供します。異なる CIDR ブロック間のトラフィックを分析するには、ワンクリックでドメイン間分析機能を有効にできます。必要に応じてカスタム CIDR ブロックを追加することもできます。

    デフォルトで 3 種類の CIDR ブロックが事前定義されています:プライベートネットワーク (10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 - 実際の設定に基づいて調整可能)、Alibaba Cloud サービス (一部) (100:64.0.0/10)、およびインターネット (上記以外のすべての CIDR ブロック)。各 CIDR ブロックタイプは、編集および削除操作をサポートします。

    ドメイン間分析 機能は、次のダッシュボードとカスタムクエリ機能を提供します:

    • ドメイン間トラフィック:異なる CIDR ブロック間のトラフィックを表示します。

    • ECS からドメインへのトラフィック: ECS インスタンスから宛先 CIDR ブロックへのトラフィックを表示します。

    • 脅威インテリジェンス:送信元および宛先 IP アドレスの脅威インテリジェンスを表示します。

    • カスタムクエリ:クエリを記述して、CIDR ブロック情報を含む VPC フローログのクエリと分析を行うことができます。

API

GetLogsV2 を呼び出して、フローログのクエリと分析を行います。

例

このトピックでは、一般的なユースケースの 4 つの例を示します。

パブリックアクセス元の IP

このシナリオでは、インターネットからアクセス可能でポート 80 でリッスンする Web サーバーがあります。また、特定の送信元 IP からのアクセスを制御するためにセキュリティグループルールを設定しています。

フローログを作成することで、ポート 80 にアクセスする送信元 IP を特定し、セキュリティグループルールがそれらのリクエストをいくつ許可または拒否したかを判断できます。

  1. フローログの作成

    • リソースインスタンス には、Web サーバーの ネットワークインターフェイス を選択します。

    • トラフィックタイプ には、すべてのトラフィック を選択します。

    • 配信設定では、SLS に送信 を選択し、FlowLog レポート分析機能の有効化 を有効にします。

    • 他の設定はデフォルト値のままにします。

  2. フローログの分析

    1. クエリと分析のステートメント

      サーバー 10.0.0.1 のポート 80 へのトラフィックをフィルタリングし、各送信元 IP がセキュリティグループによって許可または拒否された回数を表示します:

      dstaddr:10.0.0.1 AND dstport:80 | SELECT -- 宛先 IP が 10.0.0.1 で宛先ポートが 80 のログをフィルタリング
      srcaddr,
      SUM(CASE WHEN action = 'ACCEPT' THEN 1 ELSE 0 END) AS accept_count, -- 各 'ACCEPT' (許可) アクションに対して 1 をカウント
      SUM(CASE WHEN action = 'REJECT' THEN 1 ELSE 0 END) AS reject_count -- 各 'REJECT' (拒否) アクションに対して 1 をカウント
      FROM log
      GROUP BY srcaddr -- 結果を送信元 IP アドレスでグループ化
      ORDER BY accept_count + reject_count DESC -- 許可および拒否された接続の合計数で結果を降順にソート
    2. 結果のプレビュー

      srcaddr 列には、ポート 80 にアクセスした送信元 IP がリストされます。accept_count と reject_count 列には、指定された時間範囲内でセキュリティグループが各送信元 IP からの接続を許可または拒否した回数が表示されます:

      • 5 つの送信元 IP がポート 80 にアクセスしました:120.26.XX.XX、121.43.XX.XX、154.212.XX.XX、176.65.XX.XX、および 198.235.XX.XX。

      • 120.26.XX.XX からのすべてのリクエストは許可されましたが、他のパブリック IP アドレスからのすべてのリクエストは拒否されました。

ECS インスタンス間のトラフィック

パラメーター

VPC 内トラフィック

VPC 間トラフィック

図

説明

1 つの VPC に 3 つの ECS インスタンスをデプロイし、インスタンス同士が通信していると仮定します。

この場合、フローログを使用して ECS インスタンス間のトラフィックレートと傾向を分析できます。

ピアリング接続は、異なるリージョンにある 2 つの VPC をリンクします。クロスリージョントラフィックは、従量課金の Cloud Data Transfer (CDT) モデルで課金されます。

最近、クロスリージョンのデータ転送費用が予期せず増加したことに気づきました。この場合、フローログを使用して、どの ECS インスタンスが最も多くのトラフィックを生成しているかを特定し、コストの最適化に役立てます。

フローログの設定

  • リソースインスタンス には、ECS1 の ネットワークインターフェイス を選択します。

  • 分析と送信の設定 では、SLS に送信 を選択し、FlowLog レポート分析機能の有効化 を有効にします。

  • 他の設定はデフォルト値のままにします。

  • リソースインスタンス には、VPC VPC1 を選択します。

  • 分析と送信の設定 では、SLS に送信 を選択し、FlowLog レポート分析機能の有効化 を有効にします。

  • 他の設定はデフォルト値のままにします。

クエリと分析のステートメント

ECS1 と他の ECS インスタンス間のトラフィックレートの傾向をクエリします:

(srcaddr:10.0.0.1 AND dstaddr:10.0.0.*) OR (srcaddr:10.0.0.* AND dstaddr:10.0.0.1 )  | select -- ECS1 と他の ECS インスタンス間のトラフィック傾向をフィルタリング
date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, -- UNIX タイムスタンプを読み取り可能な時間形式に変換
concat(srcaddr,'->', dstaddr) as src_to_dst, -- 'source_ip->destination_ip' 形式のセッションペアを作成
sum(bytes*8/60) as bandwidth -- バイトをビットに変換し、60 秒のキャプチャウィンドウで割って帯域幅を bit/s で計算
group by time,srcaddr,dstaddr -- 結果を時間、送信元 IP、宛先 IP でグループ化
order by time asc  -- 時間で昇順にソート
limit 100 -- 最初の 100 件の結果を返す

2 つの VPC 間のセッショントラフィックレートの傾向をクエリします:

(srcaddr:10.0.* AND dstaddr:172.16.*) OR (srcaddr:172.16.* AND dstaddr:10.0.*)  | select -- 2 つの VPC 間のセッションをフィルタリング
date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, -- UNIX タイムスタンプを読み取り可能な時間形式に変換
concat(srcaddr,'->', dstaddr) as src_to_dst, -- 'source_ip->destination_ip' 形式のセッションペアを作成
sum(bytes*8/60) as bandwidth -- バイトをビットに変換し、60 秒のキャプチャウィンドウで割って帯域幅を bit/s で計算
group by time,srcaddr,dstaddr -- 結果を時間、送信元 IP、宛先 IP でグループ化
order by time asc  -- 時間で昇順にソート
limit 100 -- 最初の 100 件の結果を返す

結果のプレビュー

クエリと分析の結果ページで、[グラフ] タブを選択し、グラフタイプを [エリアチャート] に設定します。X 軸フィールドを [time]、Y 軸フィールドを [bandwidth]、集計列を [src_to_dst] に設定します。フォーマット単位を [bps,Kbps,Mbps(bit)] に設定します。

10.0.0.1 から 10.0.0.2 へのトラフィックレートが最も高く、約 1.4 Mbps です。10.0.0.1 から 10.0.0.3 へのレートは 2 番目に高く、約 700 Kbps です。残りのトラフィックはごくわずかです。

可視化の設定は VPC 内シナリオと同じです。[エリアチャート] タイプを選択し、集計列を [src_to_dst] に設定します。

10.0.0.1 から 172.16.0.1 へのトラフィックは約 6 Mbps に急増します。

インターネット NAT ゲートウェイのトラフィック

このシナリオでは、同じリージョンと vSwitch に複数の ECS インスタンスをデプロイしています。これらのインスタンスは、インターネット NAT ゲートウェイの SNAT 機能を使用してインターネットにアクセスします。

最近、インターネット NAT ゲートウェイからインターネットへのトラフィックが急増し、サーバーの応答が遅くなっていることに気づきました。フローログを使用して、このトラフィックの大部分を占める ECS インスタンスを特定できます。

  1. フローログの作成

    • リソースインスタンス には、インターネット NAT ゲートウェイが配置されている vSwitch である vSwitch 2 を選択します。

    • 配信設定では、SLS に送信 を選択し、FlowLog レポート分析機能の有効化 を有効にします。

    • 他の設定はデフォルト値のままにします。

  2. 特定のトラフィックパスのフィルタリング

    このシナリオで特定のパスのトラフィックをフィルタリングするには、クエリ文で異なる条件を指定する必要があります:

    図

    番号

    フィルタリング方法

    ①

    ECS インスタンスから NAT ゲートウェイへのトラフィックをフィルタリング:direction は in で、srcaddr は ECS インスタンスのプライベート IP アドレスです。

    ②

    NAT ゲートウェイからインターネットへのトラフィックをフィルタリング:direction は out で、srcaddr は NAT ゲートウェイのプライベート IP アドレスです。

    ③

    インターネットから NAT ゲートウェイへのトラフィックをフィルタリング:direction は in で、dstaddr は NAT ゲートウェイのプライベート IP アドレスです。

    ④

    NAT ゲートウェイから ECS インスタンスへのトラフィックをフィルタリング:direction は out で、dstaddr は ECS インスタンスのプライベート IP アドレスです。

  3. フローログの分析

    1. クエリと分析のステートメント

      ECS インスタンスから NAT ゲートウェイへのパスで、特定のパブリック IP アドレスへのトラフィックを分析します:

      direction: 'in' and srcaddr: 10.0.0.* and dstaddr: 120.26.XX.XX | select -- 特定のパブリック IP アドレスにアクセスする ECS インスタンスのログをフィルタリング
      date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time, srcaddr,  -- UNIX タイムスタンプを読み取り可能な時間形式に変換
      sum(bytes*8/60) as bandwidth  -- バイトをビットに変換し、60 秒のキャプチャウィンドウで割って帯域幅を bit/s で計算
      group by time,srcaddr -- 結果を時間と送信元 IP でグループ化
      order by time asc  -- 時間で昇順にソート
      limit 100 -- 最初の 100 件の結果を返す

      その他の一般的なクエリ

      • NAT ゲートウェイから ECS インスタンスへのパスで、特定のパブリック IP アドレスからすべての ECS インスタンスへのインバウンドトラフィックをフィルタリングします:

        direction: 'out' and dstaddr: 10.0.0.* and srcaddr: 120.26.XX.XX | select -- 特定のパブリック IP アドレスにアクセスする ECS インスタンスのログをフィルタリング
        date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time,   -- UNIX タイムスタンプを読み取り可能な時間形式に変換
        dstaddr,
        sum(bytes*8/60) as bandwidth  -- バイトをビットに変換し、60 秒のキャプチャウィンドウで割って帯域幅を bit/s で計算
        group by time,dstaddr -- 結果を時間と宛先 IP でグループ化
        order by time asc  -- 時間で昇順にソート
        limit 100 -- 最初の 100 件の結果を返す
      • ECS インスタンスから NAT ゲートウェイへのパスで、ECS インスタンスからすべてのパブリック IP アドレスへのアウトバウンドトラフィックをフィルタリングします:

        direction: 'in' and srcaddr: 10.0.0.*  | select -- すべてのパブリック IP アドレスにアクセスする ECS インスタンスのログをフィルタリング
        date_format(from_unixtime(__time__ - __time__% 60), '%H:%i:%S') as time,  -- UNIX タイムスタンプを読み取り可能な時間形式に変換
        concat(srcaddr,'->', dstaddr), -- 'source_ip->destination_ip' 形式のセッションペアを作成
        sum(bytes*8/60) as bandwidth  -- バイトをビットに変換し、60 秒のキャプチャウィンドウで割って帯域幅を bit/s で計算
        group by time,srcaddr,dstaddr -- 結果を時間、送信元 IP、宛先 IP でグループ化
        order by time asc  -- 時間で昇順にソート
        limit 100 -- 最初の 100 件の結果を返す
    2. 結果のプレビュー

      可視化の設定は ECS トラフィックシナリオと同様です。[エリアチャート] タイプを選択し、集計列を [srcaddr] に設定します。

      ECS インスタンスから NAT ゲートウェイへのパスで、10.0.0.1 (ECS1) からパブリック IP アドレス 120.26.XX.XX へのトラフィックレートが最も高く、約 12 Kbps です。

Express Connect のトラフィック分散

このシナリオでは、ある企業が Alibaba Cloud リージョン内の 2 つの VPC を使用して異なるサービスをデプロイしています。同社は、Express Connect 回線と Cloud Enterprise Network (CEN) を使用して、オンプレミスデータセンターを Alibaba Cloud に接続しています。

IT 部門は、フローログを使用して、VPC 内の異なるサービスからのトラフィックが Express Connect 回線のリソースをどのように使用しているかを監視および分析したいと考えています。この分析は、ネットワークリソースの計画とパフォーマンスの向上に役立ちます。

  1. フローログの作成

    同じ Logstore にデータを配信する 2 つのフローログを作成します。各フローログの主要なパラメーターを次のように設定します:

    • リソースインスタンス で VPC を選択し、次に VPC1 と VPC2 をそれぞれ選択します。

    • サンプリングパス には、Transit Router を選択します。

    • 配信設定では、SLS に送信 を選択し、両方のフローログに同じ Logstore を選択して、FlowLog レポート分析機能の有効化 を有効にします。

    • 他の設定はデフォルト値のままにします。

  2. フローログの分析

    1. クエリと分析のステートメント

      各 VPC からオンプレミスデータセンターへのトラフィックの割合を分析します:

      action: ACCEPT and srcaddr: 192.168.* and dstaddr:10.1.* | 
      WITH 
          vpc1_traffic AS (
              SELECT 
                  date_trunc('minute',__time__) AS minute,
                  SUM(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) AS total_vpc1_traffic
              FROM 
                  log
              WHERE 
                  srcaddr LIKE '192.168.20.%'
              GROUP BY 
                  date_trunc('minute',__time__)
          ),
          vpc2_traffic AS (
              SELECT 
                  date_trunc('minute',__time__) AS minute,
                  SUM(bytes*8/(case WHEN "end"-start=0 THEN 1 else "end"-start end)) AS total_vpc2_traffic
              FROM 
                  log
              WHERE 
                  srcaddr LIKE '192.168.10.%'
              GROUP BY 
                  date_trunc('minute',__time__)
          )
      SELECT 
          COALESCE(vpc1_traffic.minute, vpc2_traffic.minute) AS minute,
          (COALESCE(vpc1_traffic.total_vpc1_traffic, 0) * 100/ NULLIF((COALESCE(vpc1_traffic.total_vpc1_traffic, 0) + COALESCE(vpc2_traffic.total_vpc2_traffic, 0)), 0)) AS vpc1_percentage, 
          (COALESCE(vpc2_traffic.total_vpc2_traffic, 0) * 100/ NULLIF((COALESCE(vpc1_traffic.total_vpc1_traffic, 0) + COALESCE(vpc2_traffic.total_vpc2_traffic, 0)), 0)) AS vpc2_percentage
      FROM vpc1_traffic FULL OUTER JOIN vpc2_traffic ON vpc1_traffic.minute = vpc2_traffic.minute 
      ORDER BY minute

      以下に SQL ステートメントの詳細な説明を示します。

      • フィルタ条件:

        • srcaddr: 192.168.* は、送信元アドレスが 192.168. で始まるログをフィルタリングします。

        • dstaddr: 10.1.* は、宛先アドレスが 10.1. で始まるログをフィルタリングします。

        • action: ACCEPT。action フィールドが ACCEPT のログをフィルタリングします。

      • メインクエリ

        • FULL OUTER JOIN を使用して、vpc1_traffic と vpc2_traffic の結果を minute フィールドに基づいて結合します。

        • 各 VPC からのトラフィックの割合を毎分計算します:

          • vpc1_percentage は、VPC1 から発信される総トラフィックの割合を表します。

          • vpc2_percentage は、VPC2 から発信される総トラフィックの割合を表します。

        • クエリ結果は minute で昇順にソートされます。

      • WITH サブクエリ:

        SQL ステートメントには、vpc1_traffic と vpc2_traffic の 2 つのサブクエリが含まれています。以下は vpc1_traffic サブクエリの説明です:

        • date_trunc 関数は、UNIX タイムスタンプ (__time__ フィールド) を最も近い分に切り捨て、minute としてエイリアスを付けます。

        • SUM 関数は、毎分の総トラフィックレートを bit/s で計算し、total_vpc1_traffic としてエイリアスを付けます。

        • 送信元アドレスが 192.168.20.* CIDR ブロック (VPC1) にあるトラフィックレコードをフィルタリングします。

        • 結果を分単位でグループ化します。

    2. 結果のプレビュー

      可視化の設定は ECS トラフィックシナリオと同様です。[エリアチャート] タイプを選択して、時間の経過に伴う異なる VPC からのトラフィック割合の傾向を表示します。

      14:50 から 15:50 の期間中、VPC1 はオンプレミスデータセンターへのトラフィックのより高い割合を生成しました。

詳細情報

フローログのフィールド

次の表は、フローログレコードのフィールドについて説明しています。

フィールドが該当しない場合、フィールド値は - として表示されます。

パラメーター

説明

version

フローログのバージョン。現在のバージョンは 1 です。

account-id

Alibaba Cloud アカウント ID。

eni-id

ENI の ID。

vm-id

ENI がアタッチされている ECS インスタンスの ID。

vswitch-id

ENI が属する vSwitch の ID。

vpc-id

ENI が属する VPC の ID。

type

トラフィックの IP バージョン。有効な値は IPv4 と IPv6 です。

次のリージョンは デュアルスタック トラフィックキャプチャをサポートしています:中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (フフホト)、中国 (深セン)、シンガポール、米国 (シリコンバレー)、および 米国 (バージニア)。

protocol

トラフィックの IANA プロトコル番号。たとえば、ICMP は 1、TCP は 6、UDP は 17 です。

srcaddr

送信元 IP アドレス。

srcport

送信元ポート。

dstaddr

宛先 IP アドレス。

dstport

宛先ポート。

direction

トラフィックの方向:

  • in:ENI へのインバウンドトラフィック。

  • out:ENI からのアウトバウンドトラフィック。

action

セキュリティグループまたはネットワーク ACL によって決定されたトラフィックに対するアクション:

  • ACCEPT:トラフィックは許可されました。

  • REJECT:トラフィックは拒否されました。

packets

パケット数。

bytes

バイト数。

start

キャプチャウィンドウ中に最初のパケットが受信された時刻 (UNIX タイムスタンプ形式)。

end

長時間接続の場合、これはキャプチャウィンドウの終了時刻です。短時間接続の場合、これは接続が閉じられた時刻です。値は UNIX タイムスタンプ形式です。

tcp-flags

10 進数で表される TCP フラグは、フローログでサポートされている TCP フラグの組み合わせを反映しています。

キャプチャウィンドウ内の単一のフローログエントリは、複数の TCP パケットに対応する場合があります。この値は、関連するすべてのパケットのフラグフィールドに対する ビット単位の OR 演算の結果です。

たとえば、TCP セッションにキャプチャウィンドウ内に 2 つのパケットがあり、それぞれ SYN (2) と SYN-ACK (18) フラグを運ぶ場合、ログに記録される TCP フラグフィールドは 18 (2 | 18 = 18) です。

サポートされている TCP フラグの 10 進数値:

  • FIN: 1

  • SYN: 2

  • RST: 4

  • SYN-ACK: 18

サポートされていないフラグは次のように処理されます:

  • パケットにサポートされていないフラグのみが含まれている場合、tcp-flags は 0 を返します。たとえば、ACK フラグのみを運ぶパケットの tcp-flags 値は 0 です。

  • パケットにサポートされているフラグとサポートされていないフラグの両方が含まれている場合、サポートされているフラグの値のみが記録され、サポートされていないフラグは結果に影響しません。たとえば、パケットに SYN と ECE の両方のフラグが含まれている場合、ECE はサポートされていないため、tcp-flags 値は SYN に対応する 2 になります。

SYN、FIN、ACK、RST などの TCP フラグの詳細については、「RFC 793」をご参照ください。

log-status

フローログレコードのロギングステータス:

  • OK:データは正常に記録されました。

  • NODATA:キャプチャウィンドウ中に ENI との間でトラフィックが送受信されませんでした。これは、スタンバイシステム、非ピーク時間、またはトラフィック不足を引き起こす設定の問題で発生する可能性があります。

  • SKIPDATA:キャプチャウィンドウ中に一部のレコードがスキップされました。これは通常、高トラフィック環境や、内部キャプチャシステムを過負荷にするトラフィックスパイク中に発生します。

traffic_path

トラフィックがキャプチャされたシナリオ:

  • 0 - 以下にリストされている以外のシナリオでキャプチャされたトラフィック。

  • 1 - 同じ VPC 内の他のリソースを通過するトラフィック。

  • 2 - 同じ VPC 内の ECS インスタンスへのプライベートトラフィック。

  • 3 - ENI を通過するトラフィック。

  • 4 - 高可用性仮想 IP アドレス (HaVip) を通過するトラフィック。

  • 5 - 同じリージョン内の Alibaba Cloud サービスへのトラフィック。

  • 6 - ゲートウェイエンドポイントを介したクラウドサービスへのトラフィック。

  • 7 - NAT ゲートウェイを通過するトラフィック。

  • 8 - TR を通過するトラフィック。

  • 9 - VPN ゲートウェイを通過するトラフィック。

  • 10 - VBR を介した Express Connect 回線へのトラフィック。

  • 11 - CEN Basic Edition を介した同じリージョン内の VPC へのトラフィック。

  • 12 - コード 11、18、19、20 で指定された以外のシナリオで CEN Basic Edition を通過するトラフィック。例として、CEN Basic Edition を介したクロスリージョンクラウドサービスへのトラフィックがあります。

  • 13 - IPv4 ゲートウェイを介したインターネットへのトラフィック。

  • 14 - IPv6 ゲートウェイを介したインターネットへのトラフィック。

  • 15 - パブリック IP アドレスからのインターネットへのトラフィック。

  • 17 - VPC ピアリング接続を介したトラフィック。

  • 18 - CEN Basic Edition を介したクロスリージョン VPC へのトラフィック。

  • 19 - CEN Basic Edition を介した同じリージョン内の VBR へのトラフィック。

  • 20 - CEN Basic Edition を介したクロスリージョン VBR へのトラフィック。

  • 21 - ECR を通過するトラフィック。

  • 22 - Gateway Load Balancer エンドポイントを通過するトラフィック。

以下にフローログレコードの例を示します:

許可されたトラフィックレコード

この例では、Alibaba Cloud アカウント ID は 1210123456****** で、フローログのバージョンは 1 です。2024 年 7 月 12 日の 17:10:20 から 17:11:20 までの 1 分間のキャプチャウィンドウ中に、ENI eni-bp166tg9uk1ryf****** は次のアウトバウンドトラフィックを許可しました:

ポート 1332 の送信元 172.31.16.139 は、TCP (プロトコル番号 6) を介してポート 80 の宛先 172.31.16.21 に 10 パケットを送信しました。パケットの合計サイズは 2,048 バイトでした。ログステータスは OK です。

{
  "account-id": "1210123456******",
  "action": "ACCEPT",
  "bytes": "2048",
  "direction": "out",
  "dstaddr": "172.31.16.21",
  "dstport": "80",
  "end": "1720775480",
  "eni-id": "eni-bp166tg9uk1ryf******",
  "log-status": "OK",
  "packets": "10",
  "protocol": "6",
  "srcaddr": "172.31.16.139",
  "srcport": "1332",
  "start": "1720775420",
  "tcp-flags": "22",
  "traffic_path": "-",
  "version": "-",
  "vm-id": "1",
  "vpc-id": "-",
  "vswitch-id": "vpc-bp1qf0c43jb3maz******"
}

拒否されたトラフィックレコード

この例では、Alibaba Cloud アカウント ID は 1210123456****** で、フローログのバージョンは 1 です。2024 年 7 月 15 日の 10:20:00 から 10:30:00 までの 10 分間のキャプチャウィンドウ中に、ENI eni-bp1ftp5sm9oszt****** は次のインバウンドトラフィックを拒否しました:

ポート 1332 の送信元 172.31.16.139 は、TCP (プロトコル番号 6) を介してポート 80 の宛先 172.31.16.21 に 20 パケットを送信しようとしました。パケットの合計サイズは 4,208 バイトでした。ログステータスは OK です。

{
  "account-id": "1210123456******",
  "action": "REJECT",
  "bytes": "4208",
  "direction": "in",
  "dstaddr": "172.31.16.21",
  "dstport": "80",
  "end": "1721010600",
  "eni-id": "eni-bp1ftp5sm9oszt******",
  "log-status": "OK",
  "packets": "20",
  "protocol": "6",
  "srcaddr": "172.31.16.139",
  "srcport": "1332",
  "start": "1721010000",
  "tcp-flags": "22",
  "traffic_path": "-",
  "version": "-",
  "vm-id": "1",
  "vpc-id": "-",
  "vswitch-id": "vpc-bp1qf0c43jb3maz******"
}

データなしレコード

この例では、Alibaba Cloud アカウント ID は 1210123456****** で、フローログのバージョンは 1 です。2024 年 7 月 15 日の 10:52:20 から 10:55:20 までの 3 分間のキャプチャウィンドウ中に、ENI eni-bp1j7mmp34jlve****** のトラフィックデータは記録されませんでした (NODATA)。

{
  "account-id": "1210123456******",
  "action": "-",
  "bytes": "-",
  "direction": "-",
  "dstaddr": "-",
  "dstport": "-",
  "end": "1721012120",
  "eni-id": "eni-bp1j7mmp34jlve******",
  "log-status": "NODATA",
  "packets": "-",
  "protocol": "-",
  "srcaddr": "-",
  "srcport": "-",
  "start": "1721011940",
  "tcp-flags": "-",
  "traffic_path": "-",
  "version": "-",
  "vm-id": "1",
  "vpc-id": "-",
  "vswitch-id": "vpc-bp1qf0c43jb3maz******"
}

スキップされたデータレコード

この例では、Alibaba Cloud アカウント ID は 1210123456****** で、フローログのバージョンは 1 です。2024 年 7 月 12 日の 16:20:30 から 16:23:30 までの 3 分間のキャプチャウィンドウ中に、ENI eni-bp1dfm4xnlpruv****** のデータレコードはスキップされました (SKIPDATA)。

{
  "account-id": "1210123456******",
  "action": "-",
  "bytes": "-",
  "direction": "-",
  "dstaddr": "-",
  "dstport": "-",
  "end": "1720772610",
  "eni-id": "eni-bp1dfm4xnlpruv******",
  "log-status": "SKIPDATA",
  "packets": "-",
  "protocol": "-",
  "srcaddr": "-",
  "srcport": "-",
  "start": "1720772430",
  "tcp-flags": "-",
  "traffic_path": "-",
  "version": "-",
  "vm-id": "1",
  "vpc-id": "-",
  "vswitch-id": "vpc-bp1qf0c43jb3maz******"
}

課金

課金項目

フローログは、ログ生成料金、SLS 料金、および有効にした場合はトラフィック処理とストレージのための Traffic Analyzer 料金に基づいて課金されます。

  • ログ生成料金:

    • 課金サイクルは 1 時間です。請求書は通常、課金サイクルの終了後 3〜4 時間で生成されますが、実際の時間は異なる場合があります。

    • ログ生成料金は、各リージョンで生成された月間ログ量に対する段階的価格設定モデルに基づいて計算されます。各 Alibaba Cloud アカウントは、各リージョンで月間 5 GB の無料クォータを受け取ります。

    月間ログ量

    価格 (USD/GB)

    0 TB 〜 10 TB (含む)

    0.37

    10 TB 〜 30 TB (含む)

    0.185

    30 TB 〜 50 TB (含む)

    0.074

    50 TB 超

    0.037

  • Simple Log Service (SLS) 料金:フローログが配信された後、SLS によって課金されます。これには、データ書き込みとストレージの料金が含まれます。

    SLS は、データ量別課金と機能別課金の 2 つの課金方法を提供しています。VPC コンソールでフローログを作成し、新しい Logstore を作成することを選択した場合、デフォルトで機能別課金方法が使用されます。
  • Traffic Analyzer 料金:フローログが Traffic Analyzer に配信された後、Network Intelligence Service (NIS) によって課金されます。これには、トラフィック処理とストレージ料金が含まれます。

課金例

  • 例 1

    2022 年 9 月 1 日 00:00:00 にあるリージョンでフローログ機能を有効にしたとします。それから 2022 年 10 月 1 日 00:00:00 までの間に、合計 3 GB のログを SLS に配信します。

    各 Alibaba Cloud アカウントにはログ生成料金に対して月間 5 GB の無料クォータがあるため、その月の合計フローログ料金は SLS 料金のみで構成されます。

  • 例 2

    2022 年 9 月 1 日 00:00:00 に中国 (上海) リージョンでフローログ機能を有効にしたとします。それから 2022 年 10 月 1 日 00:00:00 までの間に、100 GB のログを SLS に配信します。

    その月のログ生成料金は (100 - 5) × 0.37 = 35.15 米ドルです。その月の合計フローログ料金は 35.15 米ドル + SLS 料金です。

  • 例 3

    2022 年 9 月 1 日 00:00:00 に中国 (北京) リージョンでフローログ機能を有効にしたとします。それから 2022 年 10 月 1 日 00:00:00 までの間に、60 TB のログを SLS に配信します。

    ログ生成料金は、段階的価格設定モデルに基づいて計算されます:

    • 0 〜 10 TB (含む):(10 × 1024 - 5) × 0.37 = 3,786.95 米ドル

    • 10 〜 30 TB (含む):20 × 1024 × 0.185 = 3,788.8 米ドル

    • 30 〜 50 TB (含む):20 × 1024 × 0.074 = 1,515.52 米ドル

    • 50 TB 超:10 × 1024 × 0.037 = 378.88 米ドル

    その月の合計ログ生成料金は 3,786.95 + 3,788.8 + 1,515.52 + 378.88 = 9,470.15 米ドルです。その月の合計フローログ料金は 9,470.15 米ドル + SLS 料金です。

料金滞納とチャージ

料金滞納と更新ポリシー

  • 支払いが遅延してから最大 15 日間、インスタンスは中断なく実行され続けます。

  • 支払いが遅延してから 15 日以内に請求書が支払われない場合、サービスは自動的に停止されます。インスタンスが停止されると、それを管理することはできなくなり、課金も停止します。

  • インスタンスが停止されてから 15 日以内にアカウントにチャージして未払い額を支払うと、サービスは自動的に再開されます。

  • インスタンスが停止されてから 15 日以内に未払い額を支払わない場合、VPC フローログインスタンスは自動的にリリースされます。インスタンスがリリースされると、その設定とデータは削除され、回復することはできません。

サポートされているリージョン

エリア

リージョン

アジア太平洋 - 中国

中国 (杭州)、中国 (上海)、中国 (青島)、中国 (北京)、中国 (張家口)、中国 (フフホト)、中国 (ウランチャブ)、中国 (深セン)、中国 (河源)、中国 (広州)、中国 (成都)、中国 (香港)、および 中国 (福州-ローカルリージョン、閉鎖予定)

アジア太平洋 - その他

日本 (東京)、韓国 (ソウル)、シンガポール、マレーシア (クアラルンプール)、インドネシア (ジャカルタ)、フィリピン (マニラ)、および タイ (バンコク)

ヨーロッパ & アメリカ

ドイツ (フランクフルト)、イギリス (ロンドン)、米国 (シリコンバレー)、および 米国 (バージニア)

中東

UAE (ドバイ)、および サウジアラビア (リヤド - パートナー運営)

クォータ

クォータ名

説明

デフォルトの制限

調整可能

vpc_quota_flowlog_inst_nums_per_user

ユーザーが作成できるフローログインスタンスの最大数。

10

はい。クォータの引き上げをリクエストするには、クォータ管理ページまたはクォータセンターに移動してください。

よくある質問

VPC フローログはどのくらいの期間保持されますか?

フローログが生成された後、自動的に SLS に配信され、そのデータ保持ポリシーに従います。

  • フローログを作成する際に FlowLog レポート分析機能の有効化 を選択した場合、Logstore のデフォルトのデータ保持期間は 7 日です。それ以外の場合、デフォルトの保持期間は 300 日です。

  • 必要に応じて、SLS コンソールで既存の Logstore のデータ保持期間を変更できます。