Guida introduttiva ad Aurora DSQL - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Guida introduttiva ad Aurora DSQL

Amazon Aurora DSQL è un database relazionale distribuito e senza server ottimizzato per carichi di lavoro transazionali. Nelle sezioni seguenti, imparerai come creare cluster Aurora DSQL a regione singola e multiarea, connetterti a essi e creare e caricare uno schema di esempio. Accederai ai cluster AWS Management Console e interagirai con il tuo database utilizzando l'utilità. psql Alla fine, avrai un cluster Aurora DSQL funzionante configurato e pronto all'uso per carichi di lavoro di test o produzione.

Prerequisiti

Prima di iniziare a utilizzare Aurora DSQL, assicurati di soddisfare i seguenti prerequisiti:

  • La tua identità IAM deve disporre dell'autorizzazione per accedere a. AWS Management Console

  • La tua identità IAM deve soddisfare uno dei seguenti criteri:

    • Accedi per eseguire qualsiasi azione su qualsiasi risorsa del tuo Account AWS

    • L'autorizzazione IAM iam:CreateServiceLinkedRole e la possibilità di accedere all'azione politica IAM dsql:*

  • Se lo usi AWS CLI in un ambiente simile a Unix, assicurati che siano installate la versione 3.8+ e la versione 14+ di Python. psql Per verificare le versioni dell'applicazione, esegui i seguenti comandi.

    python3 --version psql --version

    Se usi Python AWS CLI in un ambiente diverso, assicurati di configurare manualmente la versione 3.8+ e la versione 14+ di Python. psql

  • Se intendi accedere ad Aurora DSQL utilizzando, le versioni 3.8+ e 14+ di AWS CloudShell Python vengono fornite senza alcuna configurazione psql aggiuntiva. Per ulteriori informazioni su, consulta What is? AWS CloudShellAWS CloudShell .

  • Se intendi accedere ad Aurora DSQL utilizzando una GUI, usa o. DBeaver JetBrains DataGrip Per ulteriori informazioni, consultare Accesso ad Aurora DSQL con DBeaver e Accesso ad Aurora DSQL con JetBrains DataGrip.

Accesso ad Aurora SQL

È possibile accedere ad Aurora DSQL tramite le seguenti tecniche. Per informazioni su come utilizzare la CLI, e APIs SDKs, consulta. Accesso ad Aurora SQL

Accesso ad Aurora DSQL tramite AWS Management Console

È possibile accedere a AWS Management Console per Aurora DSQL all'indirizzo. https://console.aws.amazon.com/dsql

Accesso ad Aurora DSQL tramite client SQL

Aurora DSQL utilizza il protocollo PostgreSQL. Usa il tuo client interattivo preferito fornendo un token di autenticazione IAM firmato come password per la connessione al cluster. Un token di autenticazione è una stringa di caratteri univoca che Aurora DSQL genera dinamicamente utilizzando AWS la versione 4 di Signature.

Aurora DSQL utilizza il token solo per l'autenticazione. Il token non influisce sulla connessione dopo che è stata stabilita. Se si tenta di riconnettersi utilizzando un token scaduto, la richiesta di connessione viene rifiutata. Per ulteriori informazioni, consulta Generazione di un token di autenticazione in Amazon Aurora DSQL.

Accesso ad Aurora DSQL con psql (terminale interattivo PostgreSQL)

L'psqlutilità è un front-end basato su terminali per PostgreSQL. Consente di digitare le query in modo interattivo, inviarle a PostgreSQL e visualizzare i risultati delle query. Per migliorare i tempi di risposta alle query, usa il client PostgreSQL versione 17.

Scarica il programma di installazione del tuo sistema operativo dalla pagina dei download di PostgreSQL. Per ulteriori informazioni supsql, consulta https://www.postgresql. org/docs/current/app-psql.htm.

Se lo hai già AWS CLI installato, usa il seguente esempio per connetterti al tuo cluster. Puoi utilizzare AWS CloudShell, fornito con la versione psql preinstallata, oppure puoi installarlo psql direttamente.

# Aurora DSQL requires a valid IAM token as the password when connecting. # Aurora DSQL provides tools for this and here we're using Python. export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --expires-in 3600 \ --hostname your_cluster_endpoint) # Aurora DSQL requires SSL and will reject your connection without it. export PGSSLMODE=require # Connect with psql, which automatically uses the values set in PGPASSWORD and PGSSLMODE. # Quiet mode suppresses unnecessary warnings and chatty responses but still outputs errors. psql --quiet \ --username admin \ --dbname postgres \ --host your_cluster_endpoint

