ผู้จัดจำหน่าย Google Cloud: ใช้เครื่องมือ Terraform เพื่อสร้างสถาปัตยกรรมเครือข่ายมาตรฐานบน GCP โดยอัตโนมัติใน10นาที

เมฆ 2026-05-30 阅读 14
cloud

ในแวดวงการดำเนินงานและการบำรุงรักษาระบบคลาวด์สาธารณะมีคำพูดที่สมเหตุสมผลซึ่งถือได้ว่าเป็นมาตรฐาน:"

หากคุณคลิกปุ่มเดิมซ้ำๆมากกว่าสามครั้งในคอนโซลคุณควรเข้ารหัส

เพื่อนๆหลายคนที่ยังใหม่กับ Google Cloud (GCP) เมื่อต้องเผชิญกับโครงการเชิงพาณิชย์ใหม่เอี่ยมพวกเขามักจะล็อกอินเข้าสู่คอนโซลและเริ่มคลิกเมาส์: สร้าง VPC ที่กำหนดเองและแบ่ง Subnet (ซับเน็ต) สามภูมิภาคที่แตกต่างกัน) พร้อมไฟร์วอลล์เครื่องหมายเครือข่ายจำนวนมากสุดท้ายติดตั้งเกตเวย์ NAT ภายในเพื่อให้เครื่องเสมือนออนไลน์ได้อย่างปลอดภัย

ขั้นตอนชุดนี้ลงและโยนอย่างน้อยครึ่งชั่วโมงสิ่งที่เจ็บปวดกว่านั้นคือเมื่อบริษัทต้องการทดสอบสภาพแวดล้อมก่อนการออกสภาพแวดล้อมการผลิตและแม้แต่ภูมิภาคใหม่ในต่างประเทศ

การพิมพ์ซ้ำที่สมบูรณ์แบบ

เมื่อตั้งค่าเครือข่ายที่เหมือนกันคุณทำได้เพียงแค่เหงื่อออกและอธิษฐานว่าคุณจะไม่อ่านหน้ากาก IP บางอันในขณะที่อ่านเอกสารตราบใดที่คุณจับมือและชี้ผิดสถานที่สิ่งที่ตามมาคือการตรวจสอบข้อผิดพลาดและบ่อปลาที่ยาวนาน

ในระบบนิเวศ DevOps ของโรงงานที่ทันสมัยขนาดใหญ่มีนักฆ่าขั้นสูงสุดที่ยุติการดำเนินการและการบำรุงรักษารูปแบบการประชุมเชิงปฏิบัติการแบบดั้งเดิมนี้โดยสิ้นเชิงเรียกว่า

Terraform

ตรรกะหลักของมันสามารถสรุปได้เป็นสี่คำ:

โครงสร้างพื้นฐานที่เป็นรหัส (IaC,Infrastructure as Code)

。คุณไม่จำเป็นต้องคลิกเมาส์ใดๆเพียงแค่เขียนพิมพ์เขียวเครือข่ายของคุณลงในไฟล์ข้อความจากนั้น Terraform จะ "พิมพ์" ให้คุณอย่างถูกต้องและเป็นกลุ่มใน GCP ทั่วโลกภายใน10นาทีเช่นเครื่องพิมพ์สร้างชุดสถาปัตยกรรมเครือข่ายมาตรฐานที่ไม่เลว

วันนี้เราปฏิเสธการเทศนาแนวคิดใดๆและปฏิเสธเรื่องไร้สาระโดยตรงกับข้อกำหนดการผลิตของโครงสร้างข้ามชาติของโรงงานขนาดใหญ่เป็นมาตรฐานและมือจะพาคุณไปใช้ Terraform เพื่อสร้างอาคารสูงบนพื้นดินภายใน10นาที

ขั้นตอนที่1: การรื้อลึก "พระเจ้ามุมมองโลกแบบจำลอง" ของ IaC

ก่อนที่จะเขียนโค้ดบรรทัดแรกคุณต้องสร้างแบบจำลองโลกทางกายภาพที่เป็นพื้นฐานในใจของคุณมิฉะนั้นคุณจะต้อง

.ทีเอฟ

ไฟล์เวียนหัว

