本頁說明如何建立 AlloyDB 叢集及其主要執行個體。
事前準備
- 您使用的 Google Cloud 專案必須啟用 AlloyDB 存取權。
- 您使用的 Google Cloud 專案中,虛擬私有雲網路必須已設定 AlloyDB 的私人服務存取權。
- 您必須在使用的Google Cloud 專案中具備下列其中一個 IAM 角色:
roles/alloydb.admin
(AlloyDB 管理員預先定義的 IAM 角色)roles/owner
(擁有者基本 IAM 角色)roles/editor
(編輯者基本 IAM 角色)
- 如果您不具備上述任一角色,請與機構管理員聯絡,並要求存取權。
- 此外,您還必須在使用的Google Cloud 專案中具備
compute.networks.list
權限。如要遵循最小權限原則並取得這項權限,請要求管理員授予您「Compute 網路使用者」角色 (roles/compute.networkUser
)。 - 開發和沙箱工作負載的區域和機型。如要使用 1 個 vCPU 的型態,請務必選取支援該型態的區域。詳情請參閱使用 1 個 vCPU 時的注意事項。
建立新叢集和主要執行個體
主控台
前往「Clusters」(叢集) 頁面。
按一下 [Create cluster] (建立叢集)。
選擇叢集設定。如要進一步瞭解高可用性和基本設定之間的差異,請參閱「節點和執行個體」。
如果不確定新叢集是否需要讀取集區執行個體,請選擇沒有讀取集區的設定。之後可以視需要為叢集新增讀取集區執行個體。
按一下「繼續」。
在「設定叢集」部分,於「叢集 ID」欄位中輸入叢集的 ID。
在「Password」(密碼) 欄位中,輸入新叢集的初始密碼。AlloyDB 會在建立叢集時,將提供的密碼指派給
postgres
資料庫使用者。選用:如要手動設定
alloydb.iam_authentication
旗標,請取消選取「建立身分與存取權管理資料庫使用者」。 詳情請參閱「編輯執行個體」。系統會預設選取「建立 IAM 資料庫使用者」,並執行下列操作:
在主要執行個體上啟用
alloydb.iam_authentication
旗標。為您建立 IAM 資料庫使用者。
在「資料庫版本」欄位中,選取叢集資料庫伺服器要相容的 PostgreSQL 主要版本。
選取所需區域。如果是開發和沙箱工作負載,建議使用 1 個 vCPU 的形狀,這項功能適用於特定區域。詳情請參閱使用 1 個 vCPU 時的考量事項。
選取網路路徑。
選用:如要將特定 IP 位址範圍套用至這個叢集,而不是允許 AlloyDB 選擇 IP 位址範圍,請按照下列步驟操作:
按一下「顯示分配的 IP 範圍選項」。
從「已分配的 IP 範圍」清單中選取 IP 位址範圍。
如要進一步瞭解這個選項,請參閱「建立具有特定 IP 位址範圍的叢集」。
選用步驟:如要使用客戶自行管理的加密金鑰 (CMEK) 加密這個叢集,而非 Google 管理的加密金鑰,請按照下列額外步驟操作:
按一下「進階加密選項」。
選取「客戶自行管理的加密金鑰 (CMEK)」。
在隨即顯示的選單中,選取客戶管理的金鑰。
Google Cloud 控制台會將這份清單限制為與新叢集位於 Google Cloud 相同專案和區域的金鑰。如要使用不在清單中的金鑰,請按一下「找不到您的金鑰嗎?輸入金鑰資源名稱,然後在隨即顯示的對話方塊中輸入金鑰的資源名稱。
請注意,在 AlloyDB 中使用 CMEK 需要進行一些額外設定。詳情請參閱「搭配使用 CMEK 與 AlloyDB」。
按一下「繼續」。
設定主要執行個體:
- 在「Instance ID」(執行個體 ID) 欄位中,輸入主要執行個體的 ID。
選取下列其中一個機器系列:
- C4A (Google Axion 型機器系列)
- N2 (x86 型機器系列)。這是預設機器系列。
選取機型。
- C4A 支援 1、4、8、16、32、48、64 和 72 種機器類型或形狀。
- N2 支援 2、4、8、16、32、64、96 和 128 個機器類型或形狀。
如要進一步瞭解如何使用 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=NETWORK
Private 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 相容 (這是支援的預設 PostgreSQL 版本)17
,以便與 PostgreSQL 17 (預先發布版) 相容如要進一步瞭解使用 PostgreSQL 17 預先發布版時的限制,請參閱「PostgreSQL 17 預先發布版相容性」。
PASSWORD
:預設postgres
使用者的密碼。NETWORK
(選用):您為 AlloyDB 設定私人服務存取權時使用的虛擬私有雲網路名稱。如果省略--network
標記,AlloyDB 會使用default
網路。如果是共用虛擬私有雲網路,請設為虛擬私有雲網路的完整路徑,例如
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
:執行個體的機器類型。對於以 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
如果是 N2 機器系列,有效值如下:
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
同時使用
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" "cluster_abc" { cluster_id = "alloydb-cluster" location = "us-central1" network_config { network = google_compute_network.default.id } database_version = "POSTGRES_16" 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 執行個體。如要建立 C4A 例項,請使用 machine_config
結構中的 machine_type
欄位,如下列範例所示:
machine_config { machine_type = "c4a-highmem-4-lssd" }
準備 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 控制台中,前往 UI 中的資源,確認 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/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID -d @cluster_request.json
建立主要執行個體
這個範例會建立主要執行個體。如需此呼叫的完整參數清單,請參閱「方法:projects.locations.clusters.instances.create」。如要瞭解叢集設定,請參閱「查看叢集和執行個體設定」。
請勿在叢集 ID 中加入敏感資訊或個人識別資訊,因為外部使用者可以看見此 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
如要建立 C4A 例項,請在 machine_config
結構中使用 machine_type
欄位,而非 cpu_count
,如下列範例所示:
machine_config: { machine_type : MACHINE_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
如為 N2 系列機器,請使用下列有效值:
n2-highmem-2
n2-highmem-4
n2-highmem-8
n2-highmem-16
n2-highmem-32
n2-highmem-64
n2-highmem-96
n2-highmem-128
請使用下列 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/v1alpha/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID -d @instance_request.json
複製有效叢集
如要建立現有叢集的副本,其中包含來源叢集的所有資料副本,且副本會在相同區域中執行,請對該叢集執行時間點復原作業。 您可以指定非常近的時間點,例如目前這一分鐘的第一秒。
這個程序只會將來源叢集的資料複製到副本,不會複製來源叢集的任何設定。如要使用 CMEK 加密複製資料,即使來源叢集的資料已以 CMEK 加密,您仍須在時間點還原指令中指定 CMEK 詳細資料。建立新叢集後,您需要新增執行個體、資料庫標記、備份排程,以及符合您需求的任何其他設定。
以這種方式建立的叢集會獨立於來源存在,且初始複製完成後,其資料與來源叢集的資料沒有任何關係。如要建立次要叢集,自動追蹤及複製來源叢集中的資料變更,請參閱「關於跨區域複寫」。
建立特定 IP 位址範圍的叢集
AlloyDB 會使用私人服務連線,允許叢集的內部資源彼此通訊。建立叢集前,虛擬私有雲 (VPC) 網路必須包含至少一個已設定私人服務存取連線的 IP 位址範圍。
如果虛擬私有雲網路包含多個已設定私人服務存取的 IP 位址範圍,您可以指定 AlloyDB 要指派給新叢集的範圍。
如要指定 IP 位址範圍,請參閱「建立叢集」一文中的選用步驟。
如果未指定範圍,AlloyDB 會在建立叢集時採取下列其中一項動作:
如果您有多個可用的私人服務連線 IP 位址範圍,AlloyDB 會選擇其中一個範圍。
如果您在虛擬私有雲中設定了剛好一個 IP 位址範圍,並啟用私有服務存取權,AlloyDB 就會將該範圍套用至新叢集。
如要進一步瞭解如何建立 IP 位址範圍以搭配 AlloyDB 使用,請參閱「啟用私人服務存取權」。
使用 C4A Axion 型機器系列的注意事項
AlloyDB 提供以 Google Axion 為基礎的 C4A 機器系列,這是 Google 的自訂 Arm 架構處理器。C4A 虛擬機器 (VM) 提供預先定義的設定,可選擇 1、4、8、16、32、48、64 和 72 個 vCPU,以及高達 576 GB 的雙倍資料率 5 (DDR5) 記憶體。
限制
PostgreSQL 17 不支援將 PostgreSQL 適用的 Cloud SQL 執行個體遷移至 AlloyDB,方法是將 PostgreSQL 適用的 Cloud SQL 備份檔複製到 AlloyDB 叢集。
選擇 C4A 時,請注意下列事項:
- 如要將現有的 N2 執行個體切換為 C4A 執行個體,請使用 Google Cloud 控制台、gcloud CLI、Terraform 或 API,修改目前執行個體的
machine_type
。 - 請勿刪除 N2 執行個體,並在同一個叢集中建立新的 C4A 執行個體。
C4A 支援下列地區:
asia-east1
asia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
us-central1
us-east1
us-east4
使用 1 個 vCPU 機器類型時的注意事項
AlloyDB 提供 1 個 vCPU 的形狀,並搭配 C4A,僅供開發和測試之用。如為實際工作環境工作負載,請選擇兩個以上的 vCPU。
選擇 1 個 vCPU 時,請注意下列限制:
- 1 個 vCPU 搭配 8 GB 記憶體,但不支援超快速快取。
- 如果開發和沙箱環境的資料庫大小為數十 GB,建議使用 1 個 vCPU 的設定。如果是較大的資料庫和實際工作環境工作負載,建議使用 2 個以上的 vCPU。
- 您可以設定高可用性 (HA),但我們不提供運作時間服務水準協議。
- 如要瞭解可在何處部署 1 個 vCPU,請參閱 C4A 支援的區域。