Creazione delle istanze

Questa pagina descrive come creare un'istanza Cloud SQL per PostgreSQL.

Per informazioni dettagliate su tutte le impostazioni dell'istanza, consulta Impostazioni istanza.

Un'istanza appena creata ha un database postgres.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Installa Google Cloud CLI.
  5. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  8. Installa Google Cloud CLI.
  9. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  10. Assicurati di disporre dei ruoli Amministratore Cloud SQL e Visualizzatore Compute on il tuo account utente.

    Vai alla pagina IAM

    Scopri di più su ruoli e autorizzazioni.

Crea un'istanza PostgreSQL

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Fai clic su Crea istanza.
  3. Nel riquadro Scegli il motore del database della Nella pagina Crea un'istanza, fai clic su Scegli PostgreSQL.
  4. Nel campo ID istanza del riquadro Informazioni istanza, inserisci e un ID per l'istanza.

    Non è necessario includere l'ID progetto nel nome dell'istanza. L'operazione viene eseguita automaticamente appropriato (ad esempio, nei file di log).

  5. Inserisci una password per l'utente postgres.
  6. Per visualizzare la password in testo non crittografato, fai clic sull'icona Mostra password.

    Puoi inserire la password manualmente o fare clic su Genera. in modo che Cloud SQL crei automaticamente una password.
  7. (Facoltativo) Configura un criterio per le password per l'istanza nel modo seguente:

    1. Seleziona la casella di controllo Abilita criteri per le password. .
    2. Fai clic sul pulsante Imposta criterio della password, imposta uno o più le seguenti opzioni e fai clic su Salva.
      • Lunghezza minima: specifica il numero minimo di caratteri che che deve avere la password.
      • Complessità della password: controlla se la password è un combinazione di lettere minuscole, maiuscole, numeri e non alfanumerici caratteri.
      • Limita il riutilizzo della password: specifica il numero di password precedenti che non puoi riutilizzare.
      • Non consentire il nome utente: impedisce l'utilizzo del nome utente nella password.
      • Imposta intervallo di modifica della password: specifica il numero minimo di ore dopodiché potrai cambiare la password.
  8. Seleziona la versione del database per la tua istanza: PostgreSQL 16, PostgreSQL 15 (predefinito),
    PostgreSQL 14, PostgreSQL 13, PostgreSQL 12, PostgreSQL 11, PostgreSQL 10 o PostgreSQL 9.6.

    La versione del database non può essere modificata dopo la creazione dell'istanza.

  9. Seleziona la versione di Cloud SQL per l'istanza: Enterprise o Enterprise plus. Per ulteriori informazioni Informazioni sulle versioni di Cloud SQL, consulta Introduzione alle versioni di Cloud SQL.
  10. Nella sezione Scegli regione e disponibilità a livello di zona, seleziona la regione e la zona per la tua istanza. La disponibilità per regione potrebbe variare in base a Cloud SQL. Per ulteriori informazioni, vedi Informazioni sulle impostazioni dell'istanza.

    Posiziona l'istanza nella stessa regione delle risorse per accedervi. La regione selezionata non potrà essere modificata in futuro. Nella maggior parte dei casi, casi, non devi specificare una zona.

    Se stai configurando la tua istanza per alta disponibilità, è possibile selezionare una zona principale e una secondaria.

    Le seguenti condizioni si applicano quando la zona secondaria viene utilizzata durante creazione dell'istanza:

    • La zona predefinita è Any per la zona principale e Any (different from primary) per la zona secondaria.
    • Se vengono specificate sia la zona primaria che quella secondaria, devono siano zone distinte.
  11. Nella sezione Personalizza la tua istanza, aggiorna le impostazioni per in esecuzione in un'istanza Compute Engine. Inizia facendo clic su MOSTRA OPZIONI DI CONFIGURAZIONE per visualizzare i gruppi. delle impostazioni. Quindi, espandi i gruppi che ti interessano per esaminare e personalizzare le impostazioni. A destra viene visualizzato un riepilogo di tutte le opzioni selezionate. La personalizzazione delle impostazioni dell'istanza è facoltativa. I valori predefiniti sono assegnati in in tutti i casi in cui non vengono apportate personalizzazioni.

    La tabella seguente è un riferimento rapido alle impostazioni dell'istanza. Per ulteriori informazioni dettagli su ogni impostazione, consulta impostazioni dell'istanza .

    Impostazione Note
    Tipo di macchina
    Tipo di macchina Scegli tra Core condiviso o Core dedicato. Per il core condiviso, ogni tipo di macchina è classificato in base al numero di CPU (core) e quantità di memoria per l'istanza.
    Core Il numero di vCPU per la tua istanza. Scopri di più.
    Memoria La quantità di memoria per la tua istanza, in GB. Scopri di più.
    Personalizzato Per il tipo di macchina con core dedicato, invece di selezionare una configurazione predefinita, seleziona il pulsante Personalizzato per creare un'istanza una configurazione personalizzata. Quando selezioni devi selezionare il numero di core e la quantità di memoria per la tua istanza. Scopri di più.
    Spazio di archiviazione
    Tipo di archiviazione Determina se l'istanza utilizza l'archiviazione SSD o HDD. Scopri di più.
    Capacità dello spazio di archiviazione La quantità di spazio di archiviazione di cui è stato eseguito il provisioning per l'istanza. Scopri di più.
    Abilita aumenti automatici dello spazio di archiviazione Determina se Cloud SQL fornisce automaticamente più spazio di archiviazione dell'istanza quando lo spazio libero è in esaurimento. Scopri di più.
    Crittografia
    Crittografia gestita da GoogleL'opzione predefinita.
    Chiave di crittografia gestita dal cliente (CMEK)Seleziona per utilizzare la chiave con Google Cloud Key Management Service. Scopri di più.
    Connessioni
    IP privato Aggiunge un indirizzo IP privato per la tua istanza. Per abilitare la connessione all'istanza, è necessaria un'ulteriore configurazione.
    Facoltativamente, puoi specificare un intervallo IP allocato che le istanze possono utilizzare per le connessioni.
    1. Espandi Mostra l'opzione dell'intervallo IP allocato.
    2. Seleziona un intervallo IP dal menu a discesa.

    L'istanza può avere un indirizzo IP pubblico e uno privato.

    IP pubblico Aggiunge un indirizzo IP pubblico per la tua istanza. Dopodiché potrai aggiungere reti autorizzate per connetterti all'istanza.

    L'istanza può avere un indirizzo IP pubblico e uno privato.

    Scopri di più sull'utilizzo dell'IP pubblico.

    Reti autorizzateAggiungi il nome della nuova rete e l'indirizzo di rete. Scopri di più.
    Percorso privato per i servizi Google Cloud

    Se selezioni questa casella di controllo, autorizzi altri servizi Google Cloud, come BigQuery, per accedere ai dati in Cloud SQL ed eseguire query su questi dati una connessione privata.

    Protezione dei dati
    Backup automatici La finestra di tempo in cui vuoi iniziare i backup. Scopri di più.
    Scegli dove archiviare i tuoi backupSeleziona Più regioni per la maggior parte dei casi d'uso. Se archiviare i backup in una regione specifica, ad esempio se esistono motivi normativi quindi seleziona Regione e scegli la tua regione dal menu a discesa Località.
    Scegli quanti backup automatici archiviareIl numero di backup automatici che che desideri conservare (da 1 a 365 giorni). Scopri di più.
    Abilita recupero point-in-time Abilita il recupero point-in-time e il logging write-ahead. Scopri di più.
    Attiva la protezione da eliminazione Determina se proteggere un'istanza dall'eliminazione accidentale. Scopri di più.
    Scegli il numero di giorni di log da conservare Configura la conservazione dei log write-ahead da 1 a 7 giorni. L'impostazione predefinita è 7 giorni. Scopri di più.
    Manutenzione
    Finestra preferita Determina una finestra di un'ora in cui Cloud SQL può eseguire in modo invasivo la manutenzione dell'istanza. Se non imposti la finestra, la manutenzione fastidiosa può essere eseguita in qualsiasi momento. Scopri di più.
    Ordine degli aggiornamenti La tempistica che preferisci per gli aggiornamenti delle istanze, rispetto ad altre di Compute Engine nello stesso progetto. Scopri di più.
    Flag
    AGGIUNGI NOTIFICA Puoi usare i flag di database per controllare impostazioni e parametri per l'istanza. Scopri di più.
    Etichette
    AGGIUNGI ETICHETTAAggiungi una chiave e un valore per ogni etichetta che aggiungi. Le etichette aiutano a per organizzare le istanze.
    Cache di dati
    (Facoltativo) Abilita la cache dei dati Abilita la cache dei dati per le istanze della versione Cloud SQL per PostgreSQL Enterprise Plus. Per ulteriori informazioni sulla cache dei dati, consulta la sezione cache di dati.
  12. Fai clic su Crea istanza.

    Nota: la creazione dell'istanza potrebbe richiedere alcuni minuti. Tuttavia, puoi visualizzare le informazioni sull'istanza durante la creazione.

