Como criar instâncias

Como criar instâncias

Nesta página, você verá como criar um Cloud SQL para uma instância do PostgreSQL.

Para saber mais sobre todas as configurações de instância, consulte Configurações de instância.

Depois de criar uma instância do Cloud SQL, adicione bancos de dados a ela, criando ou importando.

Antes de começar

  1. Faça login na sua Conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página de seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud. Saiba como confirmar se a cobrança está ativada para o seu projeto.

  4. Instale e inicialize o SDK do Cloud..
  5. Verifique se você tem os papéis Administrador do Cloud SQL e Leitor do Compute na sua conta de usuário.

    Acessar a página do Cloud IAM

  6. Ative Cloud Key Management Service API.

    Ative a API

Como criar uma instância do PostgreSQL

Para criar uma instância do PostgreSQL:

Console

  1. Acesse a página "Instâncias" do Cloud SQL no Console do Google Cloud.

    Acessar a página Instâncias do Cloud SQL

  2. Clique em Criar instância.
  3. Selecione PostgreSQL e clique em Próxima.
  4. Digite um nome.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Elas são visíveis externamente.

    Não é necessário incluir o código do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

    Não é possível reutilizar um nome de instância por até uma semana depois de excluí-la.

  5. Digite a senha do usuário postgres.
  6. Configure a região para a instância.

    Coloque a instância na mesma região que os recursos que a acessam. Na maioria dos casos, não é necessário especificar uma zona.

  7. Em Opções de configuração, atualize as outras configurações que forem necessárias para a instância:
    Configuração Observações
    Versão do banco de dados
    Versão do banco de dados PostgreSQL 12 (Beta), PostgreSQL 11 (padrão), PostgreSQL 10 e PostgreSQL 9.6
    Conectividade
    IP privado Configura a conectividade de IP particular na instância. Saiba mais
    IP público Adiciona um endereço IPv4 público à instância. Saiba mais
    Tipo de máquina e armazenamento
    Núcleos Número de vCPUs da instância. Saiba mais
    Memória Quantidade de memória da instância em GiBs. Saiba mais
    Tipo de armazenamento Determina se a instância usa armazenamento SSD ou HDD. Saiba mais
    Capacidade de armazenamento A quantidade de armazenamento provisionada para a instância. Saiba mais
    Aumento automático de armazenamento Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais.
    Alta disponibilidade Para configurar sua instância para alta disponibilidade, selecione a caixa de seleção Alta disponibilidade (regional). Saiba mais.
    Backups automáticos A janela do horário que você quer que os backups comecem. Saiba mais.
    Autorizar redes
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados Use as sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais.
    Cronograma de manutenção
    Janela de manutenção Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais
    Dia/hora da manutenção Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Saiba mais
  8. Clique em Criar

gcloud

Para ver informações sobre como instalar e dar os primeiros passos com a ferramenta de linha de comando gcloud, consulte Como instalar o SDK do Cloud. Para mais informações sobre como iniciar o Cloud Shell, consulte a documentação do Cloud Shell.

  1. Crie a instância:
        gcloud sql instances create [INSTANCE_NAME] --database-version=POSTGRES_11 \
               --cpu=[NUMBER_CPUS] --memory=[MEMORY_SIZE] \
               --region=[REGION] | --gce-zone=[GCE_ZONE] | --zone=[ZONE]
        

    O valor padrão para [REGION] é us-central.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Elas são visíveis externamente.
    Não é necessário incluir o código do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

    Há restrições quanto ao valor das vCPUs e tamanho de memória:

    • O valor das vCPUs precisa ser 1 ou um número par entre 2 e 64.
    • A memória precisa:
      • ter 0,9 a 6,5 GiB por vCPU;
      • ser um múltiplo de 256 MiB;
      • ter pelo menos 3,75 GiB (3840 MiB).

    Por exemplo, a string a seguir cria uma instância com duas vCPUs e 7.680 MiB de memória:

         gcloud sql instances create myinstance --database-version=POSTGRES_11 --cpu=2 \
                --memory=7680MiB --region="us-central"
        

    Para alguns valores de amostra, consulte Tipos de máquinas de amostra.

    Também é possível criar uma instância de núcleo compartilhado usando --tier db-f1-micro ou --tier db-g1-small e descartar os parâmetros --cpu e --memory.

    Você pode adicionar mais parâmetros para determinar outras configurações da instância:

    Configuração Parâmetro Observações
    Parâmetros obrigatórios
    Versão do banco de dados --database-version POSTGRES_12 (Beta), POSTGRES_11 (padrão), POSTGRES_10 ou POSTGRES_9_6
    Região --region Consulte os valores válidos.
    Conectividade
    IP privado --network Especifica o nome da rede VPC que você quer usar para a instância. O acesso a serviços particulares já precisa estar configurado na rede. Disponível apenas para o comando Beta (gcloud beta sql instances create). Saiba mais.
    IP público --authorized-networks Nas conexões de IP público, apenas as conexões de redes autorizadas podem se conectar à instância. Saiba mais
    Tipo de máquina e armazenamento
    Tipo de máquina --tier Usado para especificar uma instância de núcleo compartilhado (db-f1-micro ou db-g1-small). Não é possível especificar os parâmetros --cpu ou --memory ao usar esse parâmetro.
    Tipo de armazenamento --storage-type Determina se a instância usa armazenamento SSD ou HDD. Saiba mais
    Capacidade de armazenamento --storage-size Quantidade de armazenamento provisionada para a instância em GB. Saiba mais.
    Aumento automático de armazenamento --storage-auto-increase Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais
    Limite de aumento automático de armazenamento --storage-auto-increase-limit Determina o quanto o Cloud SQL pode expandir o armazenamento automaticamente. Disponível apenas para o comando Beta (gcloud beta sql instances create). Saiba mais.
    Backups automáticos e alta disponibilidade
    Alta disponibilidade --availability-type Para uma instância altamente disponível, defina como REGIONAL. Saiba mais.
    Backups automáticos --backup-start-time A janela do horário que você quer que os backups comecem. Saiba mais
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados --database-flags Use as sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais sobre as sinalizações do banco de dados.
    Cronograma de manutenção
    Janela de manutenção --maintenance-window-day,
    --maintenance-window-hour
    Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais
    Dia/hora da manutenção --maintenance-release-channel Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Use preview para atualizações anteriores e production para atualizações posteriores. Saiba mais.

  2. Observe o endereço IP atribuído automaticamente.

    Se não estiver usando o Cloud SQL Proxy, você usará esse endereço como o endereço do host que os aplicativos ou as ferramentas usam para se conectar à instância.

  3. Defina a senha do usuário postgres:
        gcloud sql users set-password postgres --instance=[INSTANCE_NAME] \
               --password=[PASSWORD]
        

