読み込んでいます...
一致する結果は見つかりませんでした。

Google Cloud コンソールでスキルを試す

04

Networking in Google Cloud: Fundamentals - 日本語版

700 以上のラボとコースにアクセス

VPC フローログを使用してネットワーク トラフィックを分析する

ラボ 1時間 20分 universal_currency_alt クレジット: 5 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

概要

このラボでは、VPC フローログによって Apache ウェブサーバーとの間のトラフィックが記録されるようにネットワークを構成します。その後、ログを BigQuery にエクスポートして分析します。

目標

このラボでは、次のタスクの実行方法について学びます。

  • VPC フローログを使用してカスタム ネットワークを構成する。
  • Apache ウェブサーバーを作成する。
  • ネットワーク トラフィックがログに記録されていることを確認する。
  • ネットワーク トラフィックを BigQuery にエクスポートしてログをさらに分析する。
  • VPC フローログの集約を設定する。

設定と要件

各ラボでは、新しい Google Cloud プロジェクトとリソースセットを一定時間無料で利用できます。

  1. [ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。

    • [Google Cloud コンソールを開く] ボタン
    • 残り時間
    • このラボで使用する必要がある一時的な認証情報
    • このラボを行うために必要なその他の情報(ある場合)
  2. [Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウで開く] を選択します)。

    ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。

    ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。

    注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。
  3. 必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。

    {{{user_0.username | "Username"}}}

    [ラボの詳細] パネルでもユーザー名を確認できます。

  4. [次へ] をクリックします。

  5. 以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。

    {{{user_0.password | "Password"}}}

    [ラボの詳細] パネルでもパスワードを確認できます。

  6. [次へ] をクリックします。

    重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。
  7. その後次のように進みます。

    • 利用規約に同意してください。
    • 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
    • 無料トライアルには登録しないでください。

その後、このタブで Google Cloud コンソールが開きます。

注: Google Cloud のプロダクトやサービスのリストを含むメニューを表示するには、左上のナビゲーション メニューをクリックするか、[検索] フィールドにサービス名またはプロダクト名を入力します。

タスク 1. VPC フローログを使用してカスタム ネットワークを構成する

カスタム ネットワークを作成する

デフォルトでは、VPC フローログはネットワークで無効になっています。そのため、カスタムモードのネットワークを新規に作成して VPC フローログを有効にする必要があります。

  1. Google Cloud コンソールのナビゲーション メニュー)で、[VPC ネットワーク] > [VPC ネットワーク] を選択します。

  2. [VPC ネットワークを作成] をクリックします。

  3. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 vpc-net
    説明 必要に応じて説明を入力します(任意)。
  4. [サブネット作成モード] で [カスタム] をクリックします。

  5. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 vpc-subnet
    リージョン
    IP アドレス範囲 10.1.3.0/24
    フローログ オン
注: VPC フローログを有効にしてもパフォーマンスは低下しませんが、システムによっては多数のログが生成されて費用が増える可能性があります。[ログを構成] をクリックすると、集計間隔とサンプルレートを変更できることがわかります。これにより、生成されるデータ量が少ない場合の更新間隔を長くして、ロギングコストを抑えることができます。こちらの詳細については、ログのサンプリングと処理に関するドキュメントを参照してください。
  1. [完了] をクリックします。
  2. [作成] をクリックします。

ネットワークが作成されるまで待ってから次に進みます。

ファイアウォール ルールを作成する

ネットワークで HTTP / SSH トラフィックを提供するには、ファイアウォール ルールを作成する必要があります。

  1. ナビゲーション メニュー () で、[VPC ネットワーク] > [ファイアウォール] を選択します。

  2. [ファイアウォール ルールを作成] をクリックします。

  3. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 allow-http-ssh
    ネットワーク vpc-net
    ターゲット 指定されたターゲットタグ
    ターゲットタグ http-server
    ソースフィルタ IPv4 範囲
    送信元 IPv4 範囲 0.0.0.0/0
    プロトコルとポート [指定したプロトコルとポート] と [tcp] のチェックボックスをオンにして「80, 22」と入力
注: すべてのネットワークを指定するために、[送信元 IPv4 範囲] には /0 を含めます。
  1. [作成] をクリックします。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 VPC フローログを使用してカスタム ネットワークを構成する