Accesso ad Aurora DSQL con DBeaver

DBeaver è uno strumento di database open source basato su una GUI. Puoi usarlo per connetterti e gestire il tuo database. Per effettuare il download DBeaver, consulta la pagina di download sul sito Web della DBeaver Community. I passaggi seguenti spiegano come connettersi al cluster utilizzando DBeaver.

Per configurare una nuova connessione Aurora DSQL in DBeaver
  1. Scegli Nuova connessione al database.

  2. Nella finestra Nuova connessione al database, scegli PostgreSQL.

  3. Nella scheda Impostazioni di connessione/Principale, scegli Connect by: Host e inserisci le seguenti informazioni.

    1. Host: utilizza l'endpoint del cluster.

      Database: immettere postgres

      Autenticazione: scegli Database Native

      Nome utente: inserisci admin

      Password: genera un token di autenticazione. Copia il token generato e usalo come password.

  4. Ignora qualsiasi avviso e incolla il token di autenticazione nel campo DBeaverPassword.

    Nota

    È necessario impostare la modalità SSL nelle connessioni client. Aurora DSQL supporta. SSLMODE=require Aurora DSQL applica la comunicazione SSL sul lato server e rifiuta le connessioni non SSL.

  5. È necessario essere connessi al cluster e iniziare a eseguire istruzioni SQL.

Importante

Le funzionalità amministrative fornite dai DBeaver database PostgreSQL (come Session Manager e Lock Manager) non si applicano a un database, a causa della sua architettura unica. Sebbene accessibili, queste schermate non forniscono informazioni affidabili sullo stato o sullo stato del database.

Scadenza delle credenziali di autenticazione per DBeaver

Le sessioni stabilite rimangono autenticate per un massimo di 1 ora o fino alla DBeaver disconnessione o al timeout. Per stabilire nuove connessioni, fornisci un token di autenticazione valido nel campo Password delle impostazioni di connessione. Il tentativo di aprire una nuova sessione (ad esempio, per elencare nuove tabelle o una nuova console SQL) impone un nuovo tentativo di autenticazione. Se il token di autenticazione configurato nelle impostazioni di connessione non è più valido, la nuova sessione ha esito negativo e DBeaver invalida tutte le sessioni aperte in precedenza. Tienilo a mente quando scegli la durata del token di autenticazione IAM con l'expires-inopzione.

Accesso ad Aurora DSQL con JetBrains DataGrip

JetBrains DataGrip è un IDE multipiattaforma per lavorare con SQL e database, incluso PostgreSQL. DataGrip include una robusta GUI con un editor SQL intelligente. Per effettuare il download DataGrip, vai alla pagina di download sul JetBrains sito Web.

Per configurare una nuova connessione Aurora DSQL in JetBrains DataGrip
  1. Scegli Nuova origine dati e scegli PostgreSQL.

  2. Nella Sources/General scheda Dati, inserisci le seguenti informazioni:

    1. Host: utilizza l'endpoint del cluster.

      Porta: Aurora DSQL utilizza l'impostazione predefinita di PostgreSQL: 5432

      Database: Aurora DSQL utilizza l'impostazione predefinita di PostgreSQL postgres

      Autenticazione: scegli. User & Password

      Nome utente: immettereadmin.

      Password: genera un token e incollalo in questo campo.

      URL: non modificare questo campo. Verrà compilato automaticamente in base agli altri campi.

  3. Password: forniscila generando un token di autenticazione. Copia l'output risultante del generatore di token e incollalo nel campo della password.

    Nota

    È necessario impostare la modalità SSL nelle connessioni client. Aurora DSQL supporta. PGSSLMODE=require Aurora DSQL applica la comunicazione SSL sul lato server e rifiuterà le connessioni non SSL.

  4. È necessario essere connessi al cluster e iniziare a eseguire istruzioni SQL:

Importante

Alcune viste fornite dai DataGrip database PostgreSQL (come Sessions) non si applicano a un database a causa della sua architettura unica. Sebbene accessibili, queste schermate non forniscono informazioni affidabili sulle sessioni effettive connesse al database.

Scadenza delle credenziali di autenticazione

