建立主要執行個體

本頁說明如何在 AlloyDB 叢集中建立主要執行個體。

事前準備

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

    如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。

建立 AlloyDB 主要執行個體

主控台

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

    前往「Clusters」(叢集)

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

  3. 在「總覽」頁面中,前往「叢集中的執行個體」,然後按一下「建立主要執行個體」

  4. 設定主要執行個體:

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

      • C4A (以 Google Axion 為基礎的機器系列) (預先發布版)
      • N2 (x86 型機器系列)。這是預設機器系列。
    4. 選取機型。

      • C4A 支援 1、4、8、16、32、48、64 和 72 種機器類型或形狀。
      • N2 支援 2、4、8、16、32、64、96 和 128 機器類型或形狀。

      如要進一步瞭解如何使用 C4A Axion 型機器系列 (包括 1 個 vCPU 的機器類型),請參閱「使用 C4A Axion 型機器系列時的注意事項」。

    5. 選用:如要透過公開網際網路連結應用程式和用戶端,請勾選「公開 IP 連線能力」下方的「啟用公開 IP」方塊。啟用公開 IP 可能需要額外設定,才能確保連線安全無虞。詳情請參閱使用公開 IP 連線一文。

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

    6. 選用:如要啟用及使用代管連線集區,請勾選「代管連線集區」下方的「啟用代管連線集區」方塊。詳情請參閱「設定受管理的連線集區」。

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

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

      1. 根據預設,AlloyDB 執行個體會要求所有連線都使用 SSL 加密。如要允許非 SSL 連線,請取消勾選「僅允許 SSL 連線」核取方塊。
      2. 如要規定連線至執行個體的所有資料庫連線都必須使用 AlloyDB Auth Proxy 或 Google 提供的安全連接器程式庫,請選取「需要連接器」
  5. 點選「建立執行個體」

gcloud

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

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

gcloud alloydb instances create INSTANCE_ID \
    --instance-type=PRIMARY \
    --cpu-count=CPU_COUNT \
    --machine-type=MACHINE_TYPE \
    --availability-type=AVAILABILITY \
    --region=REGION_ID \
    --cluster=CLUSTER_ID \
    --project=PROJECT_ID
  • INSTANCE_ID:您要建立的執行個體 ID。 只能使用小寫英文字母、數字和連字號,而且開頭須為小寫英文字母。
  • CPU_COUNT:您希望執行個體擁有的 N2 vCPU 數量。預設值為 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:部署 N2 機器時,這個參數為選用。如要部署 C4A Axion 型機器系列 (預先發布版),或在 C4A 和 N2 機器之間遷移,請選擇這個參數並使用下列值。

    同時使用 MACHINE_TYPECPU_COUNT 時,CPU_COUNTMACHINE_TYPE 中的值必須相符,否則會發生錯誤。

    如果是以 Axion 為基礎的 C4A 機型系列,請選擇具有下列值的機型:

    • c4a-highmem-1
    • c4a-highmem-4-lssd
    • c4a-highmem-8-lssd
    • c4a-highmem-16-lssd
    • c4a-highmem-32-lssd
    • c4a-highmem-48-lssd
    • c4a-highmem-64-lssd
    • c4a-highmem-72-lssd

    如要部署 C4A (4 個以上 vCPU),請使用 lssd 後置字元,啟用超快速快取。

    如要進一步瞭解如何使用 C4A Axion 型機器系列 (包括 1 個 vCPU 的機器類型),請參閱「使用 C4A Axion 型機器系列時的注意事項」。

    如為 N2 x86 架構的機器系列,請使用下列值:

    • N2-highmem-2
    • N2-highmem-4
    • N2-highmem-8
    • N2-highmem-16
    • N2-highmem-32
    • N2-highmem-64
    • N2-highmem-96
    • N2-highmem-128

  • AVAILABILITY:這個執行個體是否應具備高可用性 (HA),且節點位於多個可用區。有效值包括:

    • REGIONAL:建立 HA 執行個體,其中包含個別的現用和待命節點,並在這兩個節點之間自動容錯移轉。這是預設值,適合用於正式環境。
    • ZONAL:建立基本執行個體,只包含一個節點,且沒有自動容錯移轉功能。
  • REGION_ID:您希望執行個體所在的區域。例如:us-central1

  • CLUSTER_ID:要放置執行個體的叢集 ID。

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

如要將特定 IP 位址範圍套用至這個執行個體,請提供下列引數,不要讓 AlloyDB 選擇 IP 位址範圍:

      --allocated-ip-range-override=OVERRIDE_RANGE_NAME

OVERRIDE_RANGE_NAME 替換為您希望這個執行個體用於私人服務存取權的 IP 位址範圍名稱,例如:google-managed-services-default。範圍名稱必須符合 RFC 1035。具體來說,名稱長度必須介於 1 至 63 個字元之間,且符合規則運算式 [a-z]([-a-z0-9]*[a-z0-9])?

如要進一步瞭解這個選項,請參閱「建立具有特定 IP 位址範圍的執行個體」。

根據預設,新執行個體會要求所有連線都使用 SSL 加密。如要允許非安全資料傳輸層 (SSL) 連線至執行個體,請在指令中新增 --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED 旗標:

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

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

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

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

gcloud alpha alloydb instances create INSTANCE_ID \
  --instance-type=PRIMARY \
  --cpu-count=CPU_COUNT \
  --region=REGION_ID \
  --cluster=CLUSTER_ID \
  --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
  }

  network_config {
    allocated_ip_range_override = google_compute_global_address.private_ip_alloc_2.name
  }

  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
    allocated_ip_range = google_compute_global_address.private_ip_alloc_1.name
  }

  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-address-range-1"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 16
  network       = google_compute_network.default.id
}

resource "google_compute_global_address" "private_ip_alloc_2" {
  name          =  "alloydb-address-range-2"
  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_1.name,google_compute_global_address.private_ip_alloc_2.name]
}

準備 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
    <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 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。

REST v1

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

請勿在叢集 ID 中加入敏感資訊或個人識別資訊,因為外部使用者可以看見此 ID。 叢集名稱不需要包含專案 ID。系統會在適當地方 (例如在記錄檔中) 自動加入。

使用任何要求資料之前,請先替換以下項目:

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

JSON 要求內文如下所示:

{
  instanceId   = "INSTANCE_ID"
  instanceType = "PRIMARY"
  machineConfig {
    cpuCount = vCPU_COUNT
  }
  databaseFlags = {
    "key1" : "value1",
    "key2" : "value2"
  }
}

如要傳送要求,請將要求主體儲存在名為 request.json 的檔案中,然後使用下列 POST 要求:

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

後續步驟