タスク 2. Apache ウェブサーバーを作成する

ウェブサーバーを作成する

  1. ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] を選択します。

  2. [インスタンスを作成] をクリックします。

  3. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    名前 web-server
    リージョン
    ゾーン
    シリーズ E2
    マシンタイプ e2-micro
  4. [ネットワーキング] をクリックします。

  5. [ネットワーク タグ] に「http-server」と入力します。

  6. [ネットワーク インターフェース] で [デフォルト] をクリックします。

  7. 次のように指定し、残りの設定はデフォルトのままにします。

    プロパティ 値(値を入力するか、指定されたオプションを選択)
    ネットワーク vpc-net
    サブネットワーク vpc-subnet (10.1.3.0/24)
  8. [完了] をクリックします。

  9. [作成] をクリックします。

Apache をインストールする

Apache ウェブサーバーとして作成した VM インスタンスを構成し、デフォルトのウェブページを上書きします。

  1. web-server の [SSH] をクリックし、ターミナルを起動して接続します。

  2. web-server の SSH ターミナルで、パッケージ インデックスを更新します。

    sudo apt-get update
  3. apache2 パッケージをインストールします。

    sudo apt-get install apache2 -y
  4. 新しいデフォルトのウェブページを作成するために、次のコマンドを実行してデフォルトを上書きします。

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
  5. SSH ターミナルを終了します。

    exit

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 Apache ウェブサーバーを作成する

タスク 3. ネットワーク トラフィックがログに記録されていることを確認する

ネットワーク トラフィックを生成する

  1. Google Cloud コンソールの [VM インスタンス] ページに戻ります。
  2. web-server の [外部 IP] をクリックしてサーバーにアクセスします。
注: 構成した「Hello World!」というスタートページが表示されます。新しいタブを開き、http:// に続けて外部 IP アドレスを入力してもサーバーにアクセスできます。

自分の IP アドレスを調べる

使用しているパソコンの IP アドレスを調べます。このアドレスを表示するウェブサイトに移動すると簡単に確認できます。

  1. ブラウザで新しいタブを開きます。
  2. Google.com に移動し、「what's my IP」を検索します。使用している IP アドレスが表示されるか、IP アドレスがわかるサイトのリストが表示されます。
  3. IP アドレスが IPv4(数字のみ)であり、IPv6(16 進数)でないことを確認します。
  4. IP アドレスをコピーします。ここからはこのアドレスを YOUR_IP_ADDRESS と呼びます

VPC フローログにアクセスする

  1. Google Cloud コンソールのタイトルバーにある検索フィールドに「Logging」と入力して [検索] をクリックし、表示された [Logging] をクリックします。
  2. [ログのフィールド] パネルの [リソースの種類] で [サブネットワーク] をクリックします。サブネットワーク ログのエントリが [クエリ結果] ペインに表示されます。
  3. [ログのフィールド] パネルの [ログ名] で [compute.googleapis.com/vpc_flows] をクリックします。VPC フローログのエントリが [クエリ結果] パネルに表示されます。compute.googleapis.com/vpc_flows が表示されない場合は、このログタイプが表示されるまで数分待ちます。
  4. [クエリを表示] ボタンを有効にします。
  5. [クエリビルダー] ボックスの 2 行目の末尾で、Enter キーを押して新しい行を作成します。
  6. 3 行目に「YOUR_IP_ADDRESS」と入力して [クエリを実行] をクリックします。
注: vpc_flows のフィルタ オプションが表示されない場合、またはログがない場合、数分待ってから更新してください。数分待っても vpc_flows のフィルタ オプションが表示されない場合は、web-server の [外部 IP] を数回クリックしてトラフィックをさらに生成してから vpc_flows のフィルタ オプションを確認してください。
  1. いずれかのログエントリを展開します。
  2. エントリ内で jsonPayloadconnection の順に展開します。

次のタスクに進む前に、ログエントリ内の他のフィールドを確認できます。

タスク 4. ネットワーク トラフィックを BigQuery にエクスポートしてログをさらに分析する

