Per eseguire il deployment di un ambiente di database per le tue applicazioni in AlloyDB per PostgreSQL, devi creare un cluster e la relativa istanza principale. Il cluster gestisce lo spazio di archiviazione regionale e le impostazioni di configurazione, mentre l'istanza principale fornisce le risorse di computing per le operazioni di lettura e scrittura. Puoi creare un cluster e la relativa istanza principale utilizzando la console Google Cloud , Google Cloud CLI, l'API REST o Terraform.
Prima di iniziare
- Il progetto Google Cloud che stai utilizzando deve essere abilitato per accedere ad AlloyDB.
- Una rete Virtual Private Cloud (VPC) nel progetto Google Cloud che stai utilizzando deve essere già configurata per l'accesso privato ai servizi ad AlloyDB.
- Per i workload di sviluppo e sandbox, considera la regione e il tipo di macchina. Per utilizzare la forma con 1 vCPU, assicurati di selezionare una regione che supporti questa forma. Per saperne di più, consulta Considerazioni sull'utilizzo di 1 vCPU.
Ruoli obbligatori
Prima di poter creare il tuo primo cluster AlloyDB, devi disporre dei ruoli Identity and Access Management (IAM) corretti.
- Devi disporre di uno di questi ruoli IAM nel progetto Google Cloud che stai utilizzando:
roles/alloydb.admin(il ruolo IAM predefinito AlloyDB Admin)roles/owner(il ruolo IAM di base Proprietario)roles/editor(il ruolo IAM di base Editor)
- Se non disponi di questi ruoli, contatta l'Organization Administrator per richiedere l'accesso.
- Devi anche disporre dell'autorizzazione
compute.networks.listnel progetto Google Cloud che stai utilizzando. Per ottenere questa autorizzazione seguendo il principio del privilegio minimo, chiedi all'amministratore di concederti il ruolo Utente di rete Compute (roles/compute.networkUser).
Crea un nuovo cluster e un'istanza principale
Console
Vai alla pagina Cluster.
Fai clic su Crea cluster.
Scegli una configurazione del cluster. Per saperne di più sulla differenza tra le configurazioni ad alta affidabilità e quelle di base, consulta Che cos'è un'istanza AlloyDB?
Se non sai se il nuovo cluster ha bisogno di istanze del pool di lettura, scegli una delle configurazioni senza pool di lettura. Puoi aggiungere istanze del pool di lettura al cluster in un secondo momento, se necessario.
Fai clic su Continua.
Nella sezione Configura il cluster, nel campo ID cluster, inserisci un ID per il cluster.
Nel campo Password, inserisci una password iniziale per il nuovo cluster. AlloyDB assegna la password fornita all'utente del database
postgresdurante la creazione del cluster.(Facoltativo) Per impostare manualmente il flag
alloydb.iam_authentication, deseleziona Crea un utente database IAM. Per saperne di più, consulta Configura i flag di database.Per impostazione predefinita, è selezionata l'opzione Crea un utente database IAM, che esegue le seguenti operazioni:
Attiva il flag
alloydb.iam_authenticationnell'istanza principale.Crea un utente di database IAM per te.
Nel campo Versione database, seleziona la versione principale di PostgreSQL per il nuovo cluster AlloyDB.
Seleziona una regione. Per i workload di sviluppo e sandbox, prendi in considerazione la forma con 1 vCPU, disponibile in alcune regioni. Per ulteriori informazioni, consulta Considerazioni sull'utilizzo di 1 vCPU.
Seleziona un percorso di rete.
(Facoltativo) Per applicare un intervallo di indirizzi IP specifico a questo cluster, anziché consentire ad AlloyDB di scegliere un intervallo di indirizzi IP, segui questi passaggi:
Fai clic su Mostra opzione intervallo IP allocato.
Dall'elenco Intervallo IP allocato, seleziona un intervallo di indirizzi IP.
Per saperne di più su questa opzione, consulta Crea un cluster con un intervallo di indirizzi IP specifico.
(Facoltativo) Per criptare questo cluster utilizzando una chiave di crittografia gestita dal cliente (CMEK) anziché la crittografia gestita da Google, segui questi passaggi aggiuntivi:
Fai clic su Opzioni di crittografia avanzate.
Seleziona Chiave di crittografia gestita dal cliente (CMEK).
Nel menu visualizzato, seleziona una chiave gestita dal cliente.
La console Google Cloud limita questo elenco alle chiavi all'interno dello stesso progetto e della stessa regione Google Cloud del nuovo cluster. Per utilizzare una chiave non presente in questo elenco, fai clic su Non trovi la chiave? Inserisci il nome risorsa della chiave, quindi digita il nome risorsa della chiave nella finestra di dialogo visualizzata.
Tieni presente che l'utilizzo di CMEK con AlloyDB richiede una configurazione aggiuntiva. Per saperne di più, consulta Utilizzo di CMEK con AlloyDB.
Fai clic su Continua.
Configura l'istanza principale:
- Nel campo ID istanza, inserisci un ID per l'istanza principale.
Seleziona una delle seguenti serie di macchine:
- C4A (serie di macchine basate su Google Axion).
- N2 (serie di macchine basate su x86). Questa è la serie di macchine predefinita.
- C4 (serie di macchine basate su x86).
- Z3 (serie di macchine basate su Intel Xeon).
Seleziona un tipo di macchina. Per saperne di più, consulta Scegli un tipo di macchina.
- C4A supporta 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPU.
- N2 supporta 2, 4, 8, 16, 32, 64, 96 e 128 vCPU.
- C4 supporta 4, 8, 16, 24, 32, 48, 96, 144, 192 e 288 vCPU.
- Z3 supporta 8, 14, 16, 22, 32, 44 e 88 vCPU.
Per ulteriori informazioni sull'utilizzo della serie di macchine basate su Axion C4A, incluso il tipo di macchina con 1 vCPU, consulta Considerazioni sull'utilizzo della serie di macchine basate su Axion C4A.
(Facoltativo) Imposta flag personalizzati per l'istanza. Per ogni flag, segui questi passaggi:
- Fai clic su Aggiungi flag.
- Nell'elenco Nuovo flag di database, seleziona un flag.
- Specifica un valore per il flag.
- Fai clic su Fine.
Fai clic su Crea cluster.
gcloud
Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.
Prima di iniziare a utilizzare AlloyDB, devi creare sia un cluster AlloyDB sia un'istanza principale.
Crea un cluster
Per creare il cluster con l'accesso privato ai servizi o Private Service Connect abilitato, utilizza il comando
gcloud alloydb clusters create.Accesso privato ai servizi
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-connectSostituisci quanto segue:
CLUSTER_ID: l'ID del cluster che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.VERSION: la versione principale di PostgreSQL con cui vuoi che siano compatibili i server di database del cluster. Scegli una delle opzioni seguenti:14, per la compatibilità con PostgreSQL 1415, per la compatibilità con PostgreSQL 1516, per la compatibilità con PostgreSQL 1617, per la compatibilità con PostgreSQL 17, che è la versione di PostgreSQL supportata per impostazione predefinita18, per la compatibilità con PostgreSQL 18
PASSWORD: la password da utilizzare per l'utentepostgrespredefinito.NETWORK(facoltativo): il nome della rete VPC che hai configurato per l'accesso privato ai servizi ad AlloyDB. Se ometti il flag--network, AlloyDB utilizza la retedefault.Se utilizzi una rete VPC condiviso, imposta il percorso completo della rete VPC, ad esempio
projects/cymbal-project/global/networks/shared-vpc-network.--enable-private-service-connect(facoltativo): impostalo per attivare Private Service Connect come metodo di connettività per il cluster e le sue istanze.REGION_ID: la regione in cui vuoi posizionare il cluster.
PROJECT_ID: l'ID del progetto in cui vuoi posizionare il cluster.
Questo comando avvia un'operazione a lunga esecuzione, restituendo un ID operazione.
(Facoltativo) Per applicare un intervallo di indirizzi IP specifico a questo cluster, anziché consentire ad AlloyDB di scegliere un intervallo di indirizzi IP, fornisci il seguente argomento:
--allocated-ip-range-name=RANGESostituisci
RANGEcon il nome dell'intervallo di indirizzi IP che vuoi che questo cluster utilizzi per l'accesso privato ai servizi.Per saperne di più su questa opzione, consulta Crea un cluster con un intervallo di indirizzi IP specifico.
(Facoltativo) Per criptare questo cluster utilizzando una chiave di crittografia gestita dal cliente (CMEK) anziché la crittografia predefinita gestita da Google, fornisci i seguenti argomenti:
--kms-key=KEY_ID \ --kms-keyring=KEYRING_ID \ --kms-location=LOCATION_ID \ --kms-project=PROJECT_IDSostituisci quanto segue:
KEY_ID: l'ID della chiave CMEK da utilizzare.KEYRING_ID: l'ID delle chiavi automatizzate della chiave.LOCATION_ID: l'ID della regione della chiave automatizzata, che deve essere lo stesso della regione del cluster.PROJECT_ID: l'ID del progetto delle chiavi automatizzate.
Verifica che l'operazione sia andata a buon fine.
gcloud alloydb operations describe OPERATION_ID \ --region=REGION_ID \ --project=PROJECT_IDSostituisci
OPERATION_IDcon l'ID operazione restituito nel passaggio precedente.
Dopo aver creato il cluster primario, devi creare un'istanza principale.
Crea un'istanza principale
Per creare un'istanza principale, utilizza il comando 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_LISTSostituisci quanto segue:
INSTANCE_ID: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.REGION_ID: la regione in cui vuoi che si trovi l'istanza.CLUSTER_ID: l'ID del cluster che hai creato in precedenza.PROJECT_ID: l'ID del progetto in cui è stato creato il cluster.CPU_COUNT: il numero di vCPU che vuoi per l'istanza.- Devi specificare
cpu_countomachine_type. Se viene fornito solo
cpu_count, viene creata un'istanza N2 con le seguenti specifiche:- 2: 2 vCPU, 16 GB di RAM
- 4: 4 vCPU, 32 GB di RAM
- 8: 8 vCPU, 64 GB di RAM
- 16: 16 vCPU, 128 GB di RAM
- 32: 32 vCPU, 256 GB di RAM
- 64: 64 vCPU, 512 GB di RAM
- 96: 96 vCPU, 768 GB di RAM
- 128: 128 vCPU, 864 GB di RAM
Se vengono forniti sia
machine_typechecpu_count, il valorecpu_countdeve essere in linea con il numero di vCPU specificato inmachine_type. Ad esempio, semachine_typeèn2-highmem-4, devi impostarecpu_countsu4.
- Devi specificare
MACHINE_TYPE: seleziona da un elenco di tipi di macchine supportati, ad esempion2-highmem-4,c4-highmem-4-lssdoc4a-highmem-4-lssd. Per saperne di più, consulta Scegli un tipo di macchina AlloyDB.Quando utilizzi
machine_typeecpu_countinsieme, i valori incpu_countemachine_typedevono corrispondere. Ad esempio, semachine_typeèn2-highmem-4, devi impostarecpu_countsu4.ALLOWED_PROJECT_LIST: (facoltativo) se utilizzi Private Service Connect,ALLOWED_PROJECT_LISTè l'elenco separato da virgole degli ID progetto o del numero di progetto a cui vuoi consentire l'accesso all'istanza.
Terraform
Crea un cluster e un'istanza principale
Per creare un cluster e la relativa istanza principale, utilizza una risorsa Terraform.
Di seguito è riportato uno snippet di codice per la creazione di un cluster e di un'istanza principale basato sull'esempio AlloyDB instance full:
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]
}
Questo esempio crea un'istanza N2. Per un elenco di altri tipi di macchine supportati, come n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd, consulta Scegli un tipo di macchina AlloyDB.
Prepara Cloud Shell
Per applicare la configurazione Terraform in un progetto Google Cloud , prepara Cloud Shell come segue:
- Avvia Cloud Shell.
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory, chiamata anche modulo principale.
- In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve essere un file TF, ad esempio
main.tf. In questo documento, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
- Copia il codice campione nel file
main.tfappena creato. Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end. - Esamina il file
main.tfe modifica i parametri di esempio da applicare al tuo ambiente. - Salva le modifiche.
- Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzioneterraform init
-upgrade:terraform init -upgrade
Applica le modifiche
- Esamina la configurazione per verificare che gli aggiornamenti di Terraform corrispondano alle tue aspettative:
Apporta le correzioni necessarie alla configurazione.terraform plan
- Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt: Attendi finché Terraform non visualizza il messaggioterraform apply
Apply complete!. - Apri il tuo progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
REST v1
Crea un cluster
Questo esempio crea un cluster. Per un elenco completo dei parametri di questa chiamata, consulta Metodo: projects.locations.clusters.create. Per informazioni sulle impostazioni dei cluster, consulta Visualizza le impostazioni dei cluster e delle istanze.
Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID cluster perché sono visibili esternamente. Non è necessario includere l'ID progetto nel nome del cluster. Questa operazione viene eseguita automaticamente, se opportuno, ad esempio nei file di log.
Per inviare la richiesta, salva il corpo della richiesta in un file denominato 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"
}
}
Effettua le seguenti sostituzioni:
DATABASE_VERSION: stringa enum della versione del database, ad esempioPOSTGRES_17.INITIAL_USERNAME: il nome utente che utilizzi per l'utente postgres predefinito.INITIAL_USER_PASSWORD: la password che utilizzi per l'utente postgres predefinito.
Utilizza il seguente metodo HTTP e URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters?cluster_id=CLUSTER_ID
Effettua le seguenti sostituzioni:
PROJECT_ID: l'ID del progetto in cui vuoi che si trovi il cluster.LOCATION_ID: l'ID della regione del cluster.CLUSTER_ID: l'ID del cluster che crei. L'ID cluster deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
Puoi utilizzare il seguente comando curl per eseguire la richiesta precedente:
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
Crea un'istanza principale
Questo esempio crea un'istanza principale. Per un elenco completo dei parametri di questa chiamata, consulta Metodo: projects.locations.clusters.instances.create. Per informazioni sulle impostazioni dei cluster, consulta Visualizza le impostazioni dei cluster e delle istanze.
Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID cluster, perché sono visibili esternamente. Non è necessario includere l'ID progetto nel nome del cluster, perché viene eseguito automaticamente, se opportuno, ad esempio nei file di log.
Per inviare la richiesta, salva il corpo della richiesta seguente in un file denominato instance_request.json.
{
"instance_type": "PRIMARY",
"machine_config": {
"cpu_count": VCPU_COUNT
}
}
Sostituisci quanto segue:
VCPU_COUNT: il numero di core della CPU visibili nell'istanza che vuoi creare.
L'esempio precedente crea un'istanza N2 con le seguenti specifiche:
- 2: 2 vCPU, 16 GB di RAM
- 4: 4 vCPU, 32 GB di RAM
- 8: 8 vCPU, 64 GB di RAM
- 16: 16 vCPU, 128 GB di RAM
- 32: 32 vCPU, 256 GB di RAM
- 64: 64 vCPU, 512 GB di RAM
- 96: 96 vCPU, 768 GB di RAM
- 128: 128 vCPU, 864 GB di RAM
L'esempio seguente mostra come creare un'istanza per un tipo di macchina:
"machine_config": {
"machine_type": "MACHINE_TYPE"
}
Sostituisci MACHINE_TYPE con un tipo di macchina supportato, ad esempio n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Per ulteriori informazioni sui tipi di macchine supportati, consulta Scegli un tipo di macchina AlloyDB.
Utilizza il seguente metodo HTTP e URL:
POST https://alloydb.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/clusters/CLUSTER_ID/instances?instance_id=INSTANCE_ID
Effettua le seguenti sostituzioni:
PROJECT_ID: l'ID del progetto in cui vuoi che si trovi il cluster.LOCATION_ID: l'ID della regione del cluster.CLUSTER_ID: l'ID del cluster che crei. L'ID deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.INSTANCE_ID: il nome dell'istanza principale che vuoi creare.
Puoi utilizzare curl per eseguire la richiesta, come mostrato nell'esempio seguente:
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
Clona un cluster attivo
Per creare un clone di un cluster attivo, contenente una copia di tutti i dati del cluster di origine ed eseguito nella stessa regione, esegui un recupero point-in-time su quel cluster. In questo caso, puoi specificare un momento molto recente, ad esempio il primo secondo del minuto corrente.
Questo processo copia solo i dati del cluster di origine nel clone, non la configurazione del cluster di origine. Per criptare i dati del clone utilizzando CMEK, devi specificare i dettagli CMEK nel comando di recupero point-in-time, anche se i dati del cluster di origine sono già criptati con CMEK. Dopo aver creato il nuovo cluster, devi aggiungere istanze, flag di database, pianificazioni dei backup e qualsiasi altra configurazione necessaria per soddisfare le tue esigenze.
Un cluster creato in questo modo esiste indipendentemente dalla sua origine e i suoi dati non hanno alcuna relazione con i dati del cluster di origine dopo il completamento della duplicazione iniziale. Se vuoi creare cluster secondari che monitorano e replicano automaticamente le modifiche ai dati apportate nei cluster di origine, consulta Informazioni sulla replica tra regioni.
Crea un cluster con un intervallo di indirizzi IP specifico
AlloyDB utilizza l'accesso privato ai servizi per consentire alle risorse interne di un cluster di comunicare tra loro. Prima di poter creare un cluster, la tua rete VPC deve contenere almeno un intervallo di indirizzi IP configurato con una connessione di accesso privato ai servizi.
Considerazioni relative all'utilizzo della serie di macchine basate su Axion C4A
AlloyDB offre una serie di macchine C4A basata su Google Axion, il processore personalizzato di Google basato su Arm. Le macchine virtuali (VM) C4A sono disponibili come configurazioni predefinite per 1, 2, 4, 8, 16, 32, 48, 64 e 72 vCPU, con un massimo di 576 GB di memoria DDR5 (Double Data Rate 5).
Quando scegli C4A, tieni presente quanto segue:
- Per passare da un'istanza N2 esistente a un'istanza C4A, modifica
machine_typedell'istanza corrente utilizzando la console Google Cloud , gcloud CLI, Terraform o l'API. - Non eliminare l'istanza N2 e non creare una nuova istanza C4A nello stesso cluster.
C4A è supportato nelle seguenti regioni:
asia-east1asia-southeast1europe-west1europe-west2europe-west3europe-west4us-central1us-east1us-east4
Considerazioni relative all'utilizzo del tipo di macchina con 1 vCPU
AlloyDB offre una forma con 1 vCPU con C4A ed è destinata solo a scopi di sviluppo e test. Per i workload di produzione, scegli due o più vCPU.
Quando scegli 1 vCPU, tieni presente le seguenti limitazioni:
- Viene offerta 1 vCPU con 8 GB di memoria senza supporto della cache ultraveloce.
- La configurazione con 1 vCPU è consigliata per gli ambienti di sviluppo e sandbox con database di dimensioni ridotte, nell'ordine di decine di gigabyte. Per database più grandi e per i workload di produzione, valuta la possibilità di utilizzare 2 o più vCPU.
- Puoi configurare l'alta affidabilità (HA), ma non vengono offerti SLA di uptime.
- Per scoprire dove puoi eseguire il deployment di 1 vCPU, consulta Regioni supportate da C4A.