Crea un'istanza principale

Per supportare i workload di lettura e scrittura in un cluster AlloyDB per PostgreSQL, puoi creare un'istanza principale utilizzando la console Google Cloud , Google Cloud CLI, Terraform o l'API AlloyDB. L'istanza principale fornisce le risorse di computing che elaborano le transazioni e coordinano le operazioni di lettura e scrittura per il tuo cluster.

Prima di iniziare

  • Il progetto Google Cloud che stai utilizzando deve essere stato abilitato per accedere ad AlloyDB.
  • 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 nessuno di questi ruoli, contatta l'Amministratore organizzazione per richiedere l'accesso.

Crea un'istanza principale AlloyDB

Console

  1. Vai alla pagina Cluster.

    Vai a Cluster

  2. Fai clic su un cluster nella colonna Nome risorsa.

  3. Nella pagina Panoramica, vai a Istanze nel cluster e fai clic su Crea istanza principale.

  4. Configura l'istanza principale:

    1. Nel campo ID istanza, inserisci un ID per l'istanza principale.
    2. In Disponibilità a livello di zona, seleziona una delle seguenti opzioni:
      1. Per creare un'istanza di produzione ad alta affidabilità con failover automatico, seleziona Più zone (alta affidabilità).
      2. Per creare un'istanza di base che non deve essere ad alta affidabilità, seleziona Zona singola.
    3. 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)
    4. Seleziona 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
    5. (Facoltativo) Per connettere applicazioni e client sulla rete internet pubblica, seleziona la casella Abilita IP pubblico in Connettività IP pubblico. L'abilitazione dell'IP pubblico potrebbe richiedere una configurazione aggiuntiva per garantire una connessione sicura. Per saperne di più, consulta Connettiti utilizzando un IP pubblico.

      Per impostazione predefinita, l'IP privato è sempre abilitato. Per saperne di più, consulta Abilita l'accesso privato ai servizi.

    6. (Facoltativo) Per abilitare il pool di connessioni gestito, seleziona Abilita pool di connessioni gestito in Pool di connessioni gestito. Per saperne di più, consulta Configura il pooling delle connessioni gestite.

    7. (Facoltativo) Per impostare flag personalizzati per l'istanza, espandi Opzioni di configurazione avanzate, quindi segui questi passaggi per ogni flag:

      1. Fai clic su Aggiungi flag.
      2. Seleziona un flag dall'elenco Nuovo flag di database.
      3. Specifica un valore per il flag.
      4. Fai clic su Fine.
    8. (Facoltativo) Per configurare i requisiti SSL o del connettore nell'istanza, espandi Opzioni di configurazione avanzate, quindi segui questi passaggi:

      1. Per impostazione predefinita, le istanze AlloyDB richiedono che tutte le connessioni utilizzino la crittografia SSL. Per consentire connessioni non SSL, deseleziona la casella di controllo Consenti solo connessioni SSL.
      2. Per richiedere che tutte le connessioni del database all'istanza utilizzino il proxy di autenticazione AlloyDB o le librerie dei connettori sicuri fornite da Google, seleziona Applica mTLS mediante connettori AlloyDB.
  5. Fai clic su Crea istanza.

gcloud

Per utilizzare gcloud CLI, puoi installare e inizializzare Google Cloud CLI oppure puoi utilizzare Cloud Shell.

Utilizza il comando gcloud alloydb instances create per creare un'istanza principale.

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: l'ID dell'istanza che stai creando. Deve iniziare con una lettera minuscola e può contenere lettere minuscole, numeri e trattini.
  • AVAILABILITY: indica se questa istanza deve essere ad alta affidabilità (HA), con nodi in più zone. I valori validi includono:
    • REGIONAL: crea un'istanza ad alta affidabilità con nodi attivi e in standby separati e failover automatico tra di essi. Questo è il valore predefinito, adatto per gli ambienti di produzione.
    • ZONAL: crea un'istanza di base, contenente un solo nodo e nessun failover automatico.
  • REGION_ID: la regione in cui vuoi posizionare l'istanza. Ad esempio, us-central1.
  • CLUSTER_ID: l'ID del cluster in cui vuoi posizionare l'istanza.
  • CPU_COUNT: il numero di vCPU che vuoi per l'istanza.

    • Devi specificare cpu_count o machine_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_type che cpu_count, il valore cpu_count deve essere in linea con il numero di vCPU specificato in machine_type. Ad esempio, se machine_type è n2-highmem-4, devi impostare cpu_count su 4.
  • MACHINE_TYPE: seleziona da un elenco di tipi di macchine supportati, ad esempio n2-highmem-4, c4-highmem-4-lssd o c4a-highmem-4-lssd. Per saperne di più, consulta Scegli un tipo di macchina AlloyDB.

    Quando utilizzi machine_type e cpu_count insieme, i valori in cpu_count e machine_type devono corrispondere. Ad esempio, se machine_type è n2-highmem-4, devi impostare cpu_count su 4.

  • PROJECT_ID: l'ID del progetto in cui si trova il cluster.

Per impostazione predefinita, le nuove istanze richiedono che tutte le connessioni utilizzino la crittografia SSL. Per consentire connessioni non SSL all'istanza, aggiungi il flag --ssl-mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED al comando:

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

Per applicare una connessione sicura tra il client e un'istanza AlloyDB tramite il proxy di autenticazione o altre applicazioni che utilizzano librerie di connettori fornite da Google, aggiungi il flag --require-connectors al comando:

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

Per abilitare il pool di connessioni gestito nella tua istanza AlloyDB, aggiungi il flag --enable-connection-pooling al comando gcloud alloydb instances create:

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

Puoi anche creare un'istanza AlloyDB con Private Service Connect abilitato. Per informazioni sulla creazione di un'istanza principale per un cluster abilitato per Private Service Connect, consulta Crea un'istanza AlloyDB.

Terraform

Crea un'istanza

Per creare un'istanza all'interno del cluster di database, utilizza una risorsa 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]
}

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:

  1. Avvia Cloud Shell.
  2. 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 di Terraform.

Prepara la directory

Ogni file di configurazione Terraform deve avere la propria directory, chiamata anche modulo principale.

  1. 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 è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Copia il codice campione nel file main.tf appena creato. Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
    git clone https://github.com/terraform-google-modules/terraform-docs-samples
  3. Nella directory terraform-docs-samples, vai alla directory alloydb.
    cd terraform-docs-samples/alloydb
  4. Copia il codice campione nel file main.tf appena creato.
    cp SAMPLE_FILE main.tf
    Sostituisci <var>SAMPLE_FILE</var> con il nome del file di esempio da copiare, ad esempio main.tf.
  5. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  6. Salva le modifiche.
  7. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init
    (Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione -upgrade:
    terraform init -upgrade

Applica le modifiche

  1. Esamina la configurazione per verificare che gli aggiornamenti di Terraform corrispondano alle tue aspettative:
    terraform plan
    Apporta le correzioni necessarie alla configurazione.
  2. Applica la configurazione Terraform eseguendo il comando seguente e inserendo yes al prompt:
    terraform apply
    Attendi finché Terraform non visualizza il messaggio 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'istanza

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é 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 instance_request.json.

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

Sostituisci quanto segue:

  • CPU_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
"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

Passaggi successivi