Compartilhar via


Início Rápido: Crie um servidor flexível do Banco de Dados do Azure para PostgreSQL

O Banco de Dados do Azure para PostgreSQL é um serviço gerenciado que você pode usar para executar, gerenciar e dimensionar bancos de dados PostgreSQL altamente disponíveis na nuvem.

Este início rápido mostra como criar uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL usando o portal do Azure, a CLI do Azure ou os modelos do ARM (Azure Resource Manager).

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma assinatura do Azure. Se você não tiver uma, crie uma conta gratuita do Azure.
  • Permissões apropriadas para criar recursos em sua assinatura.

Entender o que você está criando

Uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL inclui:

  • Um conjunto configurado de recursos de computação e armazenamento.
  • Implantação em um grupo de recursos do Azure.
  • Um postgres banco de dados criado por padrão.
  • Um azure_maintenance banco de dados para processos de serviço gerenciado.
  • Um azure_sys banco de dados para repositório de consultas e recursos de ajuste de índice.

Observação

Normalmente, as conexões usam porta 5432 ou porta 6432 se conectarem por meio do pooler de conexões interno do PgBouncer.

Criar servidor usando o portal do Azure

  1. Entre no portal do Azure.
  2. Selecione Criar um recurso no canto superior esquerdo.
  3. Em Categorias, selecione Bancos de Dados.
  4. Localize e selecione o servidor flexível do Banco de Dados do Azure para PostgreSQL.
  5. Selecione Criar.

Definir as configurações básicas

Detalhes do projeto

Configurações Valor sugerido Anotações
Subscription Sua assinatura Escolha onde cobrar o recurso
Grupo de recursos myresourcegroup Criar novo ou selecionar existente

Detalhes do servidor

Configurações Valor sugerido Description
Nome do servidor mydemoserver-pgsql Deve ser globalmente exclusivo. O domínio .postgres.database.azure.com é adicionado automaticamente
Região Região mais próxima de você Considere conformidade, residência de dados, preços e proximidade com os usuários
Versão do PostgreSQL Mais recente disponível Atualmente com suporte: 18, 17, 16, 15, 14, 13, 12, 11
Tipo de carga de trabalho Desenvolvimento O desenvolvimento usa SKUs do tipo Burstable. A produção utiliza Propósito Geral ou Otimizado para Memória.
Zona de disponibilidade Nenhuma preferência Útil para ser colocado junto com seu aplicativo

Alta disponibilidade

Opção contrato de nível de serviço Description
Disabled 99,9% Servidor único sem backup
Mesma zona 99.95% Em espera na mesma zona de disponibilidade
Redundância de zona 99,99% Espera em uma zona de disponibilidade diferente

Authentication

Configurações Description Recommended
Método de autenticação Como os usuários se autenticam - Somente autenticação postgreSQL (para início rápido)
- Autenticação do Microsoft Entra (para produção)
- Ambos (para flexibilidade)
Nome de usuário do administrador adminuser - Deve ter de 1 a 63 caracteres
- Somente números e letras
- Não é possível começar com pg_
- Não pode ser nomes reservados do sistema
Senha Senha complexa 8 a 128 caracteres com letras maiúsculas, minúsculas, números e caracteres especiais

Configurar computação e armazenamento

Selecione Configurar servidor para personalizar:

Nível de computação

Camada Caso de uso Description
Com capacidade de intermitência Desenvolvimento Para cargas de trabalho que não precisam de CPU completa contínua
de Uso Geral Produção Cargas de trabalho de produção mais comuns
Memória otimizada Cargas de trabalho de memória alta Cargas de trabalho que exigem alta taxa de memória para CPU

Configurações de armazenamento

Configurações Pode mudar mais tarde Description
Tipo de armazenamento ❌ Não SSD Premium ou SSD Premium v2
Tamanho do armazenamento ✅ Sim (somente aumento) Não é possível reduzir após a criação
Nível de desempenho ✅ Sim Controla IOPS e taxa de transferência
Crescimento automático de armazenamento ✅ Sim Expansão automática ao se aproximar dos limites