エクスポート シンクを作成する

  1. Google Cloud コンソールのタイトルバーで [検索] フィールドに「ログ エクスプローラ」と入力し、[検索結果] から [ログ エクスプローラ] を選択します。
  2. [リソースの種類] で [サブネットワーク] をクリックします。利用可能なすべてのサブネットワークのエントリが [クエリ結果] ペインに表示されます。
  3. [ログ名] フィルタの下で [compute.googleapis.com/vpc_flows] をクリックします。[クエリ結果] ペインに VPC フローログのエントリのみ表示されます。
  4. [操作] > [シンクを作成] を選択します。
  5. [シンク名] に「bq_vpcflows」と入力して [次へ] をクリックします。
  6. [シンクサービスの選択] プルダウン リストで [BigQuery データセット] を選択します。
  7. [BigQuery データセットを選択] プルダウン リストで [新しい BigQuery データセットを作成する] を選択します。
  8. [データセット ID] に「bq_vpcflows」と入力して、[データセットを作成] をクリックします。
  9. [次へ] を 2 回クリックします。
  10. [シンクを作成] をクリックします。

BigQuery 用のログ トラフィックを生成する

ネットワーク トラフィック ログが BigQuery にエクスポートされたら、web-server に複数回アクセスしてトラフィックをさらに生成する必要があります。Cloud Shell で curl コマンドを実行して、web-server の IP アドレスを複数回調べます。

  1. ナビゲーション メニューで、[Compute Engine] > [VM インスタンス] を選択します。
  2. web-server インスタンスの 外部 IP アドレスをメモします。今後はこれを EXTERNAL_IP と呼びます。
  3. Cloud Shell をアクティブにする」()をクリックします。
  4. プロンプトが表示されたら、[続行] をクリックします。
  5. 環境変数の EXTERNAL_IP を Cloud Shell に保存します。
export MY_SERVER=<ここに EXTERNAL_IP を入力>
  1. Cloud Shell から web-server に 50 回アクセスします。
for ((i=1;i<=50;i++)); do curl $MY_SERVER; done

VPC フローログを BigQuery で可視化する

  1. Google Cloud コンソールのナビゲーション メニューで [BigQuery] をクリックします。
  2. プロンプトが表示されたら、[完了] をクリックします。
  3. 左側のペインで bq_vpcflows データセットを展開してテーブルを表示します。まず [プロジェクト ID] を展開してこのデータセットを表示しなければならない場合もあります。
  4. テーブルの名前をクリックします。compute_googleapis で始まる名前が付いているはずです。
  5. [詳細] タブをクリックします。
  6. [テーブル情報] のテーブル ID の値をコピーします。
注: bq_vpcflows データセットが表示されないか展開されない場合は、しばらく待ってからページを更新してください。
  1. [+] アイコンをクリックして BigQuery エディタの新しいタブを開きます。

  2. 以下を BigQuery エディタに追加し、your_table_id を TABLE_ID に置換します。両側のアクセント記号(`)は消さずに残します。

#standardSQL SELECT jsonPayload.src_vpc.vpc_name, SUM(CAST(jsonPayload.bytes_sent AS INT64)) AS bytes, jsonPayload.src_vpc.subnetwork_name, jsonPayload.connection.src_ip, jsonPayload.connection.src_port, jsonPayload.connection.dest_ip, jsonPayload.connection.dest_port, jsonPayload.connection.protocol FROM `your_table_id` GROUP BY jsonPayload.src_vpc.vpc_name, jsonPayload.src_vpc.subnetwork_name, jsonPayload.connection.src_ip, jsonPayload.connection.src_port, jsonPayload.connection.dest_ip, jsonPayload.connection.dest_port, jsonPayload.connection.protocol ORDER BY bytes DESC LIMIT 15
  1. [実行] をクリックします。
注: エラーが発生する場合は、クエリの #standardSQL の部分が削除されていないことを確認します。それでもうまく行かない場合は、TABLE_ID にプロジェクト ID を入力していないか確認してください。

VPC フローログを BigQuery で分析する

前のクエリでは Google Cloud コンソールに表示された情報と同じ情報が表示されました。次は、web-server とやり取りしたトラフィックが特に多い IP アドレスを識別できるようにクエリを変更してみましょう。

  1. 以下を BigQuery エディタに追加して新しいクエリを作成し、your_table_id を TABLE_ID に置換します。両側のアクセント記号(`)は消さずに残します。