gcloud

Per informazioni sull'installazione e avviato con gcloud CLI, consulta Installazione di gcloud CLI. Per informazioni su avvia Cloud Shell, documentazione di Cloud Shell.

  1. Utilizza il comando gcloud sql instances create per creare l'istanza:
    Per le istanze della versione Cloud SQL Enterprise Plus:
    gcloud sql instances create INSTANCE_NAME \
    --database-version=POSTGRES_15 \
    --region=REGION \
    --zone=ZONE \
    --tier=TIER \
    --edition=ENTERPRISE_PLUS
    


    Per le istanze della versione Cloud SQL Enterprise:
    gcloud sql instances create INSTANCE_NAME \
    --database-version=POSTGRES_15 \
    --region=REGION \
    --zone=ZONE \
    --cpu=NUMBER_CPUS \
    --memory=MEMORY_SIZE \
    --edition=ENTERPRISE
    

    In alternativa, puoi usare il flag --tier se scegli db-f1-micro o db-g1-small come il tipo di macchina:
    gcloud sql instances create INSTANCE_NAME \
    --tier=API_TIER_STRING \
    --region=REGION
    

    Esistono limitazioni sui valori per le vCPU e le dimensioni della memoria:

    • Le vCPU devono essere 1 o un numero pari compreso tra 2 e 96.
    • La memoria deve essere:
      • Da 0,9 a 6,5 GB per vCPU
      • Un multiplo di 256 MB
      • Almeno 3,75 GB (3840 MB)

    Ad esempio, la stringa seguente crea un'istanza della versione Cloud SQL Enterprise con due vCPU e 7.680 MB di memoria:

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_15 \
    --cpu=2 \
    --memory=7680MB \
    --region=us-central1
    

    La seguente stringa crea un'istanza della versione Cloud SQL Enterprise con quattro core:

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_15 \
    --tier=db-perf-optimized-N-4 \
    --edition=ENTERPRISE_PLUS \
    --region=us-central1
    
    Per saperne di più, consulta Configurazione dell'istanza personalizzata informazioni su come tagliare --cpu e --memory.

    Il valore predefinito per REGION è us-central1.

    Non includere informazioni sensibili o che consentono l'identificazione personale nel nome della tua istanza; è visibile all'esterno.
    Non è necessario includere l'ID progetto nel nome dell'istanza. L'operazione viene eseguita automaticamente appropriato (ad esempio, nei file di log).

    Se stai creando un'istanza alta disponibilità, puoi specificare sia la zona primaria che la zona secondaria, utilizzando il parametro --zone e --secondary-zone. Le seguenti condizioni si applica quando la zona secondaria viene utilizzata durante la creazione o la modifica dell'istanza:

    • Le zone devono essere zone valide.
    • Se viene specificata la zona secondaria, è necessario specificare anche la zona principale.
    • Se vengono specificate la zona primaria e la zona secondaria, devono essere distinte diverse.
    • Se vengono specificate la zona primaria e la zona secondaria, devono appartenere a la stessa regione.

    Puoi aggiungere altri parametri per determinare altre impostazioni dell'istanza:

    Impostazione Parametro Note
    Parametri obbligatori
    Versione database --database-version La versione del database, che è in base alla versione di Cloud SQL che utilizzi.
    Regione --region Visualizza valori validi.
    Imposta i criteri relativi alle password
    Abilita il criterio delle password --enable-password-policy Attiva il criterio delle password quando viene utilizzato. Per impostazione predefinita, il criterio relativo alle password è disattivato. Se disattivato usando il parametro --clear-password-policy, gli altri parametri dei criteri relativi alle password vengono reimpostati.
    Lunghezza minima --password-policy-min-length Specifica il numero minimo di caratteri che la password deve contenere.
    Complessità della password --password-policy-complexity Attiva il controllo della complessità della password per garantire che la password contiene uno di ciascuno dei seguenti tipi di caratteri: minuscolo, maiuscolo, numerici e non alfanumerici. Imposta il valore su COMPLEXITY_DEFAULT.
    Limita il riutilizzo della password --password-policy-reuse-interval Specifica il numero di password precedenti che non puoi riutilizzare.
    Non consentire nome utente --password-policy-disallow-username-substring Impedisce di utilizzare il nome utente nella password. Utilizza le funzionalità di --no-password-policy-disallow-username-substring per disabilitare il controllo.
    Imposta l'intervallo di modifica delle password --password-policy-password-change-interval Specifica la durata minima dopo la quale è possibile modificare la password, ad esempio 2 m per 2 minuti.
    Connettività
    IP privato --network

    --no-assign-ip (facoltativo)

    --allocated-ip-range-name (facoltativo)

    --enable-google-private-path (facoltativo)

    --network: specifica il nome della rete VPC che preferisci da utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurate per la rete. Disponibile solo per il comando beta (gcloud beta sql instances create).

    --no-assign-ip: l'istanza avrà solo un IP privato .

    --allocated-ip-range-name: se specificato, imposta un nome di intervallo per a cui è allocato un intervallo IP. Per ad esempio google-managed-services-default. Il nome dell'intervallo deve essere conforme a RFC-1035 e avere una lunghezza compresa tra 1 e 63 caratteri. (gcloud alpha sql instances create).

    --enable-google-private-path: se utilizzi questo parametro, e poi consenti altri servizi Google Cloud, come BigQuery, per accedere ai dati in Cloud SQL ed eseguire query su questi dati tramite una connessione privata.

    Questo parametro è valido solo se:

    • Utilizzi il parametro --no-assign-ip.
    • Utilizzi il parametro --network per specificare il nome della rete VPC che vuoi utilizzare per creare una connessione privata.

    Scopri di più su configurazione dell'IP privato.

    IP pubblico --authorized-networks Per le connessioni con IP pubblico, solo le connessioni da reti autorizzate possono connettersi all'istanza. Scopri di più.
    Applicazione SSL

    --ssl-mode

    --require-ssl

    Il parametro ssl-mode applica l'applicazione forzata di SSL/TLS per le connessioni. Per ulteriori informazioni, consulta le impostazioni per Cloud SQL per PostgreSQL.

    Il parametro require-ssl determina se SSL le connessioni su IP vengono applicate o meno. require-ssl è un parametro precedente. Usa invece il criterio ssl-mode. Per ulteriori informazioni, vedi IpConfiguration.

    Tipo di macchina e archiviazione
    Tipo di macchina --tier Utilizzato per specificare un'istanza con core condiviso (db-f1-micro o db-g1-small). Per una configurazione di istanza personalizzata, utilizza --cpu --memory. Consulta la sezione configurazione dell'istanza.
    Tipo di archiviazione --storage-type Determina se l'istanza utilizza l'archiviazione SSD o HDD. Scopri di più.
    Capacità dello spazio di archiviazione --storage-size La quantità di spazio di archiviazione di cui è stato eseguito il provisioning per l'istanza, in GB. Scopri di più.
    Aumento automatico dello spazio di archiviazione --storage-auto-increase Determina se Cloud SQL fornisce automaticamente più spazio di archiviazione dell'istanza quando lo spazio libero è in esaurimento. Scopri di più.
    Limite di aumento automatico dello spazio di archiviazione --storage-auto-increase-limit Determina le dimensioni di Cloud SQL che possono aumentare automaticamente lo spazio di archiviazione. Disponibile solo per il comando beta (gcloud beta sql instances create). Scopri di più.
    Cache dei dati (facoltativa) --enable-data-cache Abilita o disattiva la cache dei dati per le istanze. Per ulteriori informazioni, vedi cache di dati.
    Backup automatici e alta disponibilità
    Alta disponibilità --availability-type Per un'istanza ad alta disponibilità, imposta REGIONAL. Scopri di più.
    Zona secondaria --secondary-zone Se stai creando un'istanza alta disponibilità, è possibile specificare sia la zona principale che quella secondaria utilizzando --zone e --secondary-zone parameters. La le seguenti limitazioni si applicano quando la zona secondaria viene utilizzata durante per creare o modificare l'istanza:
    • Le zone devono essere zone valide.
    • Se viene specificata la zona secondaria, è necessario specificare anche la zona principale.
    • Se sono specificate la zona primaria e la zona secondaria, devono essere distinte diverse.

      Se vengono specificate la zona primaria e la zona secondaria, devono appartenere a la stessa regione.

    Backup automatici --backup-start-time La finestra di tempo in cui vuoi iniziare i backup. Scopri di più.
    Impostazioni di conservazione per i backup automatici --retained-backups-count Il numero di backup automatici da conservare. Scopri di più.
    Recupero point-in-time --enable-point-in-time recovery Abilita il recupero point-in-time e il logging write-ahead. Scopri di più.
    Impostazioni di conservazione per il logging binario --retained-transaction-log-days Il numero di giorni in cui conservare i log write-ahead per il recupero point-in-time.Scopri di più.
    Aggiungi flag di database
    Flag di database --database-flags Puoi usare i flag di database per controllare impostazioni e parametri per l'istanza. Scopri di più sul database e i flag facoltativi.
    Pianificazione della manutenzione
    Periodo di manutenzione --maintenance-window-day,
    --maintenance-window-hour
    Determina una finestra di un'ora in cui Cloud SQL può eseguire e in modo invasivo dell'istanza. Se non imposti la finestra, le attività di manutenzione interrompenti possono essere eseguite in qualsiasi momento. Scopri di più.
    Tempistica per manutenzione --maintenance-release-channel La tempistica che preferisci per gli aggiornamenti delle istanze, rispetto ad altre di Compute Engine nello stesso progetto. Usa preview per i contenuti precedenti aggiornamenti e production per aggiornamenti successivi. Scopri di più.
    Integrazione con Vertex AI
    --enable-google-ml-integration Consente alle istanze Cloud SQL di connettersi a Vertex AI per passare all'IA richieste per previsioni in tempo reale e insight.
    --database-flags cloudsql.enable_google_ml_integration=on Attivando questo flag, Cloud SQL può integrarsi con Vertex AI.

  2. Prendi nota dell'indirizzo IP assegnato automaticamente.

    Se non utilizzi il proxy di autenticazione Cloud SQL, utilizzerai questo indirizzo come l'indirizzo host che le tue applicazioni o i tuoi strumenti utilizzano per connettersi in esecuzione in un'istanza Compute Engine.

  3. Imposta la password per l'utente postgres:
    gcloud sql users set-password postgres \
    --instance=INSTANCE_NAME \
    --password=PASSWORD
    