Configurações de backup

Configurações Pode mudar mais tarde Description
Retenção de backup ✅ Sim 7 a 35 dias
Redundância de backup ❌ Não Redundante localmente, redundante em zona ou redundante geograficamente
Redundância geográfica ❌ Não Disponível somente em regiões emparelhadas do Azure

Configurar a rede

Escolha o método de conectividade (não pode ser alterado após a criação):

Acesso público (endereços IP permitidos)

Conecte-se através de um ponto de extremidade público usando regras de firewall.

Configurações:

Configurações Description
Permitir acesso público Habilitar o acesso público para configurar regras de firewall
Permitir serviços do Azure Permitir conexões de todos os serviços do Azure
Adicionar IP do cliente atual Adicionar seu endereço IP para permitir a lista

Acesso privado (integração de rede virtual)

Conecte-se por meio de um endpoint privado em uma rede virtual. Para obter mais informações, consulte Rede com acesso privado para o Banco de Dados do Azure para PostgreSQL.

Configurar a segurança

Configurações Pode mudar mais tarde Opções
Chave de criptografia de dados ❌ Não Gerenciado pelo serviço ou gerenciado pelo cliente

Adicionar tags de recurso (opcional)

Organizar recursos com pares nome-valor:

Nome Value Propósito
Ambiente Desenvolvimento Identificar o tipo de ambiente
CostCenter IT-Dept Acompanhar os custos por departamento
Proprietário admin@contoso.com Identificar parte responsável

Revisar e criar

  1. Selecione Examinar + criar.
  2. Examine todas as configurações.
  3. Selecione Criar para implantar.

A implantação normalmente leva de 5 a 10 minutos. Quando concluir, selecione Ir para o recurso para acessar o servidor.

Criar servidor usando a CLI do Azure

Pré-requisitos para a CLI

Para esse script, use a CLI do Azure localmente, pois a execução dele leva muito tempo no Cloud Shell.

Entrar no Azure

Use o script a seguir para entrar usando uma assinatura específica.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para saber mais, confira definir assinatura ativa ou fazer logon de forma interativa

Se você usar o Azure Cloud Shell, já está conectado.

Criar servidor com a CLI

Crie um servidor com um comando:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --public-access 0.0.0.0 \
  --storage-size 128 \
  --tags "Environment=Development"

Referência de parâmetros da CLI

Parâmetro Description Example
--resource-group Nome do grupo de recursos myresourcegroup
--name Nome do servidor global exclusivo mydemoserver-pgsql
--location região do Azure eastus
--admin-user Nome de usuário do administrador myadmin
--admin-password Senha do administrador YourPassword123!
--sku-name SKU de computação Standard_D4ds_v5
--tier Nível de computação Explosivo, Uso Geral, Otimizado para Memória
--storage-size Armazenamento em GB 128
--public-access Endereços IP permitidos 0.0.0.0 (todos os serviços do Azure), endereço IP ou intervalo de IP
--version Versão do PostgreSQL 16
--high-availability Modo de HA Desabilitado, SameZone, ZoneRedundant
--backup-retention Dias de retenção de backup 7-35

Exemplo avançado da CLI

Crie um servidor altamente disponível com redundância de zona:

az postgres flexible-server create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql-ha \
  --location eastus \
  --admin-user myadmin \
  --admin-password <password> \
  --sku-name Standard_D4ds_v5 \
  --tier GeneralPurpose \
  --storage-size 256 \
  --storage-type PremiumV2_LRS \
  --high-availability ZoneRedundant \
  --zone 1 \
  --standby-zone 2 \
  --backup-retention 14 \
  --public-access 0.0.0.0

Criar servidor usando o modelo do ARM

Visão geral do modelo do ARM

Os modelos do ARM (Azure Resource Manager) permitem definir a infraestrutura como código. Use modelos para implantações repetíveis.

Modelo mínimo do ARM