Le sessioni stabilite rimangono autenticate per un massimo di 1 ora o fino a quando non si verifica una disconnessione esplicita o un timeout lato client. Se è necessario stabilire nuove connessioni, è necessario generare e fornire un nuovo token di autenticazione nel campo Password delle proprietà dell'origine dei dati. Il tentativo di aprire una nuova sessione (ad esempio, per elencare nuove tabelle o una nuova console SQL) impone un nuovo tentativo di autenticazione. Se il token di autenticazione configurato nelle impostazioni di connessione non è più valido, la nuova sessione avrà esito negativo e tutte le sessioni aperte in precedenza non saranno più valide.

Utilizzo del protocollo PostgreSQL con Aurora SQL

PostgreSQL utilizza un protocollo basato su messaggi per la comunicazione tra client e server. Il protocollo è supportato più e anche tramite TCP/IP socket di dominio UNIX. La tabella seguente mostra come Aurora DSQL supporta il protocollo PostgreSQL.

PostgreSQL Aurora SQL Note
Ruolo (noto anche come utente o gruppo) Ruolo di database Aurora DSQL crea un ruolo chiamato per te. admin Quando crei ruoli di database personalizzati, devi utilizzare il admin ruolo per associarli ai ruoli IAM per l'autenticazione durante la connessione al cluster. Per ulteriori informazioni, consulta Configurare i ruoli di database personalizzati.
Host (noto anche come hostname o hostspec) Endpoint del cluster I cluster Aurora DSQL Single-Region forniscono un unico endpoint gestito e reindirizzano automaticamente il traffico in caso di indisponibilità all'interno della regione.
Porta N/A: usa l'impostazione predefinita 5432 Questa è l'impostazione predefinita di PostgreSQL.
Database (dbname) uso postgres Aurora DSQL crea questo database per te quando crei il cluster.
Modalità SSL SSL è sempre abilitato sul lato server In Aurora DSQL, Aurora DSQL supporta la modalità SSL. require Le connessioni senza SSL vengono rifiutate da Aurora DSQL.
Password Token di autenticazione Aurora DSQL richiede token di autenticazione temporanei anziché password di lunga durata. Per ulteriori informazioni, consulta Generazione di un token di autenticazione in Amazon Aurora DSQL.

Fase 1: Creare un cluster Aurora DSQL a regione singola

L'unità base di Aurora DSQL è il cluster, dove vengono archiviati i dati. In questa attività, si crea un cluster in un'unica soluzione. Regione AWS

Per creare un cluster a regione singola in Aurora DSQL
  1. Accedi a AWS Management Console e apri la console Aurora DSQL all'indirizzo. https://console.aws.amazon.com/dsql

  2. Scegli Crea cluster e poi Single-Region.

  3. (Facoltativo) Nelle impostazioni del cluster, seleziona una delle seguenti opzioni:

    • Seleziona Personalizza le impostazioni di crittografia (avanzate) per scegliere o creare un AWS KMS key.

    • Seleziona Abilita protezione dall'eliminazione per impedire che un'operazione di eliminazione rimuova il cluster. Per impostazione predefinita, è selezionata la protezione dall'eliminazione.

  4. (Facoltativo) In Tag, scegli o inserisci un tag per questo cluster.

  5. Scegli Create cluster (Crea cluster).

Fase 2: Connect al cluster Aurora DSQL

Un endpoint del cluster viene generato automaticamente quando si crea un cluster Aurora DSQL in base all'ID e alla regione del cluster. Il formato di denominazione è. clusterid.dsql.region.on.aws Un client utilizza l'endpoint per creare una connessione di rete al cluster.

L'autenticazione è gestita tramite IAM, quindi non è necessario archiviare le credenziali nel database. Un token di autenticazione è una stringa unica di caratteri generata dinamicamente. Il token viene utilizzato solo per l'autenticazione e non influisce sulla connessione dopo che è stata stabilita. Prima di tentare la connessione, assicurati che la tua identità IAM disponga dell'dsql:DbConnectAdminautorizzazione, come descritto inPrerequisiti.

Nota

Per ottimizzare la velocità di connessione al database, usa il client PostgreSQL versione 17 e impostalo su direct:. PGSSLNEGOTIATION PGSSLNEGOTIATION=direct

