チェックポイント
Create the custom network
/ 15
Create a subnet for the custom network in us-west1 region
/ 15
Create the firewall rule in the custom network
/ 10
Create the web server in the custom network
/ 20
Install Apache in web server
/ 20
Export the network traffic to BigQuery
/ 20
VPC フローログ - ネットワーク トラフィックの分析
GSP212
概要
このラボでは、VPC フローログによって Apache ウェブサーバーとの間のトラフィックが記録されるようにネットワークを構成する方法を学びます。その後、ログを BigQuery にエクスポートして分析します。
VPC フローログには複数の用途があります。たとえば、アプリケーションのアクセス元を特定してネットワーク トラフィック費用を最適化したり、トラフィックをグローバルに分散する HTTP ロードバランサを作成したり、Cloud Armor による望ましくない IP アドレスの拒否などに VPC フローログを使用できます。
目標
このラボでは、次のタスクの実行方法について学びます。
- VPC フローログを使用してカスタム ネットワークを構成する。
- Apache ウェブサーバーを作成する。
- ネットワーク トラフィックがログに記録されていることを確認する。
- ネットワーク トラフィックを BigQuery にエクスポートしてログをさらに分析する。
- VPC フローログの集約を設定する。
設定と要件
[ラボを開始] ボタンをクリックする前に
こちらの手順をお読みください。ラボの時間は記録されており、一時停止することはできません。[ラボを開始] をクリックするとスタートするタイマーは、Google Cloud のリソースを利用できる時間を示しています。
このハンズオンラボでは、シミュレーションやデモ環境ではなく、実際のクラウド環境を使ってご自身でラボのアクティビティを行うことができます。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。
このラボを完了するためには、下記が必要です。
- 標準的なインターネット ブラウザ(Chrome を推奨)
- ラボを完了するために十分な時間を確保してください。ラボをいったん開始すると一時停止することはできません。
ラボを開始して Google Cloud コンソールにログインする方法
-
[ラボを開始] ボタンをクリックします。ラボの料金をお支払いいただく必要がある場合は、表示されるポップアップでお支払い方法を選択してください。 左側の [ラボの詳細] パネルには、以下が表示されます。
- [Google Cloud コンソールを開く] ボタン
- 残り時間
- このラボで使用する必要がある一時的な認証情報
- このラボを行うために必要なその他の情報(ある場合)
-
[Google Cloud コンソールを開く] をクリックします(Chrome ブラウザを使用している場合は、右クリックして [シークレット ウィンドウでリンクを開く] を選択します)。
ラボでリソースが起動し、別のタブで [ログイン] ページが表示されます。
ヒント: タブをそれぞれ別のウィンドウで開き、並べて表示しておきましょう。
注: [アカウントの選択] ダイアログが表示されたら、[別のアカウントを使用] をクリックします。 -
必要に応じて、下のユーザー名をコピーして、[ログイン] ダイアログに貼り付けます。
{{{user_0.username | "Username"}}} [ラボの詳細] パネルでも [ユーザー名] を確認できます。
-
[次へ] をクリックします。
-
以下のパスワードをコピーして、[ようこそ] ダイアログに貼り付けます。
{{{user_0.password | "Password"}}} [ラボの詳細] パネルでも [パスワード] を確認できます。
-
[次へ] をクリックします。
重要: ラボで提供された認証情報を使用する必要があります。Google Cloud アカウントの認証情報は使用しないでください。 注: このラボでご自身の Google Cloud アカウントを使用すると、追加料金が発生する場合があります。 -
その後次のように進みます。
- 利用規約に同意してください。
- 一時的なアカウントなので、復元オプションや 2 要素認証プロセスは設定しないでください。
- 無料トライアルには登録しないでください。
その後、このタブで Google Cloud コンソールが開きます。
Cloud Shell をアクティブにする
Cloud Shell は、開発ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Cloud Shell を使用すると、コマンドラインで Google Cloud リソースにアクセスできます。
- Google Cloud コンソールの上部にある「Cloud Shell をアクティブにする」アイコン をクリックします。
接続した時点で認証が完了しており、プロジェクトに各自の PROJECT_ID が設定されます。出力には、このセッションの PROJECT_ID を宣言する次の行が含まれています。
gcloud
は Google Cloud のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。
- (省略可)次のコマンドを使用すると、有効なアカウント名を一覧表示できます。
-
[承認] をクリックします。
-
出力は次のようになります。
出力:
- (省略可)次のコマンドを使用すると、プロジェクト ID を一覧表示できます。
出力:
出力例:
gcloud
ドキュメントの全文については、gcloud CLI の概要ガイドをご覧ください。
タスク 1. VPC フローログを使用してカスタム ネットワークを構成する
カスタム ネットワークを作成する
デフォルトでは、VPC フローログはネットワークで無効になっています。そのため、カスタムモードのネットワークを新規に作成して VPC フローログを有効にする必要があります。
-
コンソールで、ナビゲーション メニュー() > [VPC ネットワーク] > [VPC ネットワーク] に移動します。
-
[VPC ネットワークを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 vpc-net 説明 必要に応じて説明を入力します(任意)。 -
[サブネット作成モード] で [カスタム] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 vpc-subnet リージョン IPv4 範囲 10.1.3.0/24 フローログ オン -
[完了]、[作成] の順にクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。
ファイアウォール ルールを作成する
ネットワークで HTTP / SSH トラフィックを提供するには、ファイアウォール ルールを作成する必要があります。
-
左側のメニューで [ファイアウォール] をクリックします。
-
[ファイアウォール ルールを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 allow-http-ssh ネットワーク vpc-net ターゲット 指定されたターゲットタグ ターゲットタグ http-server ソースフィルタ IPv4 範囲 送信元 IPv4 範囲 0.0.0.0/0 プロトコルとポート [指定したプロトコルとポート] と [tcp] のチェックボックスをオンにして「80, 22」と入力
- [作成] をクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。
タスク 2. Apache ウェブサーバーを作成する
ウェブサーバーを作成する
-
コンソールで、ナビゲーション メニュー()> [Compute Engine] > [VM インスタンス] に移動します。
-
[インスタンスを作成] をクリックします。
-
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) 名前 web-server リージョン ゾーン マシンタイプ e2-micro(2 vCPU、1 GB メモリ) ファイアウォール HTTP トラフィックを許可する -
[ネットワーク、ディスク、セキュリティ、管理、単一テナンシー] をクリックします。
-
[ネットワーキング] をクリックします。
-
[ネットワーク インターフェース] で、[
default
] をクリックして編集します。 -
以下の値を設定し、他はすべてデフォルト値のままにします。
プロパティ 値(値を入力するか、指定されたオプションを選択) ネットワーク vpc-net サブネットワーク vpc-subnet -
[完了]、[作成] の順にクリックします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。
Apache をインストールする
作成した VM インスタンスを Apache ウェブサーバーとして構成し、デフォルトのウェブページを上書きします。
- コンソールの [VM インスタンス] ページ(ナビゲーション メニュー() > [Compute Engine] > [VM インスタンス])に戻ります。 web-server の [SSH] をクリックし、ターミナルを起動して接続します。
- web-server の SSH ターミナルで、パッケージ インデックスを更新します。
- apache2 パッケージをインストールします。
- 次のように入力してデフォルトを上書きし、新しいデフォルトのウェブページを作成します。
- SSH ターミナルを終了します。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。
タスク 3. ネットワーク トラフィックがログに記録されていることを確認する
ネットワーク トラフィックを生成する
- コンソールの [VM インスタンス] ページ(ナビゲーション メニュー() > [Compute Engine] > [VM インスタンス])に戻ります。
- web-server を表示するため、[外部 IP] をクリックしてこのサーバーにアクセスします。
自分の IP アドレスを調べる
使用しているパソコンの IP アドレスを調べます。下記のウェブサイトに表示させて簡単に調べることができます。
- whatismyip.host をクリックすると使用中の IP v4 アドレスが表示されます。
- IP アドレスをコピーします。ここからはこのアドレスを
YOUR_IP_ADDRESS
と呼びます。
VPC フローログにアクセスする
-
コンソールで、ナビゲーション メニュー > [ロギング] > [ログ エクスプローラ] に移動します。
-
[ログのフィールド] パネルの [リソースの種類] で [サブネットワーク] をクリックします。サブネットワーク ログのエントリが [クエリ結果] ペインに表示されます。
-
[ログのフィールド] パネルの [ログ名] で [compute.googleapis.com/vpc_flows] をクリックします。
-
上部のクエリ検索ボックスに
YOUR_IP_ADDRESS
を入力します。[クエリを実行] をクリックします。
- ログエントリの 1 つをクリックして展開します。
- エントリ内の矢印をクリックし、[jsonPayload] > [connection] を展開します。[Expand all] をクリックして [connection] を表示しなければならない場合もあります。
次のタスクに進む前に、ログエントリ内の他のフィールドを自由に確認できます。
タスク 4. ネットワーク トラフィックを BigQuery にエクスポートしてログをさらに分析する
エクスポート シンクを作成する
-
コンソールで、左側のパネルの [ログ エクスプローラ] をクリックします。
-
[リソース] プルダウンから [サブネットワーク] を選択します。[適用] をクリックします。
-
[ログ名] プルダウンで [vpc_flows] にチェックを入れて、[適用] をクリックします。[クエリを実行] をクリックします。
-
[その他の操作] > [シンクの作成] をクリックします。
-
[シンク名] に「vpc-flows」と入力して [次へ] をクリックします。
-
[シンクサービスの選択] で [BigQuery データセット] を選択します。
-
[シンクの宛先] で [新しい BigQuery データセットを作成する] を選択します。
-
[データセット ID] に「bq_vpcflows」と入力し、[データセットを作成] をクリックします。
-
[シンクを作成] をクリックします。[ログルーターのシンク] ページが表示されます。作成したシンク(vpc-flows)が表示されるはずです。シンクが表示されない場合は、[ログルーター] をクリックします。
BigQuery 用のログ トラフィックを生成する
ネットワーク トラフィック ログが BigQuery にエクスポートされたら、web-server に複数回アクセスしてトラフィックをさらに生成します。Cloud Shell で curl
コマンドを実行して、web-server の IP アドレスを複数回調べます。
- コンソールで、ナビゲーション メニュー() > [Compute Engine] > [VM インスタンス] に移動します。
-
web-server インスタンスの 外部 IP アドレスを次のステップ用にメモします。今後はこれを
EXTERNAL_IP
と呼びます。 - Cloud Shell のコマンドラインで次のコマンドを実行し、
EXTERNAL_IP
を環境変数に入れます。<EXTERNAL_IP> の部分はメモしたアドレスで置き換えてください。
- Cloud Shell から web-server に 50 回アクセスします。
完了したタスクをテストする
[進行状況を確認] をクリックして、実行したタスクを確認します。タスクが正常に完了すると、評価スコアが提供されます。
VPC フローログを BigQuery で可視化する
- コンソールで、ナビゲーション メニュー() > [BigQuery] に移動します。
- [完了] をクリックします。
- 左側にある bq_vpcflows データセットを展開してテーブルを表示します。まず [プロジェクト ID] を展開してこのデータセットを表示しなければならない場合もあります。
- テーブルの名前をクリックします。compute_googleapis で始まる名前が付いているはずです。
-
[詳細] タブをクリックします。
-
[
詳細
] タブに表示される [テーブル ID] をコピーします。 -
クエリエディタに次の内容を追加します。your_table_id の部分は
TABLE_ID
に置き換えますが、両側のアクセント記号(`)は残します。
- [実行] をクリックします。
VPC フローログを BigQuery で分析する
前のクエリでは Cloud コンソールに表示された情報と同じ情報が表示されました。web-server とやり取りしたトラフィックが特に多い IP アドレスを識別できるようにクエリを変更してみましょう。
- クエリエディタで次のような新しいクエリを作成します。your_table_id の部分は
TABLE_ID
で置き換えますが、両側のアクセント記号(`)は残します。
- [実行] をクリックします。
複数のソースから web-server へのトラフィックをさらに生成した後、テーブルをもう一度クエリしてサーバーへの送信バイト数を調べることもできます。
タスク 5. VPC フローログの集約を追加する
ここでは、新しくリリースされた機能である VPC フローログ ボリューム削減について説明します。すべてのパケットが独自のログレコードに収集されるとは限りません。ただし、サンプリングの場合を含め、収集されるログレコード数はかなり大きくなる可能性があります。
このセクションで説明するログ収集の特定の側面を調整することで、トラフィックの可視性とストレージ費用のニーズのバランスをとることができます。
集約を設定する
-
コンソールで、ナビゲーション メニュー() > [VPC ネットワーク] > [VPC ネットワーク] に移動します。
-
[vpc-net]、[編集] の順にクリックします。
-
[サブネット] タブで、[vpc-subnet] をクリックします。
- [編集] > [ログを構成] をクリックして次のフィールドを表示します。
各フィールドの目的は次のとおりです。
-
集約の間隔: 一定の時間間隔でサンプリングされたパケットは、単一のログエントリに集約されます。この時間間隔は、5 秒(デフォルト)、30 秒、1 分、5 分、10 分、15 分から選択できます。
-
メタデータ アノテーション: デフォルトでは、フローログ エントリには、ソースと宛先の VM の名前や、外部のソースと宛先の地理的リージョンなどのメタデータ情報を含むアノテーションが追加されます。保存容量を節約するために、このメタデータ アノテーションをオフにできます。
-
ログエントリのサンプリング: データベースに書き込む前に、ログの数をサンプリングして減らすことができます。デフォルトでは、ログエントリのボリュームが 0.50(50%)に縮小されます。つまり、エントリの半分が保持されます。このサンプルレートは 1.0(100%、すべてのログエントリを保持)から 0.0(0%、ログを保持しない)の範囲で設定できます。
-
[集約の間隔] を [30 秒] に設定します。
-
[サンプルレート] を [25%] に設定します。
-
[保存] をクリックします。次のメッセージが表示されます。
集約の間隔を 30 秒に設定すると、デフォルトの間隔である 5 秒の場合と比べてフローログのサイズを最大で 83% 縮小できます。フローログの集約を構成すると、トラフィックの可視性とストレージ費用に大きな影響が出る可能性があります。
お疲れさまでした
VPC ネットワークを構成し、VPC フローログを有効にしてそのネットワークでウェブサーバーを作成しました。その後、ウェブサーバーへの HTTP トラフィックを生成し、Cloud コンソールでトラフィック ログを表示し、BigQuery でログを分析しました。
クエストを完了する
このセルフペース ラボは、「Network Performance and Optimization」クエストの一部です。クエストとは学習プログラムを構成する一連のラボのことで、完了すると成果が認められて上のようなバッジが贈られます。バッジは公開して、オンライン レジュメやソーシャル メディア アカウントにリンクできます。このラボの修了後、このラボが含まれるクエストに登録すれば、すぐにクレジットを受け取ることができます。受講可能な全クエストについては、Google Cloud Skills Boost カタログをご覧ください。
次のクエストを受講する
引き続き別のクエストを受講してください。たとえば、「Google Cloud ソリューション I: インフラストラクチャのスケーリング」を受講するか、以下のおすすめのラボもご確認いただけます。
次のステップと詳細情報
Google Cloud Identity and Access Management の基本コンセプトについては次をご覧ください。
Google Cloud トレーニングと認定資格
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2023 年 9 月 28 日
ラボの最終テスト日: 2023 年 9 月 28 日
Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。