REST

Criar instância

Este exemplo cria uma instância com backups e geração de registros binários ativados. Essas configurações são opcionais. Para uma lista completa de parâmetros dessa chamada, consulte a página Instances:insert. Para informações sobre configurações de instância, inclusive valores válidos para a região e o tipo de máquina, consulte Configurações de instância.

Não inclua informações confidenciais ou de identificação pessoal no código da sua instância. Elas são visíveis externamente.
Não é necessário incluir o código do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o código do projeto;
  • instance-id: código da instância desejado;
  • region: região desejada;
  • machine-type: tipo de máquina desejado.

Método HTTP e URL:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

Corpo JSON da solicitação:

    {
      "name": "instance-id",
      "region": "region",
      "settings": {
        "tier": "machine-type",
        "backupConfiguration": {
          "binaryLogEnabled": true,
          "enabled": true
        }
      }
    }
    

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

    {
      "kind": "sql#operation",
      "targetLink": "https://www.googleapis.com/sql/v1beta4/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://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
      "targetProject": "project-id"
    }
    

A resposta é uma operação de longa duração, que pode levar alguns minutos para ser concluída.

Recuperar o endereço IPv4

Recupere o endereço IPv4 atribuído automaticamente à nova instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o código do projeto;
  • instance-id: código de instância criado na etapa anterior.

Método HTTP e URL:

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

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

    {
      "kind": "sql#instance",
      "state": "RUNNABLE",
      "databaseVersion": "MYSQL_5_7",
      "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://www.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"
    }
    

Procure o campo ipAddress na resposta.

Para ver como a solicitação da API REST de base é criada nesta tarefa, consulte o APIs Explorer na página "instances:insert page".

Exemplos de tipos de máquinas

Com tipos de máquina personalizados, é possível configurar sua instância com a quantidade de memória e CPUs que precisa. No entanto, existem algumas restrições nestes valores:

  • O valor das vCPUs precisa ser 1 ou um número par entre 2 e 64.
  • A memória precisa:
    • ter 0,9 a 6,5 GiB por vCPU;
    • ser um múltiplo de 256 MiB;
    • ter pelo menos 3,75 GiB (3840 MiB).

Veja alguns exemplos de valores, com base nos tipos de máquina predefinidos disponíveis para instâncias do PostgreSQL:

Tipo de máquina predefinido vCPUs Memória (MiBs) String de nível da API
db-n1-standard-1 1 3.840 db-custom-1-3840
db-n1-standard-2 2 7.680 db-custom-2-7680
db-n1-standard-4 4 15.360 db-custom-4-15360
db-n1-standard-8 8 30.720 db-custom-8-30720
db-n1-standard-16 16 61.440 db-custom-16-61440
db-n1-standard-32 32 122.880 db-custom-32-122880
db-n1-standard-64 64 245.760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13.312 db-custom-2-13312
db-n1-highmem-4 4 26.624 db-custom-4-26624
db-n1-highmem-8 8 53.248 db-custom-8-53248
db-n1-highmem-16 16 106.496 db-custom-16-106496
db-n1-highmem-32 32 212.992 db-custom-32-212992
db-n1-highmem-64 64 425.984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

A seguir