ปฏิสัมพันธ์ระหว่าง Terraform และ GCP เป็นกระบวนการวงปิดของ "การประกาศ-> การดำเนินการ":

ชั้นภาพวาด (Configuration Files,.Tf): ภาพวาดสถาปัตยกรรมเครือข่ายที่คุณเขียนในภาษา HCL (ภาษาการกำหนดค่าการประกาศที่อ่านง่าย) คุณเพียงแค่ต้องประกาศว่า "ฉันต้องการเครือข่ายที่เรียกว่า prod-vpc" และคุณไม่จำเป็นต้องสนใจว่าชั้นล่างสุดของ Google กำหนดเวลาผ่าน API อย่างไร

ตัวเชื่อมต่อ (Provider): นักแปล GCP ที่จัดทำโดย Terraform อย่างเป็นทางการมีหน้าที่ในการแปลภาพวาดที่คุณเขียนเป็นคำสั่ง RESTful API ที่สามารถเข้าใจได้ในพื้นหลังของ Google Cloud

ผลตอบรับจากโลกแห่งความจริง (State File, terrafform.tfsta

Te): นี่คือ "สมุดบัญชีหน่วยความจำ" ของ Terraform มันจะบันทึกทรัพยากรที่แท้จริงในระบบคลาวด์และจำนวน IP ในไฟล์ JSON เป็นแกนพื้นฐานที่ Terraform สามารถบรรลุ "การปรับเปลี่ยนที่เพิ่มขึ้นและไม่ทับซ้อนกัน"

ขั้นตอนที่สอง: วันก่อนการต่อสู้จริง-เปิดคลังกระสุนในพื้นที่

โปรดตรวจสอบให้แน่ใจว่าคุณได้ดาวน์โหลดและติดตั้ง Terraform CLI บนคอมพิวเตอร์ของคุณแล้วและได้รับการกำหนดค่าแล้ว

จีคลาวด์

เครื่องมือบรรทัดคำสั่ง

สร้างไดเร็กทอรีว่างใหม่บนคอมพิวเตอร์ในระบบชื่อ

Gcp-network-automation

。ในไดเร็กทอรีนี้เราต้องสร้างไฟล์หลักสามไฟล์ที่ตรงตามข้อกำหนดสถาปัตยกรรมของโรงงานขนาดใหญ่

ข้อบังคับโรงงานขนาดใหญ่ห้ามใส่ทุกอย่างลงในเอกสารโดยเด็ดขาด

เราต้องแยกส่วน:

Providers.tf: ใช้เพื่อจัดตำแหน่งรหัสลับกับ Google Cloud และระบุว่าเราต้องการใช้ทรัพยากรที่ใด

Variables.tf: คอนโซลตัวแปรภูมิภาคทั้งหมด ID โครงการและส่วนเครือข่าย IP จะได้รับการเปลี่ยนแปลงอย่างสม่ำเสมอที่นี่เพื่อให้สามารถใช้ชุดรหัสซ้ำได้ทุกที่

Main.tf: พิมพ์เขียวเครือข่ายหลัก

ขั้นตอนที่สาม: การฝึกซ้อมการต่อสู้จริง-การสร้างเครือข่ายแบบกลุ่มโค้ดด้วยมือ

จากนั้นปล่อยเมาส์ด้วยมือทั้งสองข้างและเตรียมพร้อมที่จะเริ่มการต่อสู้ความเร็วเครือข่าย10นาทีนี้ใน IDE ของคุณ (เช่น VS Code)

1.เขียนตัวเชื่อมต่อ

Providers.tf

ไฟล์นี้มีหน้าที่ในการเชื่อม Terraform กับโครงการ GCP ของคุณอย่างแน่นหนา

Terraform {

Required_version = ">= 1.5.0"

Required_providers {

Google = {

Source = "hashicorp/google"

Version = "~> 5.0 "# ล็อคเวอร์ชันขนาดใหญ่เพื่อป้องกันความไม่ลงรอยกันทางไวยากรณ์ที่เกิดจากการอัปเกรดอย่างเป็นทางการในอนาคต

}

}

}

Provider "google" {

Project = var. project_id

Region = var. main_region

}

2.เขียนตารางตัวแปร

Variables.tf

