如何使用 Terraform 在 GCP 上建立外部和內部的區域 IP 地址

閱讀時間約 7 分鐘


raw-image

👨‍💻 簡介

這篇文章將會說明如何快速在 Google Cloud Platform 上使用 Terraform 建立外部和內部的區域 IP 。

前提條件

  • Google Cloud Platform (GCP) 帳號: 確保有一個有效的 GCP 帳號。
  • 安裝 Terraform: 還沒安裝可以參考 Terraform 安裝指南 。
  • 基礎 Terraform 知識: 瞭解基本的 Terraform 命令和概念,如果需要,可參考 Terraform 入門指南

🎯setup

1:建立 provider.tf

定義 GCP Provider 和所需的 Terraform 版本。

terraform {
required_providers {
google = {
source = "hashicorp/google"
version = ">=4.0"
}
}
}

provider "google" {
project = "project-id"
region = "asia-east1"
}

2:建立 main.tf

在此檔案中定義外部和內部 IP 地址資源。

  • External IP
resource "google_compute_address" "external_ip" {
name = "external-region-ip"
region = "asia-east1"
address_type = "EXTERNAL"
network_tier = "PREMIUM"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "external"
}
}
  • Internal IP
resource "google_compute_address" "internal_ip" {
name = "internal-region-ip"
region = "asia-east1"
address_type = "INTERNAL"
subnetwork = "default"
ip = "10.140.0.5"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "internal"
}
}

參數介紹

  • name:ip name
  • region:ip region
  • address_type:建立的網路類型,分為內網 (Internal) 以及外網 (External)
  • network_tier:使用的網路等級,僅限外網使用
  • ip:指定內網 IP
  • labels:使用的 label,有助於資源分類和管理。

3:初始化 Terraform

terraform init

4:執行 Dry Run

terraform plan

5:部署

terraform apply

🛠️模組化

1. 改寫main.tf

resource "google_compute_address" "internal_ip" {
name = var.name
region = var.region
address_type = var.address_type
subnetwork = var.subnetwork
address = var.address
labels = var.labels
}

2. 定義變數

觀察一下哪些欄位是經常替換的,將經常變更的欄位提取為變數以提高靈活性

variable "name" {
description = "The name of the resource"
type = string
}

variable "region" {
description = "The region of the resource"
type = string
}

variable "address_type" {
description = "The address type"
type = string
}

variable "subnetwork" {
description = "The subnetwork"
type = string
}

variable "address" {
description = "The IP address"
type = string
}

variable "labels" {
description = "The labels for the resource"
type = map(string)
}

3. 模組化

建立名為 compute_address的資料夾並建立一份 module.tf

module "google_compute_address" {
source = "../"

name = "internal-region-ip"
region = "asia-east1"
address_type = "EXTERNAL"
subnetwork = "default"
address = "10.140.0.5"
labels = {
"dept" = "devops",
"env" = "dev",
"type" = "internal"
}
}

source的部分會去套用到上一層的 main.tf裡,並使用定義好的變數

4. 部署

進入到compute_address 資料夾進行部署

資源刪除

部署完成後,如果需要清理資源,可執行:

terraform destroy

📚Reference

avatar-img
17會員
83內容數
golang
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
Thumbnail
這是一篇介紹如何使用Google Maps API在網頁上呈現地圖,並進行店家名稱的搜尋的文章。內容包含如何申請Google Cloud Platform的API金鑰、初始化地圖、設定搜尋功能等步驟。文章中提供了部分程式碼範例,並附上圖片說明操作過程。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
本篇文章將描述如何產生GCP的服務帳戶金鑰,並利用該金鑰在DBeaver或是其他透過支援JDBC的軟體連接到BigQuery服務。
Thumbnail
本文介紹了 Google Cloud 的網絡服務層級之間的差異。讀者可以瞭解到 Google Cloud 的 VPC(Virtual Private Cloud)具有全球級的特點,以及 Premium Tier 和 Standard Tier 之間不同的差異。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Networking 網路類 Get the IP address of all interfaces(顯示網路資訊): networkctl status Display all IP addresses of the host(顯示主機名稱相關): hostname -I Enable/d
Thumbnail
本文介紹如何使用AWS WAF Rules規則,透過IP Set(白名單) 以及TW IP的設定,來達成阻擋除臺灣以外的請求。同時也介紹了設定規則所需的條件及真值表。該方法可有效提升網站的安全性。
Thumbnail
本文透過 Cloud Native Taiwan User Group 之 Infra Labs 雲端主機進行深度學習環境部署,包含 Nvidia GPU driver、PyTorch、Jupyter Lab 等,並進行相關安裝過程說明。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下
Thumbnail
這是一篇介紹如何使用Google Maps API在網頁上呈現地圖,並進行店家名稱的搜尋的文章。內容包含如何申請Google Cloud Platform的API金鑰、初始化地圖、設定搜尋功能等步驟。文章中提供了部分程式碼範例,並附上圖片說明操作過程。
Thumbnail
當我們架好站、WebService測試完,接著就是測試區域網路連線啦~
Thumbnail
本篇文章將描述如何產生GCP的服務帳戶金鑰,並利用該金鑰在DBeaver或是其他透過支援JDBC的軟體連接到BigQuery服務。
Thumbnail
本文介紹了 Google Cloud 的網絡服務層級之間的差異。讀者可以瞭解到 Google Cloud 的 VPC(Virtual Private Cloud)具有全球級的特點,以及 Premium Tier 和 Standard Tier 之間不同的差異。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Networking 網路類 Get the IP address of all interfaces(顯示網路資訊): networkctl status Display all IP addresses of the host(顯示主機名稱相關): hostname -I Enable/d
Thumbnail
本文介紹如何使用AWS WAF Rules規則,透過IP Set(白名單) 以及TW IP的設定,來達成阻擋除臺灣以外的請求。同時也介紹了設定規則所需的條件及真值表。該方法可有效提升網站的安全性。
Thumbnail
本文透過 Cloud Native Taiwan User Group 之 Infra Labs 雲端主機進行深度學習環境部署,包含 Nvidia GPU driver、PyTorch、Jupyter Lab 等,並進行相關安裝過程說明。
Thumbnail
這篇文章教你如何搭建Kubernetes Cluster,包括節點安裝前設定、軟體套件安裝、Control-Plane部署和加入運算節點等步驟。在建置之後,作者會分享一些基礎服務的安裝。希望這篇文章對你有所幫助。
Thumbnail
gRPC是一款跨平台、高性能的RPC框架,他可以在任何環境下執行,主要用於後端為服務開發。在用戶端應用程式中,可以像本地物件那樣呼叫遠端伺服器的方法,因此可以創建出分散式應用。 使用 到https://github.com/protocolbuffers/protobuf/releases下