建立主要執行個體

如要支援 AlloyDB for PostgreSQL 叢集中的讀取和寫入工作負載,您可以使用 Google Cloud 控制台、Google Cloud CLI、Terraform 或 AlloyDB API 建立主要執行個體。主要執行個體提供運算資源,可處理交易,並協調叢集的讀取和寫入作業。

事前準備

  • 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
  • 您必須在使用的 Google Cloud 專案中具備下列其中一個 IAM 角色:
    • roles/alloydb.admin (AlloyDB 管理員預先定義的 IAM 角色)
    • roles/owner (擁有者基本 IAM 角色)
    • roles/editor (編輯者基本 IAM 角色)

    如果您不具備上述任一角色,請向組織管理員要求存取權。

建立 AlloyDB 主要執行個體

控制台

  1. 前往「Clusters」(叢集) 頁面。

    前往叢集

  2. 在「Resource Name」(資源名稱) 欄中,按一下叢集。

  3. 在「Overview」(總覽) 頁面中,前往「Instances in your cluster」(叢集中的執行個體),然後按一下「Create primary instance」(建立主要執行個體)。

  4. 設定主要執行個體:

    1. 在「Instance ID」(執行個體 ID) 欄位中,輸入主要執行個體的 ID。
    2. 在「可用區可用性」下方,選取下列任一選項:
      1. 如要建立具備自動容錯移轉功能的高可用性正式環境執行個體,請選取「Multiple zones (Highly available)」(多可用區 (可用性高))。
      2. 如要建立不需要高可用性的基本執行個體,請選取「Single zone」(單一可用區)。
    3. 選取下列其中一個機器系列:

      • C4A (Google Axion 型機器系列)
      • N2 (x86 型機器系列)。這是預設機器系列。
      • C4 (x86 型機器系列)
      • Z3 (Intel Xeon 型機器系列)
    4. 選取機型。

      • C4A 支援 1、2、4、8、16、32、48、64 和 72 個 vCPU
      • N2 支援 2、4、8、16、32、64、96 和 128 個 vCPU
      • C4 支援 4、8、16、24、32、48、96、144、192 和 288 個 vCPU
      • Z3 支援 8、14、16、22、32、44 和 88 個 vCPU
    5. 選用:如要透過公開網際網路連結應用程式和用戶端,請勾選「公開 IP 連線能力」下方的「啟用公開 IP」方塊。啟用公開 IP 可能需要額外設定,才能確保連線安全無虞。詳情請參閱「使用公開 IP 連線」。

      私人 IP 預設為啟用。詳情請參閱「啟用私人服務存取權」。

    6. 選用:如要啟用代管連線集區,請選取「Managed connection pool」(代管連線集區) 下方的「Enable managed connection pool」(啟用代管連線集區)。詳情請參閱「設定代管連線集區」。

    7. 選用:如要為執行個體設定自訂旗標,請展開「Advanced configuration options」(進階設定選項),然後為每個旗標執行下列操作:

      1. 按一下「新增旗標」。
      2. 從「New database flag」(新增資料庫旗標) 清單中選取旗標。
      3. 提供旗標值。
      4. 按一下「完成」。
    8. 選用:如要設定執行個體的 SSL 或連接器需求,請展開「Advanced configuration options」(進階設定選項),然後執行下列操作:

      1. 根據預設,AlloyDB 執行個體會要求所有連線使用 SSL 加密。如要允許非 SSL 連線,請取消勾選「Only allow SSL connections」(僅允許 SSL 連線) 核取方塊。
      2. 如要要求所有連至執行個體的資料庫連線,都必須使用 AlloyDB Auth Proxy 或 Google 提供的安全連接器程式庫,請選取「Enforce mTLS via AlloyDB connectors」(強制透過 AlloyDB 連接器採用 mTLS)。
  5. 點選「建立執行個體」。

gcloud

如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。

