Condividi tramite


Avvio rapido: creare un Database di Azure per PostgreSQL - Server flessibile

Database di Azure per PostgreSQL è un servizio gestito che è possibile usare per eseguire, gestire e ridimensionare database PostgreSQL a disponibilità elevata nel cloud.

Questa guida introduttiva illustra come creare un'istanza del server flessibile di Database di Azure per PostgreSQL usando il portale di Azure, l'interfaccia della riga di comando di Azure o i modelli di Azure Resource Manager (ARM).

Prerequisiti

Prima di iniziare, assicurarsi di avere:

  • Una sottoscrizione di Azure. Se non è disponibile, creare un account Azure gratuito.
  • Autorizzazioni appropriate per creare risorse nella sottoscrizione.

Comprendere quello che si sta creando

Un'istanza di server flessibile di Azure Database per PostgreSQL include:

  • Set configurato di risorse di calcolo e archiviazione.
  • Distribuzione all'interno di un gruppo di risorse di Azure.
  • Il database postgres creato per impostazione predefinita.
  • Un azure_maintenance database per i processi del servizio gestito.
  • Un azure_sys database per le funzionalità dell'archivio query e dell'ottimizzazione degli indici.

Annotazioni

Le connessioni usano in genere la porta 5432 o la porta 6432 se ci si connette tramite il pool di connessioni PgBouncer predefinito.

Creare un server con il portale di Azure

  1. Accedi al portale di Azure.
  2. Selezionare Crea una risorsa nell'angolo superiore sinistro.
  3. In Categorie selezionare Database.
  4. Individuare e selezionare il server flessibile di Azure Database per PostgreSQL.
  5. Fare clic su Crea.

Configurare le impostazioni di base

Dettagli di progetto

Impostazione Valore suggerito Note
Subscription Il tuo abbonamento Scegliere dove fatturare la risorsa
Gruppo di risorse myresourcegroup Crea nuovo o seleziona esistente

Dettagli server

Impostazione Valore suggerito Description
Nome del server mydemoserver-pgsql Deve essere univoco a livello globale. Il dominio .postgres.database.azure.com viene aggiunto automaticamente
Regione Area più vicina all'utente Prendere in considerazione conformità, residenza dei dati, prezzi e prossimità agli utenti
Versione di PostgreSQL Ultima versione disponibile Attualmente supportato: 18, 17, 16, 15, 14, 13, 12, 11
Tipo di carico di lavoro Sviluppo Lo sviluppo usa SKU burstable. L'ambiente di produzione usa utilizzo generico o ottimizzato per la memoria.
Zona di disponibilità Nessuna preferenza Utile per il posizionamento assieme alla tua applicazione

Disponibilità elevata

Opzione SLA Description
Disabled 99,9% Server singolo senza standby
Stessa zona 99.95% Standby nella stessa zona di disponibilità
Con ridondanza della zona 99,99% Standby in una zona di disponibilità diversa

Authentication

Impostazione Description Recommended
Metodo di autenticazione Modalità di autenticazione degli utenti - Solo Autenticazione PostgreSQL (per la guida introduttiva)
- Autenticazione di Microsoft Entra (per la produzione)
- Entrambi (per flessibilità)
Nome utente amministratore adminuser - Deve essere di 1-63 caratteri
- Solo numeri e lettere
- Non è possibile iniziare con pg_
- Non può essere un nome riservato di sistema
Parola d’ordine Password complessa 8-128 caratteri con caratteri maiuscoli, minuscoli, numeri e caratteri speciali

Configurare risorse di calcolo e archiviazione

Selezionare Configura server per personalizzare:

Livello di calcolo

Tier Caso d'uso Description
Possibilità di burst Sviluppo Per i carichi di lavoro che non necessitano di CPU completa continua
Uso Generale Produzione Carichi di lavoro di produzione più comuni
Ottimizzato per la memoria Carichi di lavoro a memoria elevata Carichi di lavoro che richiedono un rapporto elevato tra memoria e CPU

Impostazioni di archiviazione

Impostazione Può cambiare in un secondo momento Description
Tipo di archiviazione ❌ No SSD Premium o SSD Premium v2
Dimensioni di archiviazione ✅ Sì (solo aumento) Non è possibile ridurre dopo la creazione
Livello di prestazioni ✅ Sì Controlla le IOPS e la velocità effettiva
Aumento automatico dell'archiviazione ✅ Sì Espandersi automaticamente quando si avvicinano i limiti

Impostazioni backup

Impostazione Può cambiare in un secondo momento Description
Conservazione dei backup ✅ Sì 7-35 giorni
Ridondanza del backup ❌ No Ridondanza locale, ridondanza zonale o ridondanza geografica
Ridondanza geografica ❌ No Disponibile solo nelle aree abbinate di Azure

Configurare la rete