Salve este arquivo como postgres-server-template.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "serverName": {
      "type": "string",
      "metadata": {
        "description": "Server name must be globally unique"
      }
    },
    "administratorLogin": {
      "type": "string",
      "minLength": 1,
      "maxLength": 63,
      "metadata": {
        "description": "Administrator username"
      }
    },
    "administratorLoginPassword": {
      "type": "securestring",
      "minLength": 8,
      "metadata": {
        "description": "Administrator password"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Server location"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.DBforPostgreSQL/flexibleServers",
      "apiVersion": "2024-08-01",
      "name": "[parameters('serverName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_D4ds_v5",
        "tier": "GeneralPurpose"
      },
      "properties": {
        "administratorLogin": "[parameters('administratorLogin')]",
        "administratorLoginPassword": "[parameters('administratorLoginPassword')]",
        "version": "16",
        "storage": {
          "storageSizeGB": 128,
          "type": "Premium_LRS",
          "autoGrow": "Enabled"
        },
        "backup": {
          "backupRetentionDays": 7,
          "geoRedundantBackup": "Disabled"
        },
        "network": {
          "publicNetworkAccess": "Enabled"
        },
        "highAvailability": {
          "mode": "Disabled"
        }
      }
    }
  ],
  "outputs": {
    "serverFQDN": {
      "type": "string",
      "value": "[reference(parameters('serverName')).fullyQualifiedDomainName]"
    }
  }
}

Implantar o modelo do ARM

az group create --name myresourcegroup --location eastus

az deployment group create \
  --resource-group myresourcegroup \
  --template-file postgres-server-template.json \
  --parameters \
    serverName=mydemoserver-pgsql \
    administratorLogin=myadmin \
    administratorLoginPassword=<password>

Obter informações de conexão

Depois de criar o servidor, recupere os detalhes da conexão:

Usando o portal do Azure

  1. Acesse o servidor no portal do Azure.
  2. Abra a página Visão geral.
  3. Copie estes valores:
    • Nome do servidor (ponto de extremidade): mydemoserver-pgsql.postgres.database.azure.com
    • Logon do administrador: myadmin

Usando a CLI do Azure

az postgres flexible-server show \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --query "{serverName:fullyQualifiedDomainName, adminUser:administratorLogin}" \
  --output table

Conecte-se usando psql

Instalar o psql

Se você não tiver ferramentas de cliente do PostgreSQL, baixe o PostgreSQL para sua plataforma.

Conectar-se ao servidor

psql "host=mydemoserver-pgsql.postgres.database.azure.com port=5432 dbname=postgres user=myadmin sslmode=require"

Quando solicitado, insira a senha de administrador definida durante a criação do servidor.

Formato da cadeia de conexão

host=<server-name>.postgres.database.azure.com port=5432 dbname=<database-name> user=<admin-user> password=<password> sslmode=require

Verificar a conexão

Depois de se conectar, você deverá ver:

psql (14.13, server 16.4)
WARNING: psql major version 14, server major version 16.
         Some psql features might not work.
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.

postgres=>

Criar um banco de dados

CREATE DATABASE user_database;
\c user_database
\q

Solução de problemas de conexão

Firewall bloqueando a conexão

Se você vir:

connection to server at "mydemoserver-pgsql.postgres.database.azure.com" (###.###.###.###), port 5432 failed: Connection timed out

Solução: adicione seu endereço IP às regras de firewall:

az postgres flexible-server firewall-rule create \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --rule-name AllowMyIP \
  --start-ip-address <your-ip> \
  --end-ip-address <your-ip>

SSL necessário, mas não configurado

Verifique se a cadeia de conexão inclui sslmode=require.

Limpar os recursos

Ao concluir o início rápido, exclua os recursos para evitar encargos.

Excluir todo o grupo de recursos

az group delete --name myresourcegroup --yes

Excluir somente o servidor

az postgres flexible-server delete \
  --resource-group myresourcegroup \
  --name mydemoserver-pgsql \
  --yes