Creare istanze

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

Per informazioni dettagliate su tutte le impostazioni delle istanze, vedi Impostazioni delle istanze.

Un'istanza appena creata ha un database sqlserver.

Dopo aver creato un'istanza Cloud SQL per SQL Server, aggiungi i database creandoli o importandoli.

Il numero massimo di istanze che puoi avere in un singolo progetto dipende dall'architettura di rete di queste istanze:

  • Nuova architettura di rete SQL: puoi avere fino a 1000 istanze per progetto.
  • Architettura di rete SQL precedente: puoi avere fino a 100 istanze per progetto.
  • Utilizzo di entrambe le architetture: il limite sarà compreso tra 100 e 1000, a seconda della distribuzione delle istanze nelle due architetture.

Invia una richiesta di assistenza per richiedere un aumento. Le repliche di lettura vengono conteggiate come istanze.

Scegliere tra la versione Cloud SQL Enterprise Plus e Cloud SQL Enterprise

Quando crei un'istanza Cloud SQL per SQL Server, scegli la configurazione della macchina tra diverse famiglie di macchine, a seconda dell'edizione di Cloud SQL.

Con la versione Enterprise Plus di Cloud SQL, puoi scegliere tra due famiglie di macchine:

  • Ottimizzato per il rendimento: offre un equilibrio tra prezzo e prestazioni per vari workload di SQL Server con un rapporto memoria/calcolo di 1 vCPU:8 GB di RAM.
  • Ottimizzate per la memoria: offrono rapporti memoria/computing elevati per carichi di lavoro che richiedono molta memoria con 1 vCPU:32 GB di RAM. Le macchine ottimizzate per la memoria sono adatte per i carichi di lavoro di SQL Server che richiedono query complesse, analisi e report di business intelligence che traggono vantaggio dall'archiviazione di set di dati più grandi in memoria durante l'elaborazione dei dati.

Con Cloud SQL Enterprise, hai a disposizione diverse configurazioni di macchine tra cui scegliere, in base ai requisiti di vCPU e memoria. Le sezioni seguenti mostrano la configurazione di vCPU e memoria per ogni versione del database e tipo di macchina:

SQL Server 2017 Express, SQL Server 2019 Express e SQL Server 2022 Express

Tipo di macchina vCPU/memoria
Non applicabile
  • 1 vCPU, 3,75 GB
  • 2 vCPU, 8 GB
  • 4 vCPU, 16 GB
  • 8 vCPU, 32 GB
Personalizzato Da 1 a 8 vCPU, da 3,75 GB a 52 GB

SQL Server 2017 Web, SQL Server 2019 Web e SQL Server 2022 Web

.
Tipo di macchina vCPU/memoria
Non applicabile
  • 1 vCPU, 3,75 GB
  • 2 vCPU, 8 GB
  • 4 vCPU, 16 GB
  • 8 vCPU, 32 GB
Personalizzato Da 1 a 32 vCPU, da 3,75 GB a 208 GB

SQL Server 2017 Standard, SQL Server 2019 Standard e SQL Server 2022 Standard

Tipo di macchina vCPU/memoria
Non applicabile
  • 1 vCPU, 3,75 GB
  • 2 vCPU, 8 GB
  • 4 vCPU, 16 GB
  • 8 vCPU, 32 GB
Personalizzato Da 1 a 48 vCPU, da 3,75 GB a 312 GB

SQL Server 2017 Enterprise, SQL Server 2019 Enterprise e SQL Server 2022 Enterprise

Tipo di macchina vCPU/memoria
Non applicabile
  • 1 vCPU, 3,75 GB
  • 2 vCPU, 8 GB
  • 4 vCPU, 16 GB
  • 8 vCPU, 32 GB
Personalizzato Da 2 a 96 vCPU, da 3,75 GB a 624 GB

ottimizzato per il rendimento(solo Cloud SQL Enterprise Plus)
  • 2 vCPU, 16 GB
  • 4 vCPU, 32 GB
  • 8 vCPU, 64 GB
  • 16 vCPU, 128 GB
  • 32 vCPU, 256 GB
  • 48 vCPU, 384 GB
  • 64 vCPU, 512 GB
  • 80 vCPU, 640 GB
  • 96 vCPU, 768 GB
  • 128 vCPU, 864 GB

ottimizzato per la memoria(solo Cloud SQL Enterprise Plus)
  • 4 vCPU, 128 GB
  • 8 vCPU, 256 GB
  • 16 vCPU, 512 GB

Multi-threading simultaneo

Il multi-threading simultaneo (SMT) su Cloud SQL per SQL Server consente di eseguire due CPU virtuali (vCPU) come thread separati e indipendenti in un singolo core fisico. SMT è abilitato per impostazione predefinita; tuttavia, puoi disabilitarlo e questo potrebbe ridurre i costi di licenza.