Terraform

Per creare un'istanza, utilizza una risorsa Terraform.

resource "google_sql_database_instance" "postgres_pvp_instance_name" {
  name             = "postgres-pvp-instance-name"
  region           = "asia-northeast1"
  database_version = "POSTGRES_14"
  root_password    = "abcABC123!"
  settings {
    tier = "db-custom-2-7680"
    password_validation_policy {
      min_length                  = 6
      reuse_interval              = 2
      complexity                  = "COMPLEXITY_DEFAULT"
      disallow_username_substring = true
      password_change_interval    = "30s"
      enable_password_policy      = true
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

Applica le modifiche

Per applicare la configurazione Terraform a un progetto Google Cloud, completa i passaggi nella le sezioni seguenti.

Prepara Cloud Shell

  1. Avvia Cloud Shell.
  2. Imposta il progetto Google Cloud predefinito dove 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 in Terraform di configurazione del deployment.

Prepara la directory

Ogni file di configurazione Terraform deve avere una directory (inoltre chiamato modulo principale).

  1. In Cloud Shell, crea una directory e un nuovo all'interno di quella directory. Il nome del file deve contenere .tf, ad esempio main.tf. In questo tutorial, il file è denominato main.tf.
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.

    Copia il codice campione nel nuovo oggetto main.tf.

    Facoltativamente, copia il codice da GitHub. Opzione consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

  3. Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
  4. Salva le modifiche.
  5. Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
    terraform init

    Facoltativamente, per utilizzare la versione più recente del provider Google, includi -upgrade :

    terraform init -upgrade

Applica le modifiche

  1. Rivedi la configurazione e verifica che le risorse che Terraform creerà o che l'aggiornamento soddisfi le tue aspettative:
    terraform plan

    Apporta le correzioni necessarie alla configurazione.

  2. Applica la configurazione Terraform eseguendo questo comando e inserendo yes alla richiesta:
    terraform apply

    Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". .

  3. Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.

Elimina le modifiche

Per eliminare le modifiche:

  1. Per disabilitare la protezione dall'eliminazione, nel file di configurazione Terraform imposta la classe Argomento deletion_protection per false.
    deletion_protection =  "false"
  2. Applica la configurazione Terraform aggiornata eseguendo il comando seguente inserendo yes alla richiesta:
    terraform apply
  1. Rimuovi le risorse applicate in precedenza con la tua configurazione Terraform eseguendo questo comando e inserendo yes al prompt:

    terraform destroy

REST v1

Crea l'istanza

Questo esempio crea un'istanza. Alcuni parametri facoltativi, ad esempio sono inclusi anche i backup e il logging binario. Per un elenco completo dei parametri per questa chiamata, vedere Instances:insert . Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per regione, consulta Impostazioni istanza.

Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID istanza; è visibile all'esterno.
Non è necessario includere l'ID progetto nel nome dell'istanza. L'operazione viene eseguita automaticamente appropriato (ad esempio, nei file di log).

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: il tuo ID istanza
  • REGION: la regione
  • DATABASE_VERSION: stringa enum della versione del database (ad esempio, POSTGRES_15)
  • PASSWORD: la password dell'utente root
  • MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: la tua versione di Cloud SQL

  • (Facoltativo) DATA_CACHE_ENABLED: impostato su true per abilitare la cache dei dati per l'istanza
  • PRIVATE_NETWORK: specifica il nome della rete Virtual Private Cloud (VPC) che che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per in ogni rete.
  • AUTHORIZED_NETWORKS: per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate reti che possono connettersi all'istanza.

Per impostare un criterio per le password durante la creazione di un'istanza, includi il comando passwordValidationPolicy nella richiesta. Imposta i seguenti parametri, come richiesto:

  • enablePasswordPolicy: attiva il criterio delle password se viene impostato su true.

    Per rimuovere il criterio relativo alle password, puoi usare un PATCH con null come valore per enablePasswordPolicy. In questo caso, gli altri parametri dei criteri relativi alle password vengono reimpostati.

  • minLength: specifica il numero minimo di caratteri che che deve avere la password.
  • complexity: controlla se la password è un combinazione di lettere minuscole, maiuscole, numeri e non alfanumerici caratteri. Il valore predefinito è COMPLEXITY_DEFAULT.
  • reuseInterval: specifica il numero di password precedenti che non puoi riutilizzare.
  • disallowUsernameSubstring: impedisce l'utilizzo del nome utente nella password se impostato su true.
  • passwordChangeInterval: specifica la durata minima dopo la quale puoi cambiare la password. Il valore è espresso in secondi con un massimo di nove cifre frazionarie, terminato da s. Ad esempio: 3.5s.

Per creare l'istanza in modo che possa integrarsi con Vertex AI, includi l'oggetto enableGoogleMlIntegration nella richiesta. Questa integrazione ti consente di applicare modelli linguistici di grandi dimensioni (LLM), ospitati in Vertex AI, a un database Cloud SQL per PostgreSQL.

Imposta i seguenti parametri, come richiesto:

  • enableGoogleMlIntegration: se questo parametro è impostato su true, le istanze Cloud SQL possono connettersi a Vertex AI per passare all'IA richieste per previsioni in tempo reale e insight
  • cloudsql.enable_google_ml_integration: se questo parametro è impostato su on, Cloud SQL può integrarsi con Vertex AI

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [AUTHORIZED_NETWORKS],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La risposta è un operazione a lunga esecuzione, il che potrebbe richiedere alcuni minuti.

Recupera l'indirizzo IPv4

Recupera l'indirizzo IPv4 assegnato automaticamente per la nuova istanza:

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • instance-id: ID istanza creato nel passaggio precedente

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cerca il campo ipAddress nella risposta.

REST v1beta4

Crea l'istanza

Questo esempio crea un'istanza. Alcuni parametri facoltativi, ad esempio sono inclusi anche i backup e il logging binario. Per un elenco completo dei parametri per questa chiamata, vedere instances:insert . Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per regione, consulta Impostazioni istanza

Non includere informazioni sensibili o che consentono l'identificazione personale nell'ID istanza; è visibile all'esterno.
Non è necessario includere l'ID progetto nel nome dell'istanza. L'operazione viene eseguita automaticamente appropriato (ad esempio, nei file di log).

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • PROJECT_ID: il tuo ID progetto
  • INSTANCE_ID: il tuo ID istanza
  • REGION: la regione
  • DATABASE_VERSION: stringa enum della versione del database (ad esempio, POSTGRES_15)
  • PASSWORD: la password dell'utente root
  • MACHINE_TYPE: stringa enum del tipo di macchina (livello), ad esempio: db-custom-[CPUS]-[MEMORY_MBS]
  • EDITION_TYPE: la tua versione di Cloud SQL

  • (Facoltativo) DATA_CACHE_ENABLED: impostato su true per abilitare la cache dei dati per l'istanza

Per impostare un criterio per le password durante la creazione di un'istanza, includi l'oggetto passwordValidationPolicy nella richiesta. Imposta i seguenti parametri, come richiesto:

  • enablePasswordPolicy: attiva il criterio delle password se viene impostato su true.

    Per rimuovere il criterio relativo alle password, puoi usare un PATCH con null come valore per enablePasswordPolicy. In questo caso, gli altri parametri dei criteri relativi alle password vengono reimpostati.

  • minLength: specifica il numero minimo di caratteri che che deve avere la password.
  • complexity: controlla se la password è un combinazione di lettere minuscole, maiuscole, numeri e non alfanumerici caratteri. Il valore predefinito è COMPLEXITY_DEFAULT.
  • reuseInterval: specifica il numero di password precedenti che non puoi riutilizzare.
  • disallowUsernameSubstring: impedisce l'utilizzo del nome utente nella password se impostato su true.
  • passwordChangeInterval: specifica la durata minima dopo la quale puoi cambiare la password. Il valore è espresso in secondi con un massimo di nove cifre frazionarie, terminato da s. Ad esempio: 3.5s.

Per creare l'istanza in modo che possa integrarsi con Vertex AI, includi l'oggetto enableGoogleMlIntegration nella richiesta. Questa integrazione ti consente di applicare modelli linguistici di grandi dimensioni (LLM), ospitati in Vertex AI, a un database Cloud SQL per PostgreSQL.

Imposta i seguenti parametri, come richiesto:

  • enableGoogleMlIntegration: se questo parametro è impostato su true, le istanze Cloud SQL possono connettersi a Vertex AI per passare all'IA richieste per previsioni in tempo reale e insight
  • cloudsql.enable_google_ml_integration: se questo parametro è impostato su on, Cloud SQL può integrarsi con Vertex AI

Metodo HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

Corpo JSON della richiesta:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "rootPassword": "PASSWORD",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
    "enableGoogleMlIntegration": "true" | "false"
    "databaseFlags":
    [
      {
        "name": "cloudsql.enable_google_ml_integration",
        "value": "on" | "off"
      }
    ]
    "dataCacheConfig" = {
      "dataCacheEnabled": DATA_CACHE_ENABLED
    },
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "MIN_LENGTH",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "REUSE_INTERVAL",
      "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING",
      "passwordChangeInterval": "PASSWORD_CHANGE_INTERVAL"
    }
  }
}

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