Per connetterti al tuo cluster con un token di autenticazione
  1. Nella console Aurora DSQL, scegli il cluster a cui desideri connetterti.

  2. Scegli Connetti.

  3. Copia l'endpoint da Endpoint (Host).

  4. Assicurati che l'opzione Connect as admin sia selezionata nella sezione Token di autenticazione (Password).

  5. Copia il token di autenticazione generato. Questo token è valido per 15 minuti.

  6. Nella riga di comando del sistema operativo, utilizzare il comando seguente per avviare psql e connettersi al cluster. your_cluster_endpointSostituiscilo con l'endpoint del cluster che hai copiato in precedenza.

    PGSSLMODE=require \ psql --dbname postgres \ --username admin \ --host your_cluster_endpoint

    Quando viene richiesta una password, inserisci il token di autenticazione che hai copiato in precedenza. Se tenti di riconnetterti utilizzando un token scaduto, la richiesta di connessione viene rifiutata. Per ulteriori informazioni, consulta Generazione di un token di autenticazione in Amazon Aurora DSQL.

  7. Premere Invio. Dovresti vedere un prompt di PostgreSQL.

    postgres=>

    Se ricevi un errore di accesso negato, assicurati che la tua identità IAM disponga dell'autorizzazione. dsql:DbConnectAdmin Se disponi dell'autorizzazione e continui a ricevere errori di negazione dell'accesso, consulta Risoluzione dei problemi di IAM e Come posso risolvere gli errori di accesso negato o non autorizzato con una policy IAM? .

Passaggio 3: Esecuzione di comandi SQL di esempio in Aurora DSQL

Metti alla prova il tuo cluster Aurora DSQL eseguendo istruzioni SQL. Le seguenti istruzioni di esempio richiedono i file di dati denominati department-insert-multirow.sql andinvoice.csv, che è possibile scaricare dal repository aurora-dsql-samplesaws-samples/. GitHub

Per eseguire comandi SQL di esempio in Aurora DSQL
  1. Crea uno schema denominato. example

    CREATE SCHEMA example;
  2. Crea una tabella di fatture che utilizzi un UUID generato automaticamente come chiave primaria.

    CREATE TABLE example.invoice( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float);
  3. Crea un indice secondario che utilizzi la tabella vuota.

    CREATE INDEX ASYNC invoice_created_idx on example.invoice(created);
  4. Crea una tabella di reparto.

    CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  5. Usa il comando psql \include per caricare il file denominato department-insert-multirow.sql che hai scaricato dal repository aurora-dsql-samplesaws-samples/ su. GitHub Sostituisci my-path con il percorso della tua copia locale.

    \include my-path/department-insert-multirow.sql
  6. Usa il comando psql \copy per caricare il file denominato invoice.csv che hai scaricato dal repository aurora-dsql-samplesaws-samples/. GitHub Sostituisci my-path con il percorso della tua copia locale.

    \copy example.invoice(created, purchaser, amount) from my-path/invoice.csv csv
  7. Interroga i reparti e ordinali in base alle vendite totali.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;

    Il seguente esempio di output mostra che il Dipartimento Tre registra il maggior numero di vendite.

    name | sum_amount --------------------------+-------------------- Example Department Three | 54061.67752854594 Example Department Seven | 53869.65965365204 Example Department Eight | 52199.73742066634 Example Department One | 52034.078869900826 Example Department Six | 50886.15556256385 Example Department Two | 50589.98422247931 Example Department Five | 49549.852635496005 Example Department Four | 49266.15578027619 (8 rows)

Fase 4: Creare un cluster multiregionale

Quando si crea un cluster multiregionale, si specificano le seguenti regioni:

Regione remota

Questa è la regione in cui si crea un secondo cluster. Crei un secondo cluster in questa regione e lo trasferisci al cluster iniziale. Aurora DSQL replica tutte le scritture sul cluster iniziale nel cluster remoto. È possibile leggere e scrivere su qualsiasi cluster.

Regione dei testimoni

Questa regione riceve tutti i dati scritti nel cluster multiregionale. Tuttavia, le regioni di riferimento non ospitano gli endpoint dei client e non forniscono l'accesso ai dati degli utenti. Una finestra limitata del registro delle transazioni crittografato viene mantenuta nelle regioni di riferimento. Questo registro facilita il ripristino e supporta il quorum transazionale se una regione non è più disponibile.

L'esempio seguente mostra come creare un cluster iniziale, creare un secondo cluster in una regione diversa e quindi eseguire il peering dei due cluster per creare un cluster multiregionale. Dimostra inoltre la replica di scrittura tra regioni e letture coerenti da entrambi gli endpoint regionali.