ลบพารามิเตอร์ทั้งหมดที่อาจเปลี่ยนแปลงได้และคุณจะต้องเปลี่ยนบรรทัดเดียวในเอกสารนี้ในอนาคตโดยไม่ต้องใช้พิมพ์เขียวหลัก

Variable "project_id" {

Type & n

Bsp; = string

Description = "รหัสโครงการ GCP ของคุณ"

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

นี่คือส่วนที่ไม่ยอมใครง่ายๆเราต้องการสร้างชุดในครั้งเดียวที่นี่:

VPC ที่กำหนดเอง1เครือข่ายย่อยข้ามชาติ2เครือข่ายไฟร์วอลล์ความปลอดภัยอินทราเน็ตที่แยกออกจากกันอย่างสมบูรณ์และชุดเกตเวย์ Cloud NAT ที่ช่วยให้เครื่องอินทราเน็ตสามารถดาวน์โหลดแพตช์ได้โดยไม่ต้องใช้รหัสผ่าน

Terraform

#1.สร้างหลังใหญ่: เครือข่าย VPC ที่กำหนดเอง

Resource "google_compute_network" "custom_vpc" {

Name = "prod-standard-vpc"

Auto_create_subnetworks = false # ข้อกำหนดด้านความปลอดภัยระดับโรงงานขนาดใหญ่: ปิดเครือข่ายอะตอมอัตโนมัติอย่างเด็ดขาดและต้องแบ่งและควบคุมโดเมน IP ด้วยตนเอง

Routing_mode = "GLOBAL" # เปิดการกำหนดเส้นทางทั่วโลกเพื่อให้เครือข่ายย่อยข้ามชาติสามารถสื่อสารกับอินทราเน็ตได้

}

#2.ตำแหน่งที่1: เครือข่ายย่อยธุรกิจหลักของไต้หวัน (ส่วนหน้าและแอปพลิเคชัน)

Resource "google_compute_subnetwork" "subnet_asia_ast" {

Name = "subnet-asia-fast-prod"

Ip_cidr_range = "10.0.1.0/24" #แบ่งออกเป็น254 IP อินทราเน็ตที่มีอยู่

Region = var. main_region

Network = google_compute_network.custom_vpc.id

Private_ip_google_access = true # ฉีดวิญญาณ: อนุญาตให้เครื่องอินทราเน็ตเชื่อมต่อกับ API อย่างเป็นทางการของ Google ได้อย่างปลอดภัยโดยไม่ต้องเชื่อมต่อกับ IP สาธารณะ

}

#3.ตำแหน่งที่2: เครือข่ายย่อยการกู้คืนภัยพิบัติระยะไกลของโตเกียว (ฐานข้อมูลหลักและการสำรองข้อมูล)

Resource "google_compute_subnetwork" "subnet_asia_northeast" {

Name = "subnet-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.เชื่อมประตูนิรภัย: สร้างไฟร์วอลล์รักษาความปลอดภัยอินทราเน็ต

Resource "google_compute_firewall" "allow_internal" {

Name = "allow-internal-mesh-traffic"

Network = google_compute_network.custom_vpc.name

Allow {

Protocol = "tcp"

}

Allow {

Protocol = "udp"

}

Allow {

Protocol = "icmp"

}

Source_ranges = ["10.0.0.0/16"] # ปล่อยให้เราเคาะกันภายในส่วนเครือข่ายขนาดใหญ่ของเราเองเท่านั้นและปิดกั้นการตรวจจับเครือข่ายสาธารณะทั้งหมดโดยสิ้นเชิง

Description = "อนุญาตเฉพาะเครือข่ายกระดูกสันหลังระหว่างสมาชิก VPC อินทราเน็ต"

}

#5.การก่อสร้างท่อทะเล: การกำหนดค่าเราเตอร์ Cloud Router

Resource "google_compute_router" "nat_router" {

Name = "prod-nat-router"

Region = var. main_region

เครือข่าย = 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

Region = var. main_region

Nat_ip_allocate_option = "AUTO_ONLY" # Google กำหนด IP แบบคงที่ป้องกันภายนอกโดยอัตโนมัติ

Source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"

}

ขั้นตอนที่สี่: ช่วงเวลาแห่งการเป็นสักขีพยานในการเรียกใช้สายการประกอบคลิกเดียวบนคลาวด์

รหัสเสร็จแล้วต่อไปเราไปที่เทอร์มินัลและดำเนินการ "Trilogy of Clearance" ของ Terraform

ขั้นตอนที่1: การชุมนุมของกองกำลัง (เริ่มต้น)

ในไดเรกทอรีรากของโครงการเทอร์มินัลพิมพ์:

แบช

Terraform init

ในขณะนี้ Terraform จะไปที่สถานีมิเรอร์อย่างเป็นทางการโดยอัตโนมัติเพื่อดาวน์โหลดปลั๊กอิน Provider ที่เชื่อมต่อกับ GCP ลงในเครื่องเพื่อให้คอมพิวเตอร์ในเครื่องมีความสามารถในการควบคุม Google Cloud

ขั้นตอนที่2: การหักตารางทราย (ดูตัวอย่างแผน)

นี่เป็นขั้นตอนที่อยู่ยงคงกระพันที่สุดของ IaC ก่อนที่จะไปที่ก้อนเมฆเพื่อทำลายพื้นดินเรามาที่การฝึกซ้อมทางทหารที่ปลอดภัยอย่างแท้จริง:

แบช

Terraform plan

จ้องที่รายงานเอาต์พุตเทอร์มินัลจะใช้เครื่องหมายบวกสีเขียวแบบเต็มหน้าจอ (

) บอกคุณอย่างชัดเจน:

"หากคุณกดยืนยันฉันจะสร้างผลิตภัณฑ์เครือข่ายใหม่6รายการให้คุณในพื้นหลังการปรับเปลี่ยน0รายการและการทำลาย0รายการ"

ขั้นตอนที่3: เปิดอาวุธหนักอย่างเต็มที่ (ปุ่มเดียวคำรามบนเมฆ)

หลังจากยืนยันว่าภาพวาดนั้นสมบูรณ์แบบแล้วให้ออกคำสั่งสุดท้าย:

แบช

Terraform apply -auto-approve

แถบความคืบหน้าบนหน้าจอเริ่มเลื่อนอย่างบ้าคลั่ง Terraform ใช้ความถี่พร้อมกันที่หนาแน่นมากในพื้นหลังและในขณะเดียวกันก็เริ่มการโทรไปยัง API ของเครือข่ายกระดูกสันหลังทั่วโลกของ Google

โดยปกติจะต้องใช้เท่านั้น

15ถึง30วินาที

, เทอร์มินัลสุดท้าย

บรรทัดของเคล็ดลับทองจะปรากฏขึ้น:

Apply complete! Resources: 6 added, 0 changed, 0 destroyed.

คุณเข้าสู่ระบบในเวลานี้

คอนโซล GCP

เมื่อมองไปที่ตลาดเครือข่ายเครือข่ายระดับอุตสาหกรรมที่สมบูรณ์แบบพร้อมเครือข่ายย่อยที่ใช้งานหลายเครือข่ายข้ามพรมแดนเกตเวย์ NAT ของตัวเองและไฟร์วอลล์แยกได้ยืนอยู่บนเครือข่ายสาธารณะแล้วกระบวนการทั้งหมดไม่เสียเปล่าและทั้งหมดจะถูกทิ้งในเวลาไม่ถึง1นาที

ขั้นตอนที่ห้า: ประวัติการหลีกเลี่ยงเลือดและน้ำตาของการพัฒนา IaC ขนาดใหญ่ระดับองค์กร

โซลูชันระบบอัตโนมัตินี้ใช้งานได้ง่ายมากแต่ในสภาพแวดล้อมการผลิตที่ทำงานพร้อมกันสูงระดับองค์กรจริงการทำงานร่วมกันหลายทีมในฐานะหัวหน้าสถาปนิกคุณต้องเชื่อมข้อกำหนดด้านล่างสองข้อต่อไปนี้ให้กับทีมทันที:

1.ห้ามเก็บไว้ในพื้นที่โดยเด็ดขาด

Terraform.tfstate

(ความหายนะของการทำงานร่วมกันหลายคน)

โดยค่าเริ่มต้น Terraform จะถูกสร้างขึ้นในพื้นที่

Terraform.tfstate

เอกสาร.

เกิดภัยพิบัติ: หาก Zhang San และ Li Si ในทีมเรียกใช้แอพเทอร์ราฟอร์มบนคอมพิวเตอร์ของตนเนื่องจากบัญชีแยกประเภทในเครื่องของทั้งสองคนไม่ซิงโครไนซ์ Terraform จะตัดสินว่าสิ่งที่อีกฝ่ายเขียนเป็น "การบุกรุกที่ผิดกฎหมาย" และทำให้กันและกันคลั่งไคล้ในพื้นหลังทั่วโลกลบเซิร์ฟเวอร์และเครือข่ายที่อีกฝ่ายเพิ่งสร้างขึ้นด้วยคลิกเดียว

โซลูชันมาตรฐานของผู้ผลิตรายใหญ่: ต้องกำหนดค่า "Remote Backend" เพิ่มโค้ดสองสามบรรทัดใน providers.tf และบังคับให้ล็อกบัญชีแยกประเภทสถานะไว้ในที่เก็บข้อมูล GCS ของ Google:

Terraform

terraform {

Backend "gcs" {

Bucket = "my-company-tfstate-bucket" # ล็อคบัญชีแยกประเภทในลิ้นชักที่ปลอดภัยในระบบคลาวด์

Prefix = "terraform/state/network"

}

}

หลังจากการกำหนดค่าตราบใดที่ Zhang San กำลังรันโค้ดถังเก็บข้อมูลบนคลาวด์จะล็อค (ล็อค) โดยอัตโนมัติและ Li Si จะไม่ดำเนินการในเวลาเดียวกันอย่างแน่นอนกำจัดอุบัติเหตุที่น่าเศร้าที่เกิดจากความขัดแย้งของโค้ดหลายทีม

2.ฝึกฝนศิลปะการทำลายตนเองขั้นสูงสุดของ "ฟิสิกส์วิชชา"

เมื่อโครงการสิ้นสุดลงหรือเมื่อสภาพแวดล้อมการพัฒนาและการทดสอบสิ้นสุดลงในวันศุกร์และจำเป็นต้องปิดการถอนเงินชั่วคราวอย่าไปที่คอนโซลเพื่อลบทีละรายการ

คำแนะนำการหยุดการสูญเสียแบบฮาร์ดคอร์: เคาะโดยตรงในเทอร์มินัล:

การทดสอบอัตโนมัติของ Bashterraform ใช้เวลาเพียง30วินาที Terraform จะลบผลิตภัณฑ์เครือข่ายทั้ง6รายการบนภาพวาดออกจากห้องคอมพิวเตอร์ของ Google อย่างหมดจดโดยไม่ทิ้งมุมอับโดยสิ้นเชิง

ยุติการเรียกเก็บเงินราคาสูงที่ไม่ได้ใช้งานในช่วงสิ้นเดือนที่เกิดจากการพลาดเกตเวย์บางอย่าง

สรุป

การใช้เครื่องมือ Terraform เพื่อสร้างสถาปัตยกรรมเครือข่าย GCP โดยอัตโนมัติเป็นชุดสาระสำคัญระดับอุตสาหกรรมหลักอยู่ที่16คำ:

การประกาศรูปวาดการแยกตัวแปรการล็อคระบบคลาวด์การทำลายตัวเองด้วยคลิกเดียว

คุณได้กำจัดสถานะการทำงานและการบำรุงรักษาแบบดั้งเดิมของคอนโซลจุดโชคในอดีตโดยสิ้นเชิงและสร้างความหวาดกลัวให้กับหน้ากากของมนุษย์เปลี่ยนโครงสร้างพื้นฐานทั้งหมดให้เป็นรหัสที่สะอาดซึ่งสามารถควบคุมเวอร์ชันได้ (คำสั่ง Git) ปล่อยให้สถาปัตยกรรมเครือข่ายสามารถคัดลอกและย้อนกลับได้อย่างไร้ขีดจำกัดเช่นซอฟต์แวร์นี่คือท่าทางการควบคุมที่แท้จริงและสง่างามที่สุดของสถาปนิกระบบคลาวด์สมัยใหม่เมื่อพวกเขาเดินทางในทะเล

1
← 返回新闻中心