La risposta è un operazione a lunga esecuzione, il che potrebbe richiedere alcuni minuti.

Recupera l'indirizzo IPv4

Recupera l'indirizzo IPv4 assegnato automaticamente per la nuova istanza:

Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:

  • project-id: il tuo ID progetto
  • instance-id: ID istanza creato nel passaggio precedente

Metodo HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Per inviare la richiesta, espandi una delle seguenti opzioni:

Dovresti ricevere una risposta JSON simile alla seguente:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Cerca il campo ipAddress nella risposta.

Per vedere come vengono richiesta API REST sottostante per questa attività, vedi Explorer API nella pagina instances:insert.

Configurazioni di istanze personalizzate

Determina la memoria e i core virtuali disponibili per Cloud SQL in esecuzione in un'istanza Compute Engine. La disponibilità del tipo di macchina è determinata dalla versione di Cloud SQL.

Per i carichi di lavoro che richiedono l'elaborazione in tempo reale, come l'elaborazione delle transazioni online (OLTP), assicurati che l'istanza disponga di memoria sufficiente per contenere l'intero set di lavoro. Tuttavia, ci sono altri fattori che possono influire requisiti di memoria, come il numero di connessioni attive e i requisiti i processi di overhead. Devi eseguire test di carico per evitare problemi di prestazioni dell'ambiente di produzione.