使用 gcloud alloydb instances create 指令建立主要執行個體。

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --cpu-count=CPU_COUNT \
    --machine-type=MACHINE_TYPE \
    --project=PROJECT_ID
  • INSTANCE_ID:您要建立的執行個體 ID。開頭必須是小寫英文字母,可以使用小寫英文字母、數字和連字號。
  • AVAILABILITY:這個執行個體是否應具備高可用性 (HA),且節點位於多個可用區。有效值包括:
    • REGIONAL:建立高可用性執行個體,其中包含獨立的使用中節點和待命節點,並在兩者之間自動容錯移轉。這是預設值,適用於正式環境。
    • ZONAL:建立基本執行個體,其中只有一個節點,且不含自動容錯移轉功能。
  • REGION_ID:要放置執行個體的區域。例如:us-central1。
  • CLUSTER_ID:要放置執行個體的叢集 ID。
  • CPU_COUNT:執行個體所需的 vCPU 數量。

    • 您必須指定 cpu_count 或 machine_type。
    • 如果只提供 cpu_count,系統會建立 N2 執行個體,並採用下列規格:
      • 2:2 個 vCPU,16 GB RAM
      • 4:4 個 vCPU,32 GB RAM
      • 8:8 個 vCPU,64 GB RAM
      • 16:16 個 vCPU,128 GB RAM
      • 32:32 個 vCPU,256 GB RAM
      • 64:64 個 vCPU,512 GB RAM
      • 96:96 個 vCPU,768 GB RAM
      • 128:128 個 vCPU,864 GB RAM
    • 如果同時提供 machine_type 和 cpu_count,cpu_count 值必須與 machine_type 中指定的 vCPU 數量一致。舉例來說,如果 machine_type 為 n2-highmem-4,則必須將 cpu_count 設為 4。
  • MACHINE_TYPE:從支援的機型清單中選取,例如 n2-highmem-4、c4-highmem-4-lssd 或 c4a-highmem-4-lssd。詳情請參閱「選擇 AlloyDB 機型」。

    同時使用 machine_type 和 cpu_count 時,cpu_count 和 machine_type 中的值必須相符。舉例來說,如果 machine_type 為 n2-highmem-4,則必須將 cpu_count 設為 4。

  • PROJECT_ID:叢集所在專案的 ID。

根據預設,新執行個體會要求所有連線使用 SSL 加密。如要允許非 SSL 連線至執行個體,請在指令中加入 --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED 旗標:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --project=PROJECT_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED

如要強制用戶端與 AlloyDB 執行個體之間透過 Auth Proxy 或其他使用 Google 提供連接器程式庫的應用程式建立安全連線,請在指令中加入 --require-connectors 旗標:

gcloud alloydb instances create INSTANCE_ID \
 --instance-type=PRIMARY \
 --region=REGION_ID \
 --cluster=CLUSTER_ID \
 --cpu-count=CPU_COUNT \
 --machine-type=MACHINE_TYPE \
 --project=PROJECT_ID \
 --require-connectors

如要在 AlloyDB 執行個體啟用代管連線集區,請在 gcloud alloydb instances create 指令中加入 --enable-connection-pooling 旗標:

gcloud alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --cpu-count=CPU_COUNT \
  --machine-type=MACHINE_TYPE \
  --project=PROJECT_ID \
  --enable-connection-pooling

您也可以建立已啟用 Private Service Connect 的 AlloyDB 執行個體。如要瞭解如何為已啟用 Private Service Connect 的叢集建立主要執行個體,請參閱「建立 AlloyDB 執行個體」。

Terraform

建立執行個體

如要在資料庫叢集內建立執行個體,請使用 Terraform 資源。

resource "google_alloydb_instance" "default" {
  cluster       = google_alloydb_cluster.default.name
  instance_id   = "alloydb-instance"
  instance_type = "PRIMARY"

  machine_config {
    cpu_count = 2
  }

  depends_on = [google_service_networking_connection.vpc_connection]
}

resource "google_alloydb_cluster" "default" {
  cluster_id = "alloydb-cluster"
  location   = "us-central1"
  network_config {
    network = google_compute_network.default.id
  }

  initial_user {
    password = "alloydb-cluster"
  }
}