Scegliere il metodo di connettività (non può essere modificato dopo la creazione):

Accesso pubblico (indirizzi IP consentiti)

Connettersi tramite un endpoint pubblico usando le regole del firewall.

Impostazioni:

Impostazione Description
Consenti accesso pubblico Abilitare l'accesso pubblico per configurare le regole del firewall
Consenti servizi di Azure Consentire le connessioni da tutti i servizi di Azure
Aggiungere l'indirizzo IP client corrente Aggiungi l'indirizzo IP alla lista consentita

Accesso privato (integrazione rete virtuale)

Connettersi tramite un endpoint privato all'interno di una rete virtuale. Per altre informazioni, vedere Rete con accesso privato per Database di Azure per PostgreSQL.

Configurare la sicurezza

Impostazione Può cambiare in un secondo momento Options
Chiave di crittografia dei dati ❌ No Gestito dal servizio o gestito dal cliente

Aggiungere tag di risorsa (facoltativo)

Organizzare le risorse con coppie nome-valore:

Nome Value Scopo
Ambiente Sviluppo Identificare il tipo di ambiente
CostCenter IT-Dept Tenere traccia dei costi per reparto
Proprietario admin@contoso.com Identificare le parti responsabili

Rivedi e crea

  1. Selezionare Rivedi e crea.
  2. Esaminare tutte le configurazioni.
  3. Selezionare Crea per la distribuzione.

La distribuzione richiede in genere 5-10 minuti. Al termine, selezionare Vai alla risorsa per accedere al server.

Creare un server con l'interfaccia della riga di comando di Azure

Prerequisiti per CLI

Per questo script, usare l'interfaccia della riga di comando di Azure in locale perché l'esecuzione in Cloud Shell richiede troppo tempo.

Accedere ad Azure

Usare lo script seguente per accedere usando una sottoscrizione specifica.

subscription="<subscriptionId>" # add subscription here

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

Per maggiori informazioni, vedere Impostare una sottoscrizione attiva o Accedere in modo interattivo

Se si usa Azure Cloud Shell, si è già connessi.

Creare un server con la CLI

Creare un server con un 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"

Informazioni di riferimento dei parametri dell'interfaccia a riga di comando

Parametro Description Example
--resource-group Nome del gruppo di risorse myresourcegroup
--name Nome globale univoco del server mydemoserver-pgsql
--location Azure region eastus
--admin-user Nome utente amministratore myadmin
--admin-password Password amministratore YourPassword123!
--sku-name SKU di calcolo Standard_D4ds_v5
--tier Livello di calcolo Scalabile, UsoGenerico, OttimizzatoPerLaMemoria
--storage-size Archiviazione in GB 128
--public-access Indirizzi IP consentiti 0.0.0.0 (tutti i servizi di Azure), indirizzo IP o intervallo IP
--version Versione di PostgreSQL 16
--high-availability modalità HA Disabilitato, SameZone, ZoneRedundant
--backup-retention Giorni di conservazione dei backup 7-35

Esempio di interfaccia della riga di comando avanzata

Creare un server con ridondanza della zona a disponibilità elevata:

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

Creazione di un server utilizzando un modello ARM

Panoramica del modello di Gestione delle Risorse di Azure

I modelli di Azure Resource Manager (ARM) consentono di definire l'infrastruttura come codice. Usare i modelli per le distribuzioni ripetibili.

Modello ARM minimo

Salvare il file come 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]"
    }
  }
}

Distribuire il modello di Resource Manager

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>

Ottenere informazioni di connessione

Dopo aver creato il server, recuperare i dettagli di connessione:

Uso del portale di Azure

  1. Vai al tuo server nel portale di Azure.
  2. Aprire la pagina Panoramica.
  3. Copiare questi valori:
    • Nome server (punto finale): mydemoserver-pgsql.postgres.database.azure.com
    • Account di accesso amministratore: myadmin

Utilizzo della CLI di Azure

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

Connettersi tramite psql

Installare psql

Se non si hanno strumenti client PostgreSQL, scaricare PostgreSQL per la piattaforma.

Connettersi al server

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

Quando richiesto, immettere la password amministratore impostata durante la creazione del server.

Formato della stringa di connessione

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

Verificare la connessione

Dopo la connessione, verrà visualizzato quanto illustrato di seguito:

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=>

Creazione di un database

CREATE DATABASE user_database;
\c user_database
\q

Risoluzione dei problemi di connessione

Blocco della connessione da parte del firewall

Se viene visualizzato:

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

Soluzione: aggiungere l'indirizzo IP alle regole del 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 obbligatorio ma non configurato

Verificare che la stringa di connessione includa sslmode=require.

Pulire le risorse

Al termine dell'avvio rapido, eliminare le risorse per evitare addebiti.

Eliminare l'intero gruppo di risorse

az group delete --name myresourcegroup --yes

Eliminare solo il server

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