Quando configuri l'istanza, seleziona memoria e vCPU sufficienti per gestire del carico di lavoro ed eseguire l'upgrade all'aumentare del carico di lavoro. Una macchina con un numero insufficiente di vCPU, potrebbe perdere la copertura SLA. Per ulteriori informazioni, consulta le linee guida operative.

Tipi di macchina per le istanze della versione Cloud SQL Enterprise Plus

Per le istanze della versione Cloud SQL Enterprise Plus, i tipi di macchina sono predefiniti nel modo seguente:

Tipo di macchina Enterprise Plus vCPU Memoria (GB) SSD locale
db-perf-optimized-N-2 2 16 375
db-perf-optimized-N-4 4 32 375
db-perf-optimized-N-8 8 64 375
db-perf-optimized-N-16 16 128 750
db-perf-optimized-N-32 32 256 1500
db-perf-optimized-N-48 48 384 3000
db-perf-optimized-N-64 64 512 6000
db-perf-optimized-N-80 80 640 6000
db-perf-optimized-N-96 96 768 6000
db-perf-optimized-N-128 128 864 9000

Tipi di macchine per le istanze della versione Cloud SQL Enterprise

Per le istanze della versione Cloud SQL Enterprise, puoi creano anche configurazioni di istanze personalizzate utilizzando il comando gcloud sql instances create. Le configurazioni di istanze personalizzate consentono di selezionare la quantità di memoria e CPU necessarie alla tua istanza. Questa flessibilità ti consente di scegliere la configurazione di VM più adatta al tuo carico di lavoro.