#standardSQL SELECT jsonPayload.connection.src_ip, jsonPayload.connection.dest_ip, SUM(CAST(jsonPayload.bytes_sent AS INT64)) AS bytes, jsonPayload.connection.dest_port, jsonPayload.connection.protocol FROM `your_table_id` WHERE jsonPayload.reporter = 'DEST' GROUP BY jsonPayload.connection.src_ip, jsonPayload.connection.dest_ip, jsonPayload.connection.dest_port, jsonPayload.connection.protocol ORDER BY bytes DESC LIMIT 15
  1. [実行] をクリックします。
注: 結果のテーブルには各ソース IP を示す行が、web-server に送信したバイト数が大きい順に表示されます。最上位の結果は Cloud Shell の IP アドレスであるはずです。 注: エクスポート シンクの作成後に web-server にアクセスした場合を除いて、自分のマシンの IP アドレスはテーブルに含まれません。

複数のソースから web-server へのトラフィックをさらに生成し、テーブルに対してクエリを再度実行することでサーバーに送信されたバイト数を特定できます。

[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。 ネットワーク トラフィックを BigQuery にエクスポートしてログをさらに分析する

タスク 5. VPC フローログの集約を追加する

このタスクでは、新しくリリースされた機能である VPC フローログ ボリューム削減について学びます。すべてのパケットが独自のログレコードに収集されるとは限りません。ただし、サンプリングの場合を含め、収集されるログレコード数はかなり大きくなる可能性があります。

このセクションで説明するログ収集の特定の側面を調整することで、トラフィックの可視性とストレージ費用のニーズのバランスをとることができます。

集約を設定する

  1. コンソールでナビゲーション メニュー)に移動し、[VPC ネットワーク] > [VPC ネットワーク] を選択します。

  2. [vpc-net] をクリックします。

  3. [サブネット] タブで、[vpc-subnet] をクリックします。

  1. [編集] > [詳細設定] をクリックして次のフィールドを表示します。

各フィールドの目的は次のとおりです。

  • 集約の間隔: 一定の時間間隔でサンプリングされたパケットは、単一のログエントリに集約されます。この時間間隔は、5 秒(デフォルト)、30 秒、1 分、5 分、10 分、15 分から選択できます。

  • メタデータ アノテーション: デフォルトでは、フローログ エントリには、ソースと宛先の VM の名前や、外部のソースと宛先の地理的リージョンなどのメタデータ情報を含むアノテーションが追加されます。保存容量を節約するために、このメタデータ アノテーションをオフにできます。

  • ログエントリのサンプリング: データベースに書き込む前に、ログの数をサンプリングして減らすことができます。デフォルトでは、ログエントリのボリュームが 0.50(50%)に縮小されます。つまり、エントリの半分が保持されます。このサンプルレートは 1.0(100%、すべてのログエントリを保持)から 0.0(0%、ログを保持しない)の範囲で設定できます。

  1. [集約の間隔] を [30 秒] に設定します。

  2. [セカンダリ サンプリング レート] を [25%] に設定します。

  3. [保存] をクリックします。次のメッセージが表示されます。

集約の間隔を 30 秒に設定すると、デフォルトの間隔である 5 秒の場合と比べてフローログのサイズを最大で 83% 縮小できます。フローログの集約を構成すると、トラフィックの可視性とストレージ費用に大きな影響が出る可能性があります。

お疲れさまでした

VPC ネットワークを構成し、VPC フローログを有効にして、そのネットワークでウェブサーバーを作成しました。次に、ウェブサーバーへの HTTP トラフィックの生成、Google Cloud コンソールでのトラフィック ログの確認、BigQuery でのトラフィック ログの分析を行いました。最後に、トラフィックの可視性とストレージ費用のバランスを取るために、VPC フローログの集約を使用しました。

VPC フローログには複数の用途があります。たとえば、アプリケーションのアクセス元を特定してネットワーク トラフィック費用を最適化したり、トラフィックをグローバルに分散する HTTP ロードバランサを作成したり、Cloud Armor で望ましくない IP アドレスを拒否したりする場合に VPC フローログを使用できます。

ラボを終了する

ラボが完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Google Cloud Skills Boost から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバックやご提案の送信、修正が必要な箇所をご報告いただく際は、[サポート] タブをご利用ください。

Copyright 2020 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。

前へ 次へ

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
プレビュー