如要在 AlloyDB for PostgreSQL 中為應用程式部署資料庫環境,請建立叢集及其主要執行個體。叢集會管理區域儲存空間和配置設定,主要執行個體則提供讀寫作業所需的運算資源。您可以使用 Google Cloud 控制台、Google Cloud CLI、REST API 或 Terraform 建立叢集和主要執行個體。
事前準備
- 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
- 您使用的 Google Cloud 專案中的虛擬私有雲 (VPC) 網路,必須已設定為私人服務存取 AlloyDB。
- 如果是開發和沙箱工作負載,請考量區域和機型。如要使用 1 個 vCPU 的配置,請務必選取支援該配置的區域。詳情請參閱「使用 1 個 vCPU 時的考量事項」。
必要的角色
您必須具備正確的身分與存取權管理 (IAM) 角色,才能建立第一個 AlloyDB 叢集。
- 您必須在使用的 Google Cloud 專案中具備下列其中一個 IAM 角色:
roles/alloydb.admin(AlloyDB 管理員預先定義的 IAM 角色)roles/owner(擁有者基本 IAM 角色)roles/editor(編輯者基本 IAM 角色)
- 如果您不具備上述任一角色,請向組織管理員要求存取權。
- 此外,您也必須在使用的 Google Cloud 專案中具備
compute.networks.list權限。如要取得這項權限,同時遵循最小權限原則,請要求管理員授予您 Compute 網路使用者 (roles/compute.networkUser) 角色。
建立新的叢集和主要執行個體
控制台
前往「Clusters」(叢集) 頁面。
點選「建立叢集」。
選擇叢集設定。如要進一步瞭解高可用性和基本設定之間的差異,請參閱「什麼是 AlloyDB 執行個體?」。
如果不確定新叢集是否需要讀取集區執行個體,請選擇不含讀取集區的設定。日後可視需要,將讀取集區執行個體新增至叢集。
按一下「繼續」。
在「設定叢集」部分的「叢集 ID」欄位,輸入叢集 ID。
在「Password」(密碼) 欄位中,輸入新叢集的初始密碼。AlloyDB 會在建立叢集時,將提供的密碼指派給
postgres資料庫使用者。選用:如要手動設定
alloydb.iam_authentication旗標,請取消選取「Create an IAM database user」(建立 IAM 資料庫使用者)。詳情請參閱「設定資料庫旗標」。根據預設,系統會選取「建立 IAM 資料庫使用者」,並執行下列操作:
在主要執行個體上啟用
alloydb.iam_authentication旗標。為您建立 IAM 資料庫使用者。
在「資料庫版本」欄位中,選取新 AlloyDB 叢集的主要 PostgreSQL 版本。
選取區域。如果是開發和沙箱工作負載,建議使用 1 個 vCPU 的型態,這項功能適用於特定區域。詳情請參閱「使用 1 個 vCPU 時的考量事項」。
選取網路路徑。
選用:如要將特定 IP 位址範圍套用至這個叢集,而非允許 AlloyDB 選擇 IP 位址範圍,請按照下列步驟操作:
按一下「顯示分配的 IP 範圍選項」。
從「Allocated IP range」(分配的 IP 範圍) 清單中,選取 IP 位址範圍。
如要進一步瞭解這個選項,請參閱「建立具有特定 IP 位址範圍的叢集」。
選用:如要使用客戶自行管理的加密金鑰 (CMEK) 加密這個叢集,而非 Google 代管的加密金鑰,請按照下列額外步驟操作:
按一下「進階加密選項」。
選取「客戶自行管理的加密金鑰 (CMEK)」。
在隨即顯示的選單中,選取客戶自行管理的金鑰。
Google Cloud 控制台會將這份清單限制在與新叢集位於相同 Google Cloud 專案和區域的金鑰。如要使用未列於此清單的金鑰,請按一下「Don't see your key? 輸入金鑰資源名稱,然後在顯示的對話方塊中輸入金鑰的資源名稱。
請注意,如要搭配使用 CMEK 和 AlloyDB,必須進行一些額外設定。詳情請參閱「搭配使用 CMEK 與 AlloyDB」。
按一下「繼續」。
設定主要執行個體:
- 在「Instance ID」(執行個體 ID) 欄位中,輸入主要執行個體的 ID。
選取下列其中一個機器系列:
- C4A (Google Axion 型機器系列)。
- N2 (x86 型機器系列)。這是預設機器系列。
- C4 (x86 型機器系列)。
- Z3 (Intel Xeon 型機器系列)。
選取機型。詳情請參閱「選擇機器類型」。
- 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。
如要進一步瞭解如何使用 C4A Axion 機器系列 (包括 1 個 vCPU 機型),請參閱「使用 C4A Axion 機器系列的注意事項」。
選用:為執行個體設定自訂旗標。請按照下列步驟操作:
- 按一下「新增旗標」。
- 在「New database flag」(新增資料庫旗標) 清單中,選取旗標。
- 提供旗標值。
- 按一下「完成」。
點選「建立叢集」。
gcloud
如要使用 gcloud CLI,您可以安裝並初始化 Google Cloud CLI,也可以使用 Cloud Shell。
您必須先建立 AlloyDB 叢集和主要執行個體,才能開始使用 AlloyDB。
建立叢集
如要建立已啟用私人服務存取權或 Private Service Connect 的叢集,請使用
gcloud alloydb clusters create指令。私人服務存取權
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --network=NETWORKPrivate Service Connect
gcloud alloydb clusters create CLUSTER_ID \ --database-version=POSTGRES_VERSION \ --password=PASSWORD \ --region=REGION_ID \ --project=PROJECT_ID \ --enable-private-service-connect更改下列內容:
CLUSTER_ID:您要建立的叢集 ID。開頭須為小寫英文字母,且只能使用小寫英文字母、數字和連字號。VERSION:叢集資料庫伺服器應相容的 PostgreSQL 主要版本。選擇下列其中一個選項:14,與 PostgreSQL 14 相容15,與 PostgreSQL 15 相容16,與 PostgreSQL 16 相容17:與 PostgreSQL 17 相容,這是預設支援的 PostgreSQL 版本18,與 PostgreSQL 18 相容
PASSWORD:預設postgres使用者的密碼。NETWORK(選用):您為 AlloyDB 設定私人服務存取權的虛擬私有雲網路名稱。如果省略--network旗標,AlloyDB 會使用default網路。如果您使用 Shared VPC 網路,請設為虛擬私有雲網路的完整路徑,例如
projects/cymbal-project/global/networks/shared-vpc-network。--enable-private-service-connect(選用):設為啟用 Private Service Connect,做為叢集及其執行個體的連線方法。REGION_ID:要放置叢集的區域。
PROJECT_ID:要放置叢集的專案 ID。
這個指令會啟動長時間執行的作業,並傳回作業 ID。
選用:如要將特定 IP 位址範圍套用至這個叢集,而非允許 AlloyDB 選擇 IP 位址範圍,請提供下列引數:
--allocated-ip-range-name=RANGE將
RANGE替換為您要這個叢集用於私人服務存取權的 IP 位址範圍名稱。如要進一步瞭解這個選項,請參閱「建立具有特定 IP 位址範圍的叢集」。
選用:如要使用客戶自行管理的加密金鑰 (CMEK) 加密這個叢集,而非預設的 Google 代管加密,請提供下列引數:
--kms-key=KEY_ID \ --kms-keyring=KEYRING_ID \ --kms-location=LOCATION_ID \ --kms-project=PROJECT_ID更改下列內容:
KEY_ID:要使用的 CMEK 金鑰 ID。KEYRING_ID:金鑰環的 ID。LOCATION_ID:金鑰環區域的 ID,必須與叢集區域相同。PROJECT_ID:金鑰環專案的 ID。
確認作業成功。
gcloud alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_ID將
OPERATION_ID替換為上一個步驟傳回的作業 ID。
建立主要叢集後,您必須建立主要執行個體。
建立主要執行個體
如要建立主要執行個體,請使用 gcloud alloydb instances create 指令。
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 \
--allowed-psc-projects=ALLOWED_PROJECT_LIST更改下列內容:
INSTANCE_ID:要建立的執行個體 ID。開頭須為小寫英文字母,可以使用小寫英文字母、數字和連字號。REGION_ID:執行個體所在的區域。CLUSTER_ID:先前建立的叢集 ID。PROJECT_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。ALLOWED_PROJECT_LIST:(選用) 如果您使用 Private Service Connect,ALLOWED_PROJECT_LIST是以逗號分隔的專案 ID 清單,或您要允許存取執行個體的專案編號。
Terraform
建立叢集和主要執行個體
如要建立叢集及其主要執行個體,請使用 Terraform 資源。
下列程式碼片段會根據 AlloyDB 執行個體完整範例,建立叢集和主要執行個體:
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
}
database_version = "POSTGRES_17"
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:
- 啟動 Cloud Shell。
設定要套用 Terraform 設定的預設 Google Cloud 專案。
每個專案只需執行這個指令一次,而且可以在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄,也稱為「根模組」。
- 在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須是 TF 檔案,例如
main.tf。在本文件中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- 將程式碼範例複製到新建立的
main.tf。您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。 - 查看
main.tf檔案,並修改範例參數,以便套用至您的環境。 - 儲存變更。
- 初始化 Terraform。每個目錄只需執行一次。
選用:如要使用最新版 Google 供應商,請加入terraform init
-upgrade選項:terraform init -upgrade
套用變更
- 檢查設定,確認 Terraform 更新符合預期:
視需要修正設定。terraform plan
- 執行下列指令,並在提示中輸入
yes,套用 Terraform 設定: 等待 Terraform 顯示terraform apply
Apply complete!訊息。 - 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的使用者介面中,前往資源頁面,確認 Terraform 已建立或更新資源。
REST v1
建立叢集
這個範例會建立叢集。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.create」。如要瞭解叢集設定,請參閱「查看叢集和執行個體設定」。
叢集 ID 會對外顯示,因此請勿在 ID 中加入私密或個人識別資訊。叢集名稱不必包含專案 ID。系統會在適當情況下自動執行這項操作,例如在記錄檔中。
如要傳送要求,請將要求主體儲存在名為 cluster_request.json 的檔案中:
{
"databaseVersion": "<var>DATABASE_VERSION</var>",
"initialUser": {
"user": "<var>INITIAL_USERNAME</var>",
"password": "<var>INITIAL_USER_PASSWORD</var>"
},
"labels": {
"test": "alloydb-cluster-full"
}
}
請依指示取代下列項目:
DATABASE_VERSION:資料庫版本的列舉字串,例如POSTGRES_17。INITIAL_USERNAME:預設 postgres 使用者的使用者名稱。INITIAL_USER_PASSWORD:預設 postgres 使用者的密碼。
請使用下列 HTTP 方法和網址:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID
請依指示取代下列項目:
PROJECT_ID:要建立叢集的專案 ID。LOCATION_ID:叢集所在區域的 ID。CLUSTER_ID:您建立的叢集 ID。叢集 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=CLUSTER_ID -d @cluster_request.json
建立主要執行個體
這個範例會建立主要執行個體。如需這項呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.create」。如要瞭解叢集設定,請參閱「查看叢集和執行個體設定」。
叢集 ID 會對外顯示,因此請勿在其中加入私密或個人識別資訊。您不必在叢集名稱中加入專案 ID,因為系統會在適當情況下自動加入,例如在記錄檔中。
如要傳送要求,請將下列要求主體儲存在名為 instance_request.json 的檔案中。
{
"instance_type": "PRIMARY",
"machine_config": {
"cpu_count": VCPU_COUNT
}
}
請替換下列項目:
VCPU_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
複製運作中的叢集
如要建立有效叢集的複製版本,其中包含所有來源叢集資料的副本,並在相同區域中執行,請對該叢集執行時間點復原。指定時間點時,可以選擇非常接近當下的時間,例如當前分鐘的第一秒。
這項程序只會將來源叢集的資料複製到複製項目,不會複製來源叢集的任何設定。如要使用 CMEK 加密複製資料,即使來源叢集的資料已使用 CMEK 加密,您仍須在時間點復原指令中指定 CMEK 詳細資料。建立新叢集後,您需要新增執行個體、資料庫旗標、備份排程,以及其他必要設定,以符合需求。
透過這種方式建立的叢集會獨立於來源存在,且在初始複製完成後,其資料與來源叢集的資料沒有任何關係。如要建立次要叢集,自動追蹤及複製來源叢集中的資料變更,請參閱「關於跨區域複製」。
建立具有特定 IP 位址範圍的叢集
AlloyDB 使用私人服務連線,允許叢集的內部資源彼此通訊。建立叢集前,虛擬私有雲網路必須至少包含一個已設定私人服務存取連線的 IP 位址範圍。
使用 C4A Axion 型機器系列的注意事項
AlloyDB 提供 C4A 機器系列,採用 Google 自訂的 Arm 架構處理器 Google Axion。C4A 虛擬機器 (VM) 提供預先定義的設定,可選擇 1、2、4、8、16、32、48、64 和 72 個 vCPU,最多可搭載 576 GB 的 DDR5 (Double Data Rate 5) 記憶體。
選擇 C4A 時,請注意下列事項:
- 如要將現有 N2 執行個體切換為 C4A 執行個體,請使用 Google Cloud 控制台、gcloud CLI、Terraform 或 API 修改目前執行個體的
machine_type。 - 請勿刪除 N2 執行個體,並在同一個叢集中建立新的 C4A 執行個體。
C4A 支援下列區域:
asia-east1asia-southeast1europe-west1europe-west2europe-west3europe-west4us-central1us-east1us-east4
使用 1 個 vCPU 機型的注意事項
AlloyDB 提供 1 個 vCPU 的 C4A 類型,僅供開發和測試之用。如為實際工作環境工作負載,請選擇兩個以上的 vCPU。
選擇 1 個 vCPU 時,請注意下列限制:
- 1 個 vCPU 搭配 8 GB 記憶體,不支援超高速快取。
- 如果開發和沙箱環境的資料庫較小 (數十 GB),建議採用 1 個 vCPU 的設定。如果是較大的資料庫和正式環境工作負載,建議使用 2 個以上的 vCPU。
- 您可以設定高可用性 (HA),但我們不提供運作時間服務水準協議。
- 如要瞭解哪些區域可部署 1 個 vCPU,請參閱「支援 C4A 的區域」。