I nomi dei tipi di macchina utilizzano il seguente formato: db-custom-#-#

Sostituisci il primo segnaposto # con il numero di CPU nella macchina e il secondo segnaposto # con la quantità di memoria della macchina.

Ad esempio, se il nome della tua macchina è db-custom e il tuo macchina ha 1 CPU e 3840 MB di RAM, il formato della macchina sarà db-custom-1-3840.

Quando si seleziona il numero di CPU e la quantità di memoria, è possibile limitazioni applicate alla configurazione scelta:

  • Le vCPU devono essere 1 o un numero pari compreso tra 2 e 96.
  • La memoria deve essere:
    • Da 0,9 a 6,5 GB per vCPU
    • Un multiplo di 256 MB
    • Almeno 3,75 GB (3840 MB)

Nella tabella seguente sono elencati i nomi di ciascun tipo di macchina legacy, il numero CPU e RAM per ciascun tipo di macchina e la stringa risultante per la macchina di testo.

Puoi creare il tipo di macchina equivalente specificando la CPU e RAM nella console Google Cloud, utilizzando gcloud CLI specificando db-custom-#-# nell'API.

Tipo di macchina legacy vCPU Memoria (MB) Stringa db-custom-CPU-RAM (stringa di livello API)
db-n1-standard-1 1 3840 db-custom-1-3840
db-n1-standard-2 2 7680 db-custom-2-7680
db-n1-standard-4 4 15360 db-custom-4-15360
db-n1-standard-8 8 30720 db-custom-8-30720
db-n1-standard-16 16 61440 db-custom-16-61440
db-n1-standard-32 32 122880 db-custom-32-122880
db-n1-standard-64 64 245760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13312 db-custom-2-13312
db-n1-highmem-4 4 26624 db-custom-4-26624
db-n1-highmem-8 8 53248 db-custom-8-53248
db-n1-highmem-16 16 106496 db-custom-16-106496
db-n1-highmem-32 32 212992 db-custom-32-212992
db-n1-highmem-64 64 425984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Risoluzione dei problemi

