0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Network Intelligence Center を試す

Posted at

はじめに

Google Cloud でネットワーク関連を統合したコンソールとして Network Intelligence Center がある
個人環境で簡易的に試した内容を記載する

Network Intelligence Center とは

Google Cloud ネットワークのオブザーバビリティ、モニタリング、トラブルシューティングを単一コンソールで可能にするサービス

  • 主な利点 (ドキュメント)
    • 接続の問題を診断し、ネットワーク障害を防止
    • ネットワークのセキュリティとコンプライアンスが向上
    • インテリジェントなモニタリングで時間を節約

主な機能・料金

主な機能・料金は下記の通り (2023.10.15 時点)

主な機能 内容 (ドキュメント) 料金 (ドキュメント)
ネットワーク トポロジ 下記を可視化する
・VPC ネットワークのトポロジ
・オンプレミス ネットワーク間のハイブリッド接続
・Google マネージド サービスへの接続
・関連する指標
・現在すべてのユーザーが 100% 割引
(割引構成の変更は、90 日前の通知)
・GCE 1 リソース時間ごとに $0.0011
・アドオン: インターネットと Google Cloud 間のトラフィック GCE リソース時間あたり \$0.0008
接続テスト ネットワーク エンドポイント間の接続を確認できる診断ツール ・テスト 20 回まで無料/月
・テスト 21 回以上 $0.15 / テスト数
パフォーマンス ダッシュボード 全体のパフォーマンスと、プロジェクトのリソースのパフォーマンスを可視化する 現在すべてのユーザーが 100% 割引
(割引構成の変更は、90 日前の通知)
ファイアウォール インサイト ファイアウォール ルールの使用状況に関するデータを使用して、構成の誤りを確認できる ・初期評価時 : ルールごとに 1ドル
・その後の評価 : 評価するルール 1 つにつき 0.10ドル
ネットワーク アナライザ VPC ネットワーク構成を自動的にモニタリングし、構成ミスや最適でない構成を検出する
基盤となるネットワークに起因する障害を特定し、根本原因の情報と考えられる解決策を提供する
・現在すべてのユーザーが 100% 割引
(割引構成の変更は、90 日前の通知)
・GCE, GKE ノード : 1 リソース時間ごとに $0.0011

料金のドキュメントに記載がある通り、現在(2023.10.15時点)100%割引が適用されている箇所があるが、今後90日前通知で課金に変わる可能性がある

スクリーンショット 2023-10-09 15.18.04.png

試験実施

Network Intelligence の各機能を試験環境で試してみる

  • Cloud Console 英語メニュー
    スクリーンショット 2023-10-15 19.12.55.png

  • Cloud Console 日本語メニュー
    スクリーンショット 2023-10-15 19.12.29.png

実施環境

共有 VPC 環境で複数のプロジェクトがある環境 (下記リンク先で作成された個人試験環境)

必要な権限

下記管理者と閲覧者は必要に応じて適用する

ファイアウォール インサイトの権限 は Firewall があるプロジェクト(共有VPCのホストプロジェクト)で権限付・操作が必要

必要な API

下記 API を必要に応じて各プロジェクトで有効化する

  • monitoring.googleapis.com
    • すべてのプロジェクトで有効化する
  • firewallinsights.googleapis.com
    • 共有VPCのホストプロジェクトで有効化する
  • networkmanagement.googleapis.com
    • モニタリング対象先(サービスプロジェクトを含む全ての対象プロジェクト)で有効化する

マルチプロジェクト モニタリング スコープ用プロジェクト

共有 VPC など複数のプロジェクトを前提にネットワークを構成している場合は、指標スコープを追加する必要がある

スコープ用プロジェクトに関するベスト プラクティスによるとスコープ用プロジェクトとして新しい Google Cloud プロジェクトを使用するか、リソースのないプロジェクトを使用することが推奨されているので、新しくプロジェクトを作成する

マルチスコープ用プロジェクトの作成

プロジェクトを作成して、必要な権限・API を有効化して、モニタリングするプロジェクトを紐付けする

 terraform code 例 

組織でフォルダ管理されている環境での例
main.tf, terraform.tfvars に環境で変わる変数は定義している
terraform.tfvarsmonitor_project_list 変数で複数のプロジェクトの紐付けをリストで定義できるようにしている

$ tree
.
|-- api.tf
|-- folder.tf
|-- iam.tf
|-- main.tf
|-- monitored_project.tf
|-- project.tf
|-- terraform.tfvars
`-- vairables.tf
api.tf
# プロジェクトの API 管理
resource "google_project_service" "main" {
  project                    = google_project.main.name
  disable_dependent_services = true

  for_each = toset([
    "monitoring.googleapis.com",        # Network Topology, Performance Dashboard, Network Analyzer のみであればこれだけでも使用可能
    "networkmanagement.googleapis.com", # Connectivity Tests で必要, Network Analyzer の対象先で有効化が必要
    # "firewallinsights.googleapis.com",  # Firewall Insights で必要, Firewall があるプロジェクトで有効化・実施が必要
  ])
  service = each.value
}

folder.tf
# マルチプロジェクトでのモニタリング向けフォルダ
resource "google_folder" "folder" {
  display_name = var.folder_name
  parent       = var.parent_folder_name
}
iam.tf
# フォルダ IAM 設定
resource "google_folder_iam_binding" "admin" {
  folder = google_folder.folder.name
  for_each = toset([
    "roles/monitoring.admin",
    "roles/networkmanagement.admin",
  ])

  role = each.value

  members = [
    join(":", ["group", var.org_monitoring_admin_group_email]),
  ]
}
main.tf
terraform {
  required_version = "1.1.7"
  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "=5.0.0" # 2023.10.14 Latest https://registry.terraform.io/providers/hashicorp/google/5.0.0/
    }
  }
  backend "gcs" {
    bucket = "YOUR_TERRAFORM_BACKEND_BACKET" # env manage terraform state bucket
    prefix = "YOUR_THIS_STATE_FILE_NAME"    # env manage terraform state file
  }
}

provider "google" {
  # export GOOGLE_APPLICATION_CREDENTIALS=YOUR_CREDENTIALS_PATH
}
monitored_project.tf
## https://registry.terraform.io/providers/hashicorp/google/5.0.0/docs/resources/monitoring_monitored_project
resource "google_monitoring_monitored_project" "projects_monitored" {
  for_each      = toset(var.monitor_project_list)
  metrics_scope = join("", ["locations/global/metricsScopes/", google_project.main.id])
  name          = each.value
}
project.tf
# プロジェクト作成
resource "google_project" "main" {
  name            = var.project_id
  project_id      = var.project_id
  billing_account = var.billing_account
  folder_id       = google_folder.folder.name

  depends_on = [
    google_folder.folder,
  ]
}
terraform.tfvars
project_id         = "MONITORING_PROJECT_NAME"
parent_folder_name = "folders/XXXXXXXXXXXX"
folder_name        = "MONITORING_FOLDER_NAME"
billing_account    = "XXXXXX-XXXXXX-XXXXXX"
admin_group_email  = "gcp-network-admin@xxx.xxx"
monitor_project_list = ["YOUR_SHARED_VPC_PROJECT_ID", "YOUR_SERVICE_PROJECT1_ID",
"YOUR_SERVICE_PROJECT2_ID", ]
vairables.tf
variable "project_id" {
  type = string
}

variable "parent_folder_name" {
  type = string
}

variable "folder_name" {
  type = string
}

variable "billing_account" {
  type = string
}

variable "location" {
  type    = string
  default = "asia-northeast1"
}

variable "org_monitoring_admin_group_email" {
  type = string
}

variable "monitor_project_list" {
  type = list(string)
}

ネットワーク トポロジ

Cloud Console でマルチプロジェクト モニタリング 用に作成したプロジェクト を選択して Network Intelligence > Network Topology を開く

複数のプロジェクト (共有 VPC のホスト・サービスプロジェクト) を統合したトポロジ図を見ることができる。
アイコンをクリックすると対象の通信の Ingress/Egress トラフィックを図示できる

スクリーンショット 2023-10-15 15.47.37.png

トポロジのアイコンを開くとリージョン内の構造を表示できる (ここではオンプレ向け VPN とサブネット)

スクリーンショット 2023-10-15 15.48.07.png

また、アイコンをクリックすると対象のトラフィックをグラフで表示できる

スクリーンショット 2023-10-15 15.49.12.png

DATA FLOWS のタブを開くとトラフィック量を表で表示できる

スクリーンショット 2023-10-15 15.49.35.png

接続テスト

Cloud Console でマルチプロジェクト モニタリング 用に作成したプロジェクト を選択して Network Intelligence > Connectivity Tests を開く

スクリーンショット 2023-10-15 17.42.43.png

+ CREATE CONNECTIVITY TEST をクリックして、試しに許可してな送信元 IP を指定して VM の Public IP 向けに接続テストを作成する (下記は作成例)

スクリーンショット 2023-10-15 17.31.55.png

作成すると接続テストの一覧ができる (下記画像はFirewall でブロックされるのと許可している内容で試験作成した結果)

スクリーンショット 2023-10-15 17.32.51.png

下記画像はブロックされる接続テストをクリックして詳細を開いた例。Firewall rules でブロックされることがわかる。

スクリーンショット 2023-10-15 17.34.19.png

下記画像は許可される接続テストをクリックして詳細を開いた例。許可される Firewall rule 名が表示される。

スクリーンショット 2023-10-15 17.35.37.png

パフォーマンス ダッシュボード

Cloud Console でマルチプロジェクト モニタリング 用に作成したプロジェクト を選択して Network Intelligence > Performance Dashboard を開く

スクリーンショット 2023-10-15 17.52.10.png

あまりクラウドリソースがないので見れるところがなかった。インターネット向けのレイテンシで見れたのが上記の通り。

ファイアウォール インサイト

Cloud Console でマルチプロジェクト モニタリング 用に作成したプロジェクト を選択して Network Intelligence > Firewall Insights を開く

スクリーンショット 2023-10-15 18.35.44.png

設定を変えると費用が発生するので要注意 (初期評価時 : ルールごとに 1ドル)

CONFIGURATION をクリックして設定を開く

OBSERVATION PERIOD (観察期間) タブで実行間隔を設定できる (下記はデフォルトのまま)

スクリーンショット 2023-10-15 18.50.33.png

ENABLEMENT タブで有効化している評価設定を切り替えできる

スクリーンショット 2023-10-15 18.23.23.png

デフォルトでは Disabled になっているのでスイッチして Enable にする (下記はスイッチ時のポップアップ内容)

スクリーンショット 2023-10-15 18.37.24.png

両方とも Enabled になったことを確認する

スクリーンショット 2023-10-15 18.41.53.png

有効化 (Enabled) にすると分析 (Insights) 結果が表示される (分析には最大24時間かかるものがあるので注意)

スクリーンショット 2023-10-15 18.43.30.png

有効化したままだと定期的に費用が発生するので試験後は Disabled にする (評価するルール 1 つにつき 0.10ドル)

ネットワーク アナライザ

Cloud Console で共有 VPC のホストプロジェクト を選択して Network Intelligence > Network Analyzer を開く

スクリーンショット 2023-10-15 17.57.02.png

実施環境で分析結果を見ると、サブネット内の IP 使用率が少ないものが Low レベルで出ていることが確認できた

スクリーンショット 2023-10-15 17.58.02.png

まとめ

Network Intelligence Center を簡易的に試した
試験したのが個人的なラボ環境でリソースが少ないため試せた範囲は狭いが、
商用ネットワークの運用には有用そうなサービスだった

参照

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?