La disattivazione di SMT potrebbe influire sulle prestazioni dell'istanza. Per comprendere l'impatto della disattivazione di SMT sulle prestazioni della tua istanza, ti consigliamo di eseguire test di carico sulla tua istanza.

Prima di iniziare

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Install the gcloud CLI.

  5. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  6. To initialize the gcloud CLI, run the following command:

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

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Install the gcloud CLI.

  10. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. Assicurati di disporre dei ruoli Amministratore Cloud SQL e Visualizzatore Compute sul tuo account utente.

    Vai alla pagina IAM

    Scopri di più su ruoli e autorizzazioni.

  13. Crea un'istanza SQL Server

    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 pagina Crea un'istanza, fai clic su Scegli SQL Server.
    4. Nella sezione Scegli una versione di Cloud SQL della pagina Crea un'istanza SQL Server, seleziona la versione di Cloud SQL per la tua istanza: Enterprise o Enterprise Plus.

      Per saperne di più sulle versioni di Cloud SQL, consulta Introduzione alle versioni di Cloud SQL.

    5. Seleziona il preset della versione per l'istanza. Per visualizzare i preset disponibili, fai clic sul menu Preset edizione.
    6. Nella sezione Informazioni istanza, seleziona la versione del database per la tua istanza. Per visualizzare le versioni disponibili, fai clic sul menu Versione del database.
    7. Nel campo ID istanza del riquadro Informazioni istanza, inserisci un ID per l'istanza.

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

    8. Nel campo Password, inserisci una password per l'utente.
    9. Per visualizzare la password in testo normale, fai clic sull'icona Mostra password.

      Puoi inserire la password manualmente o fare clic su Genera per fare in modo che Cloud SQL crei automaticamente una password.

    10. Nella sezione Scegli la disponibilità per regione e zona, seleziona la regione e la zona per l'istanza. La disponibilità delle regioni potrebbe variare in base alla versione di Cloud SQL per SQL Server. Per ulteriori informazioni, vedi Informazioni sulle impostazioni per le istanze.

      Posiziona l'istanza nella stessa regione delle risorse che vi accedono. La regione selezionata non può essere modificata in futuro. Nella maggior parte dei casi, non è necessario specificare una zona.

      Se stai configurando l'istanza per l'alta disponibilità, puoi selezionare una zona primaria e una secondaria.

      Quando la zona secondaria viene utilizzata durante la creazione dell'istanza, si applicano le seguenti condizioni:

      • Le zone sono impostate per impostazione predefinita su Any per la zona primaria e Any (different from primary) per la zona secondaria.
      • Se vengono specificate sia la zona primaria sia quella secondaria, devono essere zone distinte.
    11. Nella sezione Personalizza la tua istanza, aggiorna le impostazioni per la tua istanza. Inizia facendo clic su MOSTRA OPZIONI DI CONFIGURAZIONE per visualizzare i gruppi di impostazioni. Poi espandi i gruppi per cui vuoi rivedere e personalizzare le impostazioni. A destra viene visualizzato un Riepilogo di tutte le opzioni selezionate. La personalizzazione di queste impostazioni dell'istanza è facoltativa. I valori predefiniti vengono assegnati in tutti i casi in cui non vengono apportate personalizzazioni.

      La tabella seguente fornisce un rapido riferimento alle impostazioni dell'istanza. Per ulteriori dettagli su ciascuna impostazione, consulta la pagina Impostazioni per le istanze.

      Impostazione Note
      Tipo di macchina
      Tipo di macchina Scegli tra Leggera, Standard (più comune) o Memoria elevata. Ogni tipo di macchina è classificato in base al numero di CPU (core) e alla quantità di memoria per l'istanza.
      Core Il numero di vCPU per l'istanza. Scopri di più.
      Memoria La quantità di memoria per l'istanza, in GB. Scopri di più.
      Personalizzato Per il tipo di macchina con core dedicati, anziché selezionare una configurazione predefinita, seleziona il pulsante Personalizzata per creare un'istanza con una configurazione personalizzata. Quando selezioni questa opzione, devi selezionare il numero di core e la quantità di memoria per l'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 per l'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 l'istanza. Per abilitare la connessione all'istanza, è necessaria una configurazione aggiuntiva.
      (Facoltativo) Puoi specificare un intervallo IP allocato che le istanze devono utilizzare per le connessioni.
      1. Espandi Mostra opzione intervallo IP allocato.
      2. Seleziona un intervallo IP dal menu a discesa.

      La tua istanza può avere sia un indirizzo IP pubblico sia uno privato.

      IP pubblico Aggiunge un indirizzo IP pubblico per l'istanza. Puoi quindi aggiungere reti autorizzate per connetterti all'istanza.

      La tua istanza può avere sia un indirizzo IP pubblico sia uno privato.

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

      Reti autorizzate

      Aggiungi il nome della nuova rete e l'indirizzo di rete. Scopri di più.

      Sicurezza
      Modalità di autorità di certificazione del server

      Scegli il tipo di autorità di certificazione (CA) che firma il certificato del server per questa istanza Cloud SQL. Scopri di più.

      Per impostazione predefinita, quando crei un'istanza nella console Google Cloud , l'istanza utilizza l'autorità di certificazione interna gestita da Google (GOOGLE_MANAGED_INTERNAL_CA), che è l'opzione CA per istanza.

      Protezione dei dati
      Backup automatici Il periodo di tempo in cui vuoi che inizino i backup.
      Scegli dove archiviare i tuoi backupSeleziona Più regioni per la maggior parte dei casi d'uso. Se devi archiviare i backup in una regione specifica, ad esempio se ci sono motivi normativi per farlo, seleziona Regione e seleziona la tua regione dal menu a discesa Località.
      Scegli quanti backup automatici archiviareIl numero di backup automatici che vuoi conservare (da 1 a 365 giorni). Scopri di più.
      Abilita recupero point-in-time Consente il recupero point-in-time e la registrazione delle transazioni. Scopri di più.
      Attiva la protezione da eliminazione Determina se proteggere un'istanza dall'eliminazione accidentale. Scopri di più.
      Abilitare i backup conservati dopo l'eliminazione dell'istanza Determina se i backup automatici e on demand vengono conservati dopo l'eliminazione di un'istanza. Scopri di più.
      Scegli il numero di giorni di log da conservare Configura la conservazione del 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 la manutenzione interruttiva sulla tua istanza. Se non imposti la finestra, la manutenzione distruttiva può essere eseguita in qualsiasi momento. Scopri di più.
      Ordine degli aggiornamenti Il momento che preferisci per gli aggiornamenti delle istanze, rispetto ad altre istanze dello stesso progetto. Scopri di più.
      Flag
      AGGIUNGI SEGNALAZIONE Puoi utilizzare i flag di database per controllare le impostazioni e i parametri della tua istanza. Scopri di più.
      Etichette
      AGGIUNGI ETICHETTAAggiungi una chiave e un valore per ogni etichetta che aggiungi. Utilizzi le etichette per organizzare le istanze.
    12. Fai clic su Crea istanza.

      Nota: la creazione dell'istanza potrebbe richiedere qualche minuto. Tuttavia, puoi visualizzare le informazioni sull'istanza durante la sua creazione.

    gcloud

    Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, consulta Installazione di gcloud CLI. Per informazioni sull'avvio di Cloud Shell, consulta la documentazione di Cloud Shell.

    Devi utilizzare gcloud versione 243.0.0 o successive.

    1. Utilizza il comando gcloud sql instances create per creare l'istanza:
    2. Per le istanze della versione Cloud SQL Enterprise Plus:

            gcloud sql instances create INSTANCE_NAME \
            --database-version=DATABASE_VERSION \
            --region=REGION \
            --tier=TIER \
            --root-password=ROOT_PASSWORD \
            --edition=ENTERPRISE_PLUS
          

      Per le istanze Cloud SQL Enterprise:

            gcloud sql instances create INSTANCE_NAME \
            --database-version=DATABASE_VERSION \
            --region=REGION \
            --cpu=NUMBER_OF_vCPUs \
            --memory=MEMORY_SIZE \
            --root-password=ROOT_PASSWORD \
            --edition=ENTERPRISE
          

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

      I valori per le vCPU e le dimensioni della memoria sono limitati per Cloud SQL Enterprise. Per maggiori informazioni, consulta Scegliere tra la versione Cloud SQL Enterprise Plus e la versione Cloud SQL Enterprise.

      Ad esempio, la seguente stringa crea un'istanza con due vCPU e 7680 MB di memoria:

          gcloud sql instances create myinstance \
          --database-version=SQLSERVER_2017_STANDARD \
          --region=us-central1 \
          --cpu=2 \
          --memory=7680MB \
          --root-password=EXAMPLE_PASSWORD \
          --edition=ENTERPRISE
          

      Per alcuni valori di esempio, consulta Tipi di macchine di esempio.

      Per scoprire di più sui parametri per le impostazioni delle istanze, consulta gcloud sql instances create.

      Il valore predefinito per REGION è us-central1.

      Non includere informazioni sensibili o che consentono l'identificazione personale nel nome dell'istanza, in quanto è visibile esternamente.
      Non è necessario includere l'ID progetto nel nome dell'istanza. Questa operazione viene eseguita automaticamente ove opportuno (ad esempio, nei file di log).

      Se stai creando un'istanza per l'alta disponibilità, puoi specificare sia la zona principale sia quella secondaria utilizzando i parametri --zone e --secondary-zone. Quando la zona secondaria viene utilizzata durante la creazione o la modifica dell'istanza, si applicano le seguenti condizioni:

      • Le zone devono essere valide.
      • Se viene specificata la zona secondaria, deve essere specificata anche quella principale.
      • Se vengono specificate le zone primaria e secondaria, devono essere zone distinte.
      • Se vengono specificate le zone primaria e secondaria, queste devono appartenere alla 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 si basa sulla tua edizione di Cloud SQL.
      Regione --region Visualizza i valori validi.
      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 vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete. Disponibile solo per il comando beta (gcloud beta sql instances create).

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

      --allocated-ip-range-name: se specificato, imposta un nome di intervallo per il quale viene allocato un intervallo IP. Ad esempio, google-managed-services-default. Il nome dell'intervallo deve rispettare RFC-1035 ed essere compreso tra 1 e 63 caratteri. (gcloud alpha sql instances create).

      IP pubblico --authorized-networks Per le connessioni con IP pubblico, solo le connessioni provenienti da reti autorizzate possono connettersi all'istanza. Scopri di più.
      Modalità CA server --server-ca-mode

      Il flag --server-ca-mode configura il tipo di autorità di certificazione (CA) del server per un'istanza. Puoi selezionare una delle seguenti opzioni:

      • GOOGLE_MANAGED_INTERNAL_CA: questo è il valore predefinito. Con questa opzione, una CA interna dedicata a ogni istanza Cloud SQL firma il certificato server per quell'istanza.
      • GOOGLE_MANAGED_CAS_CA: con questa opzione, viene utilizzata una gerarchia di CA costituita da una CA radice e da CA server subordinate gestite da Cloud SQL e ospitate su Google Cloud Certificate Authority Service (CA Service). Le CA server subordinate in una regione firmano i certificati server e sono condivise tra le istanze nella regione.
      • CUSTOMER_MANAGED_CAS_CA: con questa opzione, definisci la gerarchia CA e gestisci la rotazione dei certificati CA. Crea un pool di CA nel servizio CA nella stessa regione dell'istanza. Una delle CA nel pool viene utilizzata per firmare il certificato server. Per saperne di più, vedi Utilizzare una CA gestita dal cliente.
      Tipo di macchina e archiviazione
      Tipo di macchina --tier
      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 per l'istanza quando lo spazio libero è in esaurimento. Scopri di più.
      Limite di aumento automatico dello spazio di archiviazione --storage-auto-increase-limit Determina la quantità di spazio di archiviazione che Cloud SQL può aumentare automaticamente. Disponibile solo per il comando beta (gcloud beta sql instances create). Scopri di più.
      Backup automatici e alta disponibilità
      Alta disponibilità --availability-type Per un'istanza ad alta disponibilità, imposta questo valore su REGIONAL. Scopri di più.
      Zona secondaria --secondary-zone Se stai creando un'istanza per l'alta disponibilità, puoi specificare sia la zona primaria sia quella secondaria utilizzando --zone e --secondary-zone parameters. Quando la zona secondaria viene utilizzata durante la creazione o la modifica dell'istanza, si applicano le seguenti limitazioni:
      • Le zone devono essere valide.
      • Se viene specificata la zona secondaria, deve essere specificata anche quella principale.
      • Se vengono specificate le zone primaria e secondaria, devono essere zone distinte.

        Se vengono specificate le zone primaria e secondaria, queste devono appartenere alla stessa regione.

      Backup automatici --backup-start-time Il periodo di tempo in cui vuoi che inizino i backup.
      Impostazioni di conservazione per i backup automatici --retained-backups-count Il numero di backup automatici da conservare. Scopri di più.
      Impostazioni di conservazione per i log delle transazioni --retained-transaction-log-days Il numero di giorni di conservazione dei log delle transazioni per il recupero point-in-time. Scopri di più.
      Recupero point-in-time --enable-point-in-time-recovery Abilita il recupero point-in-time e i log delle transazioni. Scopri di più.
      Aggiungere flag di database
      Flag di database --database-flags Puoi utilizzare i flag di database per controllare le impostazioni e i parametri della tua istanza. Scopri di più sui flag di database.
      Pianificazione della manutenzione
      Periodo di manutenzione --maintenance-window-day,
      --maintenance-window-hour
      Determina una finestra di un'ora in cui Cloud SQL può eseguire la manutenzione distruttiva dell'istanza. Se non imposti la finestra, la manutenzione distruttiva può essere eseguita in qualsiasi momento. Scopri di più.
      Tempistica per manutenzione --maintenance-release-channel Il momento che preferisci per gli aggiornamenti delle istanze, rispetto ad altre istanze dello stesso progetto. Utilizza preview per gli aggiornamenti precedenti e production per quelli successivi. Scopri di più.
      SAN personalizzato
      Aggiungere un nome alternativo del soggetto (SAN) personalizzato --custom-subject-alternative-names=DNS_NAMES

      Se vuoi utilizzare un nome DNS personalizzato per connetterti a un'istanza Cloud SQL anziché utilizzare un indirizzo IP, configura l'impostazione del nome alternativo del soggetto (SAN) personalizzato durante la creazione dell'istanza. Il nome DNS personalizzato che inserisci nell'impostazione SAN personalizzata viene aggiunto al campo SAN del certificato server dell'istanza. In questo modo puoi utilizzare il nome DNS personalizzato con la convalida del nome host in modo sicuro.

      Prima di poter utilizzare il nome DNS personalizzato nei tuoi client e nelle tue applicazioni, devi configurare il mapping tra il nome DNS e l'indirizzo IP. Questa operazione è nota come risoluzione DNS. Puoi aggiungere un elenco separato da virgole di un massimo di tre nomi DNS personalizzati all'impostazione SAN personalizzata.

    3. Prendi nota dell'indirizzo IP assegnato automaticamente.

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

    4. Imposta la password per l'utente:
            gcloud sql users set-password sqlserver no-host --instance=[INSTANCE_NAME] \
             --password=[PASSWORD]
            

    Terraform

    Per creare un'istanza, utilizza una risorsa Terraform.

    resource "google_sql_database_instance" "instance" {
      name             = "sqlserver-instance"
      region           = "us-central1"
      database_version = "SQLSERVER_2019_STANDARD"
      root_password    = "INSERT-PASSWORD-HERE"
      settings {
        tier = "db-custom-2-7680"
      }
      # 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 di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.

    Prepara Cloud Shell

    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 Terraform.

    Prepara la directory

    Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).

    1. In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione .tf, ad esempio main.tf. In questo tutorial, il file viene 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 file main.tf appena creato.

      (Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.

    3. Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
    4. Salva le modifiche.
    5. Inizializza Terraform. Devi effettuare 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. Rivedi la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
      terraform plan

      Apporta le correzioni necessarie alla configurazione.

    2. Applica la configurazione di Terraform eseguendo il comando seguente e inserendo yes al prompt:
      terraform apply

      Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).

    3. Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.

    Elimina le modifiche

    Per eliminare le modifiche:

    1. Per disattivare la protezione dall'eliminazione, imposta l'argomento deletion_protection su false nel file di configurazione Terraform.
      deletion_protection =  "false"
    2. Applica la configurazione Terraform aggiornata eseguendo il comando seguente e inserendo yes al prompt:
      terraform apply
    1. Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo yes al prompt:

      terraform destroy

    REST v1

    1. Crea l'istanza

    Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.

    Consulta anche la pagina Instances:insert. Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per le regioni, vedi Impostazioni dell'istanza. Per informazioni sui tipi di macchine, consulta Configurazioni personalizzate delle istanze.

    Non includere informazioni sensibili o che consentono l'identificazione personale in instance-id; il valore è visibile esternamente.

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

    Il campo collation (non mostrato nella seguente chiamata API di base) ti consente di impostare un valore predefinito per il tipo di regole di confronto utilizzato per i database nella tua istanza. Questa regola di confronto predefinita è permanente a livello di istanza, ma non a livello di database. Puoi modificare questa impostazione predefinita con uno strumento di amministrazione del database, ma solo per un database specifico che stai creando o aggiornando. Non puoi modificare le regole di confronto predefinite per un'istanza dopo averla creata (a meno che non la ricrei). Per informazioni sulle regole di confronto in SQL Server, vedi Supporto di regole di confronto e Unicode. Per un prototipo di richiesta JSON, vedi Impostazioni. Puoi specificare la seguente stringa di esempio per il parametro collation: SQL_Latin1_General_CP1_CI_AS.

    Il campo timeZone (non mostrato nella seguente chiamata API di base) consente di impostare un fuso orario per un'istanza. Dopo aver creato un'istanza, puoi modificarne il fuso orario. Per ulteriori informazioni e un elenco delle stringhe accettate, consulta Impostazioni. Puoi specificare la seguente stringa di esempio per il campo timeZone: "Pacific Standard Time". Scopri di più.

    Per creare un'istanza integrata con Microsoft Active Directory gestito, specifica un dominio, ad esempio subdomain.mydomain.com, per il campo domain. Per ulteriori informazioni, consulta Creazione di un'istanza con autenticazione Windows. Inoltre, tieni presente le procedure e i vincoli per l'integrazione con un dominio Managed Microsoft AD in un progetto diverso.

    Per informazioni sull'impostazione del valore di machine-type nel corpo della richiesta, vedi Configurazioni personalizzate delle istanze.

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

    • PROJECT_ID: il tuo ID progetto.
    • INSTANCE_ID: l'ID istanza
    • REGION: il nome della regione.
    • DATABASE_VERSION: una stringa enum della versione del database. Ad esempio: SQLSERVER_2017_STANDARD.
    • PASSWORD: la password dell'utente root.
    • MACHINE_TYPE: una stringa enum del tipo di macchina (livello). Ad esempio:
      db-perf-optimized-N-4.
    • EDITION_TYPE: la tua versione di Cloud SQL. Il valore predefinito è ENTERPRISE.
    • DATA_CACHE_ENABLED: (facoltativo) per attivare la cache dei dati per l'istanza, imposta il valore di questo parametro su true.
    • PRIVATE_NETWORK: specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
    • AUTHORIZED_NETWORKS: per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
    • CA_MODE: specifica una gerarchia di autorità di certificazione per l'istanza, GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Se non specifichi serverCaMode, la configurazione predefinita è GOOGLE_MANAGED_INTERNAL_CA. Questa funzionalità è in anteprima.
    • DNS_NAMES: aggiungi un elenco separato da virgole di massimo tre nomi DNS al certificato del server dell'istanza Cloud SQL. Puoi proteggere più nomi DNS con un unico certificato. Questa funzionalità è disponibile in Anteprima e solo per le istanze CUSTOMER_MANAGED_CAS_CA.

    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",
        "backupConfiguration": {
          "enabled": true
        },
        "dataCacheConfig": {
          "dataCacheEnabled": DATA_CACHE_ENABLED
        },
        "ipConfiguration": {
          "privateNetwork": "PRIVATE_NETWORK",
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          "ipv4Enabled": false,
          "serverCaMode": "CA_MODE",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      }
    }
    

    Per inviare la richiesta, espandi una di queste 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": "2020-01-01T19:13:21.834Z",
      "operationType": "CREATE",
      "name": "OPERATION_ID",
      "targetId": "INSTANCE_ID",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
      "targetProject": "PROJECT_ID"
    }
    

    Una volta creata l'istanza, puoi configurare ulteriormente l'account utente predefinito.

    2. Recupera l'indirizzo IPv4 dell'istanza

    (Facoltativo) Puoi recuperare l'indirizzo IPv4 assegnato automaticamente. Nella risposta, l'indirizzo si trova nel campo ipAddress.

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

    • PROJECT_ID: il tuo ID progetto
    • INSTANCE_ID: l'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 di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "DATABASE_VERSION",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "MACHINE_TYPE",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "ZONE",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "19:00",
          "kind": "sql#backupConfiguration",
          "enabled": true
        },
        "settingsVersion": "1",
        "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": "BACKEND_TYPE",
      "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
      "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
      "name": "INSTANCE_ID",
      "region": "REGION",
      "gceZone": "ZONE"
    }
    

    REST v1beta4

    1. Crea l'istanza

    Nella seguente chiamata API di base non vengono mostrati tutti i campi possibili. Per un prototipo di richiesta JSON, vedi Impostazioni.

    Consulta anche la pagina Instances:insert. Per informazioni sulle impostazioni dell'istanza, inclusi i valori validi per le regioni, consulta Impostazioni dell'istanza. Per informazioni sui tipi di macchine, vedi Configurazioni personalizzate delle istanze.

    Non includere informazioni sensibili o che consentono l'identificazione personale in instance-id; il valore è visibile esternamente.

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

    Il campo collation (non mostrato nella seguente chiamata API di base) ti consente di impostare un valore predefinito per il tipo di collation utilizzato per i database nella tua istanza. Questa regola di confronto predefinita è permanente a livello di istanza, ma non a livello di database. Puoi modificare questa impostazione predefinita con uno strumento di amministrazione del database, ma solo per un database specifico che stai creando o aggiornando. Non puoi modificare le regole di confronto predefinite per un'istanza dopo averla creata (a meno che non la ricrei). Per informazioni sulle regole di confronto in SQL Server, vedi Supporto di regole di confronto e Unicode. Per un prototipo di richiesta JSON, vedi Impostazioni. Puoi specificare la seguente stringa di esempio per il parametro collation: SQL_Latin1_General_CP1_CI_AS.

    Il campo timeZone (non mostrato nella seguente chiamata API di base) consente di impostare un fuso orario per un'istanza. Dopo aver creato un'istanza, puoi modificare il fuso orario di un'istanza. Per maggiori informazioni e un elenco delle stringhe accettate, vedi Impostazioni. Puoi specificare la seguente stringa di esempio per il campo timeZone: "Pacific Standard Time". Scopri di più.

    Per creare un'istanza integrata con Microsoft Active Directory gestito, specifica un dominio, ad esempio subdomain.mydomain.com, per il campo domain. Per maggiori informazioni, consulta Creazione di un'istanza con autenticazione Windows. Inoltre, tieni presente le procedure e i vincoli per l'integrazione con un dominio Managed Microsoft AD in un progetto diverso.

    Per informazioni sull'impostazione del valore di machine-type nel corpo della richiesta, vedi Configurazioni personalizzate delle istanze.

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

    • PROJECT_ID: il tuo ID progetto.
    • INSTANCE_ID: l'ID istanza
    • REGION: il nome della regione.
    • DATABASE_VERSION: una stringa enum della versione del database.
    • MACHINE_TYPE: una stringa enum del tipo di macchina (livello). Ad esempio:
      db-perf-optimized-N-4.
    • PASSWORD: la password dell'utente root.
    • MACHINE_TYPE: una stringa enum del tipo di macchina (livello), come: db-custom-[CPUS]-[MEMORY_MBS].
    • EDITION_TYPE: la tua versione di Cloud SQL. Il valore predefinito è ENTERPRISE.
    • DATA_CACHE_ENABLED: (facoltativo) per attivare la cache dei dati per l'istanza, imposta il valore di questo parametro su true.
    • PRIVATE_NETWORK: specifica il nome della rete Virtual Private Cloud (VPC) che vuoi utilizzare per questa istanza. L'accesso privato ai servizi deve essere già configurato per la rete.
    • AUTHORIZED_NETWORKS: Per le connessioni con IP pubblico, specifica le connessioni dalle reti autorizzate che possono connettersi alla tua istanza.
    • CA_MODE: specifica una gerarchia di autorità di certificazione per l'istanza, GOOGLE_MANAGED_INTERNAL_CA o GOOGLE_MANAGED_CAS_CA. Se non specifichi serverCaMode, la configurazione predefinita è GOOGLE_MANAGED_INTERNAL_CA. Questa funzionalità è in anteprima.
    • DNS_NAMES: aggiungi un elenco separato da virgole di massimo tre nomi DNS al certificato del server dell'istanza Cloud SQL. Puoi proteggere più nomi DNS con un unico certificato. Questa funzionalità è disponibile in Anteprima e solo per le istanze CUSTOMER_MANAGED_CAS_CA.

    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",
        "backupConfiguration": {
          "enabled": true
        },
        "dataCacheConfig": {
          "dataCacheEnabled": DATA_CACHE_ENABLED
        },
        "ipConfiguration": {
          "privateNetwork": "PRIVATE_NETWORK",
          "authorizedNetworks": [AUTHORIZED_NETWORKS],
          "ipv4Enabled": false,
          "serverCaMode": "CA_MODE",
          "customSubjectAlternativeNames": "DNS_NAMES"
        }
      }
    }
    

    Per inviare la richiesta, espandi una di queste 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"
    }
    

    Dopo aver creato l'istanza, puoi configurare ulteriormente l'account utente predefinito.

    2. Recupera l'indirizzo IPv4 dell'istanza

    (Facoltativo) Puoi recuperare l'indirizzo IPv4 assegnato automaticamente. Nella risposta, l'indirizzo si trova nel campo ipAddress.

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

    • PROJECT_ID: il tuo ID progetto
    • INSTANCE_ID: l'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 di queste opzioni:

    Dovresti ricevere una risposta JSON simile alla seguente:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "DATABASE_VERSION",
      "settings": {
        "authorizedGaeApplications": [],
        "tier": "MACHINE_TYPE",
        "kind": "sql#settings",
        "pricingPlan": "PER_USE",
        "replicationType": "SYNCHRONOUS",
        "activationPolicy": "ALWAYS",
        "ipConfiguration": {
          "authorizedNetworks": [],
          "ipv4Enabled": true
        },
        "locationPreference": {
          "zone": "ZONE",
          "kind": "sql#locationPreference"
        },
        "dataDiskType": "PD_SSD",
        "backupConfiguration": {
          "startTime": "19:00",
          "kind": "sql#backupConfiguration",
          "enabled": true
        },
        "settingsVersion": "1",
        "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": "BACKEND_TYPE",
      "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
      "connectionName": "PROJECT_ID:REGION:INSTANCE_ID",
      "name": "INSTANCE_ID",
      "region": "REGION",
      "gceZone": "ZONE"
    }
    
    Per vedere come viene creata la richiesta API REST sottostante per questa attività, consulta API Explorer nella pagina instances:insert.

    Genera l'endpoint di scrittura

    Un endpoint di scrittura è un nome DNS (Domain Name Service) globale che viene risolto automaticamente nell'indirizzo IP dell'istanza primaria corrente. Questo endpoint reindirizza automaticamente le connessioni in entrata alla nuova istanza principale in caso di operazione di failover o switchover della replica. Puoi utilizzare l'endpoint di scrittura in una stringa di connessione SQL anziché un indirizzo IP. Utilizzando un endpoint di scrittura, puoi evitare di dover apportare modifiche alla connessione dell'applicazione quando si verifica un'interruzione della regione.

    Per saperne di più sull'utilizzo di un endpoint di scrittura per connettersi a un'istanza, vedi Connettersi a un'istanza utilizzando un endpoint di scrittura.

    Configurazioni personalizzate delle istanze

    Le configurazioni personalizzate delle istanze ti consentono di selezionare la quantità di memoria e CPU di cui ha bisogno la tua istanza. Questa flessibilità ti consente di scegliere la forma della VM appropriata per il tuo carico di lavoro. La disponibilità del tipo di macchina è determinata dalla tua edizione di Cloud SQL per SQL Server.

    Per i carichi di lavoro che richiedono l'elaborazione in tempo reale, assicurati che l'istanza disponga di memoria sufficiente per contenere l'intero set di lavoro. Tuttavia, esistono altri fattori che possono influire sui requisiti di memoria, come il numero di connessioni attive e i processi di overhead interni. Devi eseguire test di carico per evitare problemi di prestazioni nell'ambiente di produzione.

    Quando configuri l'istanza, seleziona memoria e vCPU sufficienti per gestire il tuo workload ed esegui l'upgrade man mano che il workload aumenta. Una configurazione della macchina con vCPU insufficienti potrebbe perdere la copertura del contratto di servizio. Per ulteriori informazioni, consulta le linee guida operative.

    Tipi di macchine per le istanze di Cloud SQL Enterprise

    Per le istanze Cloud SQL Enterprise, puoi anche creare configurazioni di istanza personalizzate utilizzando il comando gcloud sql instances create.

    I nomi dei tipi di macchine utilizzano il seguente formato: db-custom-NUMBER_OF_vCPUs-MEMORY

    Sostituisci NUMBER_OF_vCPUs con il numero di CPU nella macchina e MEMORY con la quantità di memoria nella macchina.

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

    Quando selezioni il numero di CPU e la quantità di memoria, esistono alcune limitazioni alla configurazione che scegli:

    • Il numero di vCPU che puoi configurare per l'istanza dipende dalla versione di SQL Server.
    • Il numero di vCPU deve essere 1 o un numero pari compreso tra 2 e 96.
    • La dimensione della memoria deve essere:
      • Da 0,9 a 6,5 GB per vCPU
      • Un multiplo di 256 MB
      • Almeno 3,75 GB (3840 MB)

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

    Per le istanze Cloud SQL Enterprise Plus, i tipi di macchina sono predefiniti come descritto nelle sezioni seguenti.

    Famiglia di macchine ottimizzate per le prestazioni

    Questa famiglia di macchine offre un equilibrio tra prezzo e prestazioni per un'ampia gamma di workload SQL Server con un rapporto memoria/calcolo di 1 vCPU:8 GB di RAM. La famiglia di macchine ottimizzate per le prestazioni offre i seguenti tipi di macchine tra cui scegliere:

    Tipo di macchina Enterprise Plus vCPU Memoria (GB)
    db-perf-optimized-N-2 2 16
    db-perf-optimized-N-4 4 32
    db-perf-optimized-N-8 8 64
    db-perf-optimized-N-16 16 128
    db-perf-optimized-N-32 32 256
    db-perf-optimized-N-48 48 384
    db-perf-optimized-N-64 64 512
    db-perf-optimized-N-80 80 640
    db-perf-optimized-N-96 96 768
    db-perf-optimized-N-128 128 864

    Famiglia di macchine ottimizzate per la memoria

    Questa famiglia di macchine offre rapporti memoria/computing elevati per i carichi di lavoro che richiedono molta memoria, con una vCPU per 32 GB di RAM. Le macchine ottimizzate per la memoria sono adatte per i carichi di lavoro di SQL Server che richiedono query complesse, analisi e report di business intelligence che traggono vantaggio dalla memorizzazione di set di dati più grandi in memoria durante l'elaborazione dei dati. La famiglia di macchine ottimizzate per la memoria offre i seguenti tipi di macchine tra cui scegliere:

    Tipo di macchina vCPU Memoria (GB)
    db-memory-optimized-N-4 4 128
    db-memory-optimized-N-8 8 256
    db-memory-optimized-N-16 16 512

    Risoluzione dei problemi

    Problema Risoluzione dei problemi
    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.

    Passaggi successivi

    1. Crea un database SQL Server sull'istanza.
    2. Crea utenti SQL Server sull'istanza.
    3. Proteggi e controlla l'accesso all'istanza.
    4. Connettiti all'istanza con un client SQL Server.
    5. Importa i dati nel database.
    6. Scopri di più sulle impostazioni dell'istanza.