Problema Risoluzione dei problemi
Messaggio di errore: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Non sono disponibili altri indirizzi nell'intervallo IP allocato. Là sono possibili i seguenti scenari:

  • La dimensione dell'intervallo IP allocato per la connessione privata al servizio è minore di /24.
  • La dimensione dell'intervallo IP allocato per la connessione privata al servizio è troppo basso per il numero di istanze Cloud SQL.
  • Il requisito relativo alla dimensione dell'intervallo IP allocato sarà maggiore se vengono create in più regioni. Vedi la dimensione intervallo allocato

Per risolvere il problema, puoi espandere il già allocato o allocare un intervallo IP aggiuntivo una connessione privata ai servizi. Per ulteriori informazioni, vedi Alloca un intervallo di indirizzi IP.

Se hai utilizzato il flag --allocated-ip-range-name durante la creazione nell'istanza Cloud SQL, puoi espandere solo l'intervallo IP specificato.

Se stai allocando un nuovo intervallo, assicurati che l'allocazione non che si sovrappongono a eventuali allocazioni esistenti.

Dopo aver creato un nuovo intervallo IP, aggiorna il peering VPC con quanto segue :

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Se stai espandendo un'allocazione esistente, assicurati di aumentare solo l'intervallo di allocazione e non diminuirlo. Ad esempio, se l'allocazione originale era 10.0.10.0/24, quindi rendere la nuova allocazione almeno 10.0.10.0/23.