Per creare un cluster multiregionale
  1. Accedi a AWS Management Console e apri la console Aurora DSQL all'indirizzo. https://console.aws.amazon.com/dsql

  2. Nel pannello di navigazione scegliere Clusters (Cluster).

  3. Scegli Crea cluster e poi Multiregione.

  4. (Facoltativo) Nelle impostazioni del cluster, seleziona una delle seguenti opzioni per il cluster iniziale:

    • Seleziona Personalizza le impostazioni di crittografia (avanzate) per scegliere o creare un AWS KMS key.

    • Seleziona Abilita protezione dall'eliminazione per impedire che un'operazione di eliminazione rimuova il cluster. Per impostazione predefinita, è selezionata la protezione dall'eliminazione.

  5. Nelle impostazioni multiregionali, scegli le seguenti opzioni per il cluster iniziale:

    • In Witness Region, scegli una regione. Attualmente, solo le regioni con sede negli Stati Uniti sono supportate per le regioni di riferimento in cluster multiregionali.

    • (Facoltativo) Nell'ARN del cluster di regione remota, inserire un ARN per un cluster esistente in un'altra regione. Se non esiste alcun cluster che funga da secondo cluster nel cluster multiregionale, completa la configurazione dopo aver creato il cluster iniziale.

  6. (Facoltativo) Scegliete i tag per il cluster iniziale.

  7. Scegli Crea cluster per creare il tuo cluster iniziale. Se non hai inserito un ARN nel passaggio precedente, la console mostra la configurazione del cluster in attesa di notifica.

  8. Nella finestra Configurazione del cluster in attesa di notifica, scegli Configurazione completa del cluster multiregionale. Questa azione avvia la creazione di un secondo cluster in un'altra regione.

  9. Scegli una delle seguenti opzioni per il tuo secondo cluster:

    • Aggiungi ARN del cluster della regione remota: scegli questa opzione se esiste un cluster e desideri che sia il secondo cluster del cluster multiregionale.

    • Crea cluster in un'altra regione: scegli questa opzione per creare un secondo cluster. In Regione remota, scegli la regione per questo secondo cluster.

  10. Scegli Crea cluster in your-second-region, your-second-region dov'è la posizione del secondo cluster. La console si apre nella tua seconda regione.

  11. (Facoltativo) Scegli le impostazioni del cluster per il secondo cluster. Ad esempio, puoi scegliere un AWS KMS key.

  12. Scegli Crea cluster per creare il tuo secondo cluster.

  13. Scegli Peer in initial-cluster-region, initial-cluster-region dov'è la regione che ospita il primo cluster che hai creato.

  14. Quando richiesto, scegli Conferma. Questo passaggio completa la creazione del cluster multiregionale.

Per connetterti al secondo cluster
  1. Apri la console Aurora DSQL e scegli la regione per il tuo secondo cluster.

  2. Scegli Cluster.

  3. Seleziona la riga per il secondo cluster del cluster multiregionale.

  4. In Azioni, scegli Apri in CloudShell.

  5. Scegli Connect as admin.

  6. Scegli Avvia CloudShell.

  7. Seleziona Esegui.

  8. Crea uno schema di esempio seguendo la procedura riportata di seguitoPassaggio 3: Esecuzione di comandi SQL di esempio in Aurora DSQL.

    Transazioni di esempio

    CREATE SCHEMA example; CREATE TABLE example.invoice(id UUID PRIMARY KEY DEFAULT gen_random_uuid(), created timestamp, purchaser int, amount float); CREATE INDEX ASYNC invoice_created_idx on example.invoice(created); CREATE TABLE example.department(id INT PRIMARY KEY UNIQUE, name text, email text);
  9. Uso psql copy e include comandi per caricare dati di esempio. Per ulteriori informazioni, consulta Passaggio 3: Esecuzione di comandi SQL di esempio in Aurora DSQL.

    \copy example.invoice(created, purchaser, amount) from samples/invoice.csv csv \include samples/department-insert-multirow.sql
Per interrogare i dati nel secondo cluster dalla regione che ospita il cluster iniziale
  1. Nella console Aurora DSQL, scegli la regione per il cluster iniziale.

  2. Scegli Cluster.

  3. Seleziona la riga per il secondo cluster del cluster multiregionale.

  4. In Azioni, scegli Apri in CloudShell.

  5. Scegli Connect as admin.

  6. Scegli Avvia CloudShell.

  7. Seleziona Esegui.

  8. Interroga i dati che hai inserito nel secondo cluster.

    SELECT name, sum(amount) AS sum_amount FROM example.department LEFT JOIN example.invoice ON department.id=invoice.purchaser GROUP BY name HAVING sum(amount) > 0 ORDER BY sum_amount DESC;