Googleクラウドディーラー: Terraformツールを利用して10分でGCPで標準ネットワークアーキテクチャを一括自動構築する
パブリッククラウドの運営・維持の輪の中で、一つの言葉があります。
コンソールで同じボタンを3回以上繰り返している場合は、それをコード化する必要があります。
」
Google Cloud (GCP) に触れたばかりの友人の多くは、新しいビジネスプロジェクトに直面すると、多くの場合、軽自動車がコンソールにログインし、人肉点マウスを開始しますカスタムVPCを構築し、3つの異なる地域のサブネット (サブネット) を分け、ネットワークマークファイアウォールを設置し、最後に内部のNATゲートウェイを設置して、仮想マシンが安全にインターネットに接続できるようにします。
この流れは降りて、少なくとも30分はかかる。さらにつらいのは、会社がテスト環境、プレリリース環境、生産環境、さらには海外の新しい地域で
完璧な復刻
同じネットワークのセットで、汗を握って、文書を見ながら、自分がIPマスクを間違えないように祈っています。手が震えているだけで、それに伴って長い間違いと魚の穴ができた。
現代化大工場のDevOps生態の中で、このような原始的な仕事を徹底的に終わらせる究極の殺意があります。
Terraform
。
その核心ロジックは四つの文字で要約されています。
インフラストラクチャーはコードです。
。マウスをクリックする必要はありません。テキストファイルにネットワークの青写真を書くだけで、Terraformは10分以内にプリンタのように、世界中のGCPで、正確かつ一括的に「印刷」するための標準的なネットワークアーキテクチャを提供します。
今日私たちは概念説教を拒否し、でたらめを拒否した。直接大工場の多国籍構造の生産規範を基準にして、ハンドルを持ってあなたをTerraformで10分以内にビルを立ち上げる。
第一段階: 深さ分解、IaCの「神の視点世界モデル」
最初の行のコードを書く前に、頭の中でTerraformの基礎的な物理世界モデルを構築しなければならない。そうでなければ、絶対に次のようなものになる
.Tf
書類は気絶します。
TerraformとGCP間の相互作用は、本質的に「宣言-> 実行」の閉ループプロセスである
図面層 (構成ファイル、.tf): HCL言語 (読みやすい宣言的な構成言語) で書かれたネットワークアーキテクチャ図面。「Prod-vpcというネットワークが欲しい」と宣言するだけで、グーグルの基盤がどのようにAPIを介してスケジュールされているかは関係ありません。
コネクタ: Terraform公式提供のGCP翻訳官。あなたが書いた図面を、googleクラウドのバックグラウンドで理解できるRESTful API命令に翻訳する責任があります。
実世界フィードバック
Te): これはTerraformの「記憶帳簿」です。クラウドが現在どのような実際のリソースを持っているか、IPがどれだけあるか、雷はJSONファイルに記録されている。これはTerraformが「増分修正、重複しない」ことができる基礎的な核心である。
第二段階: 実戦前夜 -- 地元の弾薬庫を開く
ローカルコンピュータにTerraform CLIがダウンロードされ、インストールされていることを確認してください
gcloud
コマンドラインツール。
ローカルコンピュータに新しい空のディレクトリを作成します。名前は
Gcp-network-automation
。このカタログでは、私たちは大手工場の構造規範に合った3つのコアファイルを作成しなければならない。
大工場の規範はすべてのものを一つの書類に詰め込むことを厳禁している
モジュール化しなければなりません
プロバイダーズ.tf: グーグル・クラウドと暗号を合わせるために、私たちがどこのリソースを使うかを宣言します。
Variables.tf: 変数コンソール、すべての地域、プロジェクトID、IPネットワークセグメントがここで統一的に変更され、一連のコードが至るところで多重化されている。
Main.tf: コアネットワークの青写真。
第三段階: 実戦演習 ― ハンドルコード化一括構築ネットワーク
次に、両手をマウスから離して、あなたのIDE (VS Codeなど) でこの10分間のインターネット速達戦闘を始める準備をします。
1.コネクタの作成
プロバイダーズ.tf
この書類はTerraformをあなたのGCPプロジェクトにしっかりと溶接して死ぬ責任がある。
Terraform {
Required_version = ">= 1.5.0"
Required_providers {
Google = {
Source = "hashcorp/google"
Version = "~> 5.0" # 大きなバージョンをロックして、将来の公式アップグレードによる文法の非互換性を防ぐ
}
}
}
プロバイダ "google" {
Project = var.project _ id
Region = var.Main _ region
}
2.変数テーブルの作成
Variables.tf
変動する可能性のあるすべてのパラメータを抽出して、後で新しい地域を発行するには、この文書で1行を変更するだけで、コア青写真を動かす必要はありません
Variable "project _ id" {
Type & n
Bsp; = string
Description = "あなたのGCPプロジェクトID"
Default = "my-automation-project-2026" # あなた自身の実际のプロジェクトIDに置き换えます
}
Variable "main _ region" {
Type = string
Description = 「メイン業務展開地域」
Default = "asia-east1" # 台湾地域、国内アクセス遅延が低い
}
Variable "backup_region" {
Type = string
Description = 「災害準備災害地域」
Default = 「asia-northeast1」 # 東京地域で、多国籍の二人の生活が高利用できる
}
3.コアネットワークの青写真を作成する
Main.tf
これは最もハードな部分です。ここで一気に一括して構築します
1つのカスタムVPC、2つの多国籍サブネット、1つの完全に隔離されたイントラネットセキュリティファイアウォール、およびイントラネットマシンがパッチをダウンロードできないようにするCloud NATゲートウェイ
。
Terraform
#1.大量構築大後方: カスタムVPCネットワーク
リソース "google _ compute_network" "custom_vpc" {
Name = "prod-standard-vpc"
自動原子ネットワークを断固としてオフにするには、すべて手動で制御IPドメインを分割しなければなりません。
Routing_mode = "GLOBAL" # グローバルルーティングをオンにして、多国籍サブネットがイントラネットでやり取りできるようにします
}
#2.陣地を分ける1: 台湾主業務サブネット (フロントエンドとアプリケーション)
Resource "google_compute_subnetwork" "" subnet_asia_east "{
Name = "subnet-asia-east-prod"
Ip_cidr_range = "10.0.1.0/24" # は254の利用可能なイントラネットIPを分割する
地域 = 変数.主要地域
Network = google _ compute_network.custom_vpc.id
Private _ ip_google_access = true # 魂を注入する: イントラネットマシンがパブリックネットワークIPを使わなくてもgoogle公式APIに安全に接続できるようにする
}
#3.陣地を分ける2: 東京のオフサイトの災害復旧サブネット (コアデータベースとバックアップ)
リソース "google_compute_subnetwork" "" subnet_asia_northeast "{
Name = "サブネット-asia-tokyo-backup"
Ip_cidr_range = "10.0.2.0/24"
Region = var.backup_region
Network = google _ compute_network.custom_vpc.id
Private _ ip_google_access = true
}
#4.溶接死安全ゲート: イントラネットセキュリティファイアウォールを確立する
リソーシング "google_compute_firewall'" "2014/_internal" {
Name = "hash-internal-mesh-traffic"
ネットワーク = google _ compute_network.custom_vpc.name
アロー {
プロトコル = "tcp"
}
アロー {
Protocol = "udp"
}
アロー {
Protocol = "icmp"
}
Source1.13 anges = ["10.0.0.0/16"] # 私たち自身の大規模なネットワークセグメント内部の相互ノックだけを開放し、パブリックネットワークのすべての検出を完全に遮断する
Description = 「VPCイントラネットメンバー間のバックボーンネットワークの相互運用のみ許可」
}
#5.海外パイプライン建設: Cloud Routerルーターの設定
Resource "google_compute_router" "nat_router" {
Name = "prod-nat-router"
地域 = 変数.主要地域
Network = google _ compute_network.custom_vpc.id
}
#6.完全にホストされたCloud NATゲートウェイの構成
Resource "google_compute_router_nat" "nat_gateway" {
Name = "prod-cloud-nat"
Router = google_compute_router.nat_router.name
地域 = 変数.主要地域
Nat_ip_allocate_option = "AUTO_ONLY" # googleは全自動で高防御外部静的ipを割り当てます
Source_subworks_ip__anges_to_nat = "all_subworks_all_ip__anges"
}
第四段階: 奇跡を目撃する時 -- クラウドの「パチパチ」のワンタッチラインがトリガーされます。
コードが書き終わりました。次に、私たちは端末に入って、Terraformの「通関三部作」を実行します。
ステップ1: 部隊集結 (初期化)
ターミナルプロジェクトのルートディレクトリでノックします
バッシュ
Terraform init
このとき、Terraformは自動的に公式ミラーステーションに行ってGCPに特化したプロバイダをローカルにダウンロードし、ローカルコンピュータにgoogleクラウドを操作する能力を持たせる。
ステップ2: 砂盤推演 (プレビュー計画)
これはIaCの最も無敵のステップです。実際にクラウドに行って土を動かす前に、絶対安全な軍事演習をしてみましょう
バッシュ
Terraform plan
端末が出力したレポートを見つめていると、画面いっぱいの緑のプラス記号 (
) はっきりとあなたに言います。
「確認を押すと、バックグラウンドで6つの新しいネットワーク製品、0つの変更、0つの破棄を作成します」
ステップ3:重火力全開
図面が完璧であることを確認した後、最終的な死命令を出した
バッシュ
Terraformアプリ-auto-839ve
画面上のプログレスバーが狂ったようにスクロールし始めた。Terraformはバックグラウンドで非常に密集した同時頻度で、グーグルの世界的なバックボーンのAPIに呼び出しを始めた。
通常必要なのは
15から30秒
、端末最後
金のようなヒントが出ます
アプリコンプリート! Resources: 6 added, 0 changed, 0 destroyed.
。
この時ログインします
GCPコンソール
ネットワークの大皿を見ると、完璧で、多国籍の多活サブネットを持っていて、NATゲートウェイと隔離ファイアウォールを持っている工業クラスのネットワークの大後方は、すでに公共ネットワーク上で高くそびえている。全プロセスはつばを無駄にせず、1分もたたないうちにすべて落盤する。
第五段階: 企業レベルの大規模IaC開発のピット血涙歴
この自動化案はとても爽快である。しかし、真の企業レベルの高合併、複数チームが協力する生産環境では、最高設計者として、すぐにチームに次の2つの下線規範を溶接しなければならない
1.地元留保厳禁
Terraform.Tf state
(複数人が協力する絶滅の被害)
デフォルトでは、Terraformが実行されると、ローカルで生成されます
Terraform.Tf state
ファイル。
災害発生: チームの張三と李四がそれぞれのコンピューターでそれぞれterraform applyを走っていると、二人の地元の帳簿が同期していないためterraformは相手が書いたものが「不正侵入」であると判定し、世界のバックグラウンドで相手が作ったばかりのサーバーとネットワークを一気に消去します。
大工場標準解法: 「リモート・ステータス・ロック」を構成する必要があります。プロバイダーズ.tfにいくつかのコードを追加して、ステータス帳簿をGoogleの自宅のGCSストレージに強制的にロックします
テラフォーム
テラフォーム
Backend "gcs" {
Bucket = "my-company-tf state-bucket" # 帳簿をクラウドの安全な引き出しにロックする
Prefix = "terraform/state/network"
}
}
配置後、張三がコードを実行している限り、クラウドストレージバレルは自動的にロックされ、李四は同じ時刻に絶対に動かない複数チームのコードの衝突による悲惨な事故を徹底的に根絶した。
2.「物理の超度」を身につける究極の自滅芸術
プロジェクトが終わったり、テスト環境を開発したりして金曜日に退社したりして、一時的に資金を完全に停止する必要がある場合は、絶対にコンソールに行って削除しないでください。
ハードコアの損失を止めるアドバイス: 端末で直接ノックする:
Bashterraform destroy -auto-approveはわずか30秒で、Terraformは巻き戻しのように、図面上の6つのネットワーク製品をきれいにグーグルの機械室から物理的に過度で、全量的に消してしまう死角を残さず、徹底的に
あるゲートウェイを閉鎖したことによる月末のアイドル価格の請求書をなくす。
まとめ
Terraformツールを利用してGCPネットワークアーキテクチャを一括自動化して構築し、核心的な工業レベルの真髄は16文字にある
図面宣言、変数デカップリング、クラウドロック、ワンクリック自己破壊
。
あなたは過去に運点コンソールを見て、人の肉がマスクの原始的な運送状態を気にしていた。すべてのインフラストラクチャをバージョン管理 (Git commit) できるクリーンなコードにします。ネットワークアーキテクチャをソフトウェアのように無限にコピーし、ワンクリックでロールバックできるようにすることは、現代のクラウドの原生設計者が海を出て遠出する時に最も本格的で、最も優雅なコントロールの姿勢である。