In generale, se parte da un'allocazione /24, riduci la dimensione /mask del 1 per ogni condizione (gruppo di tipi di istanze aggiuntivi, regione aggiuntiva) è una buona regola empirica. Ad esempio, se provi a creare entrambi i tipi di istanza gruppi con la stessa allocazione, è sufficiente passare da /24 a /23.

Dopo aver espanso un intervallo IP esistente, aggiorna il peering VPC con seguente comando:

gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    
Messaggio di errore: Failed to create subnetwork. Router status is temporarily unavailable. Please try again later. Help Token: [token-ID]. Prova a creare di nuovo l'istanza Cloud SQL.
Messaggio di errore: Failed to create subnetwork. Required 'compute.projects.get' permission for PROJECT_ID. Quando crei un'istanza utilizzando un indirizzo IP privato, un servizio viene creato just-in-time utilizzando l'API Service Networking. Se hai abilitato solo di recente l'API Service Networking, quindi l'account di servizio potrebbe non essere creato e la creazione dell'istanza non riesce. Nel devi attendere la propagazione dell'account di servizio al sistema o aggiungilo manualmente con le autorizzazioni richieste.

Passaggi successivi

  1. Crea un database PostgreSQL nell'istanza.
  2. Crea utenti PostgreSQL nell'istanza.
  3. Proteggi e controlla l'accesso all'istanza.
  4. Connettiti all'istanza con un client PostgreSQL.
  5. Importare i dati nel database.