data "google_project" "project" {}

resource "google_compute_network" "default" {
  name = "alloydb-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          =  "alloydb-cluster"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_service_networking_connection" "vpc_connection" {
  network                 = google_compute_network.default.id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_alloc.name]
}

這個範例會建立 N2 執行個體。如需其他支援的機器類型清單 (例如 n2-highmem-4、c4-highmem-4-lssd 或 c4a-highmem-4-lssd),請參閱「選擇 AlloyDB 機器類型」。

準備 Cloud Shell

如要在 Google Cloud 專案中套用 Terraform 設定,請按照下列步驟準備 Cloud Shell:

  1. 啟動 Cloud Shell。
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    每個專案只需執行這個指令一次,而且可以在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄,也稱為「根模組」。

  1. 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須是 TF 檔案,例如 main.tf。在本文件中,這個檔案稱為 main.tf。
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 將程式碼範例複製到新建立的 main.tf。您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. 在 terraform-docs-samples 目錄中,前往 alloydb 目錄。
    cd terraform-docs-samples/alloydb
  4. 將程式碼範例複製到新建立的 main.tf。
    cp SAMPLE_FILE main.tf
    將 <var>SAMPLE_FILE</var> 替換為要複製的範例檔案名稱,例如 main.tf。
  5. 請查看並修改範例參數,以便套用至您的環境。
  6. 儲存變更。
  7. 初始化 Terraform。每個目錄只需執行一次。
    terraform init
    選用:如要使用最新版 Google 供應商,請加入 -upgrade 選項:
    terraform init -upgrade

套用變更

  1. 檢查設定,確認 Terraform 更新符合預期:
    terraform plan
    視需要修正設定。
  2. 執行下列指令,並在提示中輸入 yes,套用 Terraform 設定:
    terraform apply
    等待 Terraform 顯示 Apply complete! 訊息。

開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。

REST v1

建立執行個體

這個範例會建立主要執行個體。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.create」。如要瞭解叢集設定,請參閱「查看叢集和執行個體設定」。

叢集 ID 會對外顯示,因此請勿在其中加入私密或個人識別資訊。您不必在叢集名稱中加入專案 ID,因為系統會在適當的位置 (例如記錄檔) 自動加入。

如要傳送要求,請將要求主體儲存在名為 instance_request.json 的檔案中。

{
  "instance_type": "PRIMARY",
  "machine_config": {
    "cpu_count": CPU_COUNT
  }
}

請替換下列項目:

  • CPU_COUNT:要建立的執行個體上可見的 CPU 核心數量。

上述範例會建立 N2 執行個體,規格如下:

  • 2:2 個 vCPU,16 GB RAM
  • 4:4 個 vCPU,32 GB RAM
  • 8:8 個 vCPU,64 GB RAM
  • 16:16 個 vCPU,128 GB RAM
  • 32:32 個 vCPU,256 GB RAM
  • 64:64 個 vCPU,512 GB RAM
  • 96:96 個 vCPU,768 GB RAM
  • 128:128 個 vCPU,864 GB RAM
"machine_config": {
  "machine_type": "MACHINE_TYPE"
}

將 MACHINE_TYPE 替換為支援的機器類型,例如 n2-highmem-4、c4-highmem-4-lssd 或 c4a-highmem-4-lssd。如要進一步瞭解支援的機型,請參閱「選擇 AlloyDB 機型」。

請使用下列 HTTP 方法和網址:

POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID

請依指示取代下列項目:

  • PROJECT_ID:叢集所在專案的 ID。
  • LOCATION_ID:叢集所在區域的 ID。
  • CLUSTER_ID:您建立的叢集 ID。ID 開頭須為小寫英文字母,且只能使用小寫英文字母、數字和連字號。
  • INSTANCE_ID:要建立的主要執行個體名稱。

您可以使用 curl 執行要求,如以下範例所示:

curl -X POST   -H "Authorization: Bearer $(gcloud auth print-access-token)"   -H "Content-Type: application/json"   https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID   -d @instance_request.json

後續步驟