1. 總覽
上次更新時間:2020 年 7 月 23 日
什麼是 Cloud Spanner?
Google Cloud Spanner 是遍及全球且符合 ACID 標準的資料庫,可自動執行備用資源、資料分割和交易處理,因此您可以根據使用模式快速調度資源,確保產品取得成功。
主要功能
- 專為規模擴充所設計的關聯資料庫:具備關聯資料庫的所有特點,包括結構定義、SQL 查詢和 ACID 交易,都已通過嚴苛檢驗,且可以隨時擴充至全球規模。
- 99.999% 可用性:Cloud Spanner 針對多區域執行個體提供領先業界的 99.999% 可用性,停機時間比可用性 99.99% 的服務還少 10 倍,並依據跨區域與多區域設定執行透明化的同步複製服務。
- 自動分片:Cloud Spanner 會根據資料的要求負載和大小自動執行資料分割,藉此達到最佳效能。因此,您不必費時擔心如何擴充資料庫,只需專注於拓展業務規模。
課程內容
- 如何使用 Google Cloud Terraform 供應商。
- 使用 Terraform 建立 Cloud Spanner 執行個體和資料庫。
- 使用 Terraform 修改 Cloud Spanner 資源。
- 使用 Terraform 刪除 Cloud Spanner 資源。
2. 設定和需求
自修實驗室環境設定
如果您沒有 Google 帳戶 (Gmail 或 Google 應用程式),請先建立帳戶。登入 Google Cloud Platform 主控台 ( console.cloud.google.com),然後建立新專案:


請記住專案 ID,這是所有 Google Cloud 專案中不重複的名稱 (上述名稱已遭占用,因此不適用於您,抱歉!)。本程式碼研究室稍後會將其稱為 PROJECT_ID。
接著,您需要在 Cloud 控制台中啟用帳單,才能使用 Google Cloud 資源。
完成本程式碼研究室的費用不應超過數美元,但如果您決定使用更多資源,或是將資源繼續執行 (請參閱本文件結尾的「清除」一節),則可能會增加費用。
Google Cloud Platform 新使用者享有價值 $300 美元的免費試用期。
驗證
如果您尚未安裝 gcloud 指令列工具,請先完成安裝作業。安裝 gcloud 後,請在終端機中執行下列指令,啟用應用程式預設憑證:
$ gcloud auth application-default login
Terraform
如果您先前未安裝 Terraform,請安裝 Terraform。
3. Google Cloud Terraform 供應商
Google Cloud Terraform Provider 提供四種 Cloud Spanner 資源:
- google_spanner_instance
- google_spanner_database
- google_spanner_instance_iam
- google_spanner_database_iam
在本程式碼研究室中,我們將建立及管理 Cloud Spanner 執行個體和資料庫。
環境
在開發環境中,為 Terraform 設定檔建立新目錄。
$ mkdir ~/terraform-spanner $ cd ~/terraform-spanner
接著,建立名為「main.tf」的檔案,並加入下列內容,然後將 PROJECT_ID 換成您自己的 Google Cloud 專案 ID:
$ cat >> main.tf <<'EOF'
provider "google" {
project = "PROJECT_ID"
}
EOF
在本程式碼研究室的其餘部分,我們將修改這個檔案並套用變更。
4. 建立執行個體和資料庫
使用下列內容修改 main.tf,新增 Cloud Spanner 執行個體:
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 3
}
執行下列指令來套用變更:
$ terraform apply # ... Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value: yes # ... Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
套用變更後,您可以在 Google Cloud 控制台中看到執行個體。請注意,建立執行個體後,就無法修改區域設定。

建立執行個體後,我們會在後續步驟中建立資料庫。使用下列內容修改 main.tf:
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 3
}
resource "google_spanner_database" "database" {
instance = google_spanner_instance.main.name
name = "my-first-database"
}
再次使用下列指令套用變更:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
成功後,my-first-database 會顯示在執行個體下方:

5. 修改執行個體
如先前章節所述,並非所有執行個體屬性都能修改。但您可以增加/減少節點數量,藉此調整執行個體使用的資源。建立的執行個體有 3 個節點。修改 main.tf 檔案,將節點數量增加至 5 個:
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 5
}
resource "google_spanner_database" "database" {
instance = google_spanner_instance.main.name
name = "my-first-database"
}
接下來請套用變更:
$ terraform apply # ... Apply complete! Resources: 0 added, 1 changed, 0 destroyed.
成功後,執行個體就會使用 5 個節點。
6. 刪除資料庫
如果不再需要資料庫,可以永久刪除。只要從 main.tf 移除資料庫,然後套用變更即可。
provider "google" {
project = "PROJECT_ID"
}
resource "google_spanner_instance" "main" {
config = "regional-us-central1"
display_name = "first-terraform-instance"
num_nodes = 5
}
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
成功刪除後,資料庫就會永久刪除。
7. 刪除執行個體
如果不再需要執行個體,可以永久刪除。只要從 main.tf 移除執行個體,然後套用變更即可。
provider "google" {
project = "PROJECT_ID"
}
$ terraform apply # ... Apply complete! Resources: 0 added, 0 changed, 1 destroyed.
成功後,執行個體就會永久刪除。
8. 恭喜!
您已使用 Terraform 建立、修改及刪除 Cloud Spanner 資源。
涵蓋內容
- 如何使用 Google Cloud Terraform 供應商。
- 使用 Terraform 建立 Cloud Spanner 執行個體和資料庫。
- 使用 Terraform 修改 Cloud Spanner 資源。
- 使用 Terraform 刪除 Cloud Spanner 資源。
瞭解詳情
- 查看 Google Cloud Spanner 說明文件。
- 請參閱 Google Cloud Spanner Terraform 資源。
- 瞭解如何為執行個體和資料庫設定 IAM 規則。