Database

Amazon Aurora Serverless PostgreSQL: Database On-Demand in Secondi

Amazon Aurora Serverless PostgreSQL: Database On-Demand in Secondi

Amazon Aurora Serverless PostgreSQL offre un modo rivoluzionario per gestire i database. Invece di preoccuparti di dimensionare l’istanza, gestire la capacità e pagare per risorse inutilizzate, Aurora Serverless si adatta automaticamente alle esigenze della tua applicazione. Questo significa che paghi solo per ciò che usi, rendendolo ideale per carichi di lavoro variabili, ambienti di sviluppo/test e applicazioni con picchi di traffico imprevedibili. Immagina di poter creare un database PostgreSQL completamente funzionante in pochi secondi, senza dover configurare manualmente l’infrastruttura sottostante.

In questo tutorial, ti guiderò attraverso il processo di creazione, connessione e gestione di un database Amazon Aurora Serverless PostgreSQL. Imparerai come sfruttare la scalabilità automatica, il risparmio sui costi e la semplicità di gestione che questa soluzione offre. Al termine di questa guida, sarai in grado di implementare Aurora Serverless PostgreSQL per le tue applicazioni, ottimizzando i costi e migliorando l’efficienza operativa.

Prima di iniziare, assicurati di avere un account AWS attivo e le autorizzazioni necessarie per creare risorse RDS e VPC.

Prerequisiti

  • Un account AWS attivo.
  • Autorizzazioni IAM per creare e gestire risorse RDS (Amazon Relational Database Service) e VPC (Virtual Private Cloud).
  • AWS CLI (Command Line Interface) installato e configurato (opzionale, ma consigliato).
  • Un client PostgreSQL (es. psql) installato sul tuo sistema per connetterti al database.
  • Conoscenza base di PostgreSQL e dei concetti di database relazionali.

Creazione del Database Aurora Serverless PostgreSQL

La creazione di un database Aurora Serverless PostgreSQL è un processo semplice e veloce. Useremo la console AWS per illustrare i passaggi, ma è possibile automatizzare il processo tramite AWS CLI o Terraform.

Accedi alla Console RDS

Il primo passo è accedere alla console RDS di AWS.

  1. Accedi alla console AWS.
  2. Nella barra di ricerca, digita “RDS” e seleziona “RDS” (Relational Database Service).

Crea un Nuovo Database

Una volta nella console RDS, puoi iniziare il processo di creazione del database:

  1. Nel pannello di navigazione a sinistra, clicca su “Databases”.
  2. Clicca sul pulsante “Create database”.

Configura il Database

Nella pagina di creazione del database, seleziona le opzioni appropriate:

  1. Database creation method: Seleziona “Standard create”.
  2. Engine type: Seleziona “Amazon Aurora”.
  3. Aurora edition: Seleziona “Amazon Aurora PostgreSQL-Compatible Edition”.
  4. Capacity settings: Seleziona “Serverless”.
  5. DB cluster name: Inserisci un nome per il tuo cluster di database (es. aurora-serverless-pg).
  6. Credentials settings: Imposta un nome utente e una password per l’utente amministratore del database (es. admin e una password sicura). Ricorda queste credenziali, ti serviranno per connetterti al database.
  7. Capacity configuration: Definisci la capacità minima e massima della unità di calcolo Aurora (ACU). Questo determina la scalabilità del database. Inizia con valori bassi (es. 0.5 ACU min e 2 ACU max) per ridurre i costi iniziali.
  8. Connectivity: Assicurati di configurare correttamente il VPC e il gruppo di sicurezza per consentire l’accesso al database dalla tua rete. È consigliabile creare un nuovo gruppo di sicurezza che consenta l’accesso solo dalla tua macchina o da un VPC specifico.
  9. Additional configuration: Configura le impostazioni aggiuntive come backup, monitoraggio e manutenzione. Considera di abilitare il monitoraggio avanzato per ottenere informazioni dettagliate sulle prestazioni del database.

Finalizza la Creazione

Dopo aver configurato tutte le opzioni, rivedi le impostazioni e clicca su “Create database”. La creazione del database richiederà alcuni minuti. Puoi monitorare lo stato del processo nella console RDS.

Connessione al Database

Una volta che il database è stato creato, è possibile connettersi ad esso utilizzando un client PostgreSQL.

Ottieni l’Endpoint del Database

Per connetterti al database, avrai bisogno dell’endpoint del cluster.

  1. Nella console RDS, seleziona il tuo cluster di database (aurora-serverless-pg).
  2. Nella sezione “Connectivity & security”, troverai l’endpoint del cluster (Writer endpoint). Copia questo endpoint.

Configura il Gruppo di Sicurezza

Assicurati che il gruppo di sicurezza associato al database consenta l’accesso dalla tua macchina o dalla rete da cui ti connetterai.

  1. Nella console RDS, seleziona il tuo cluster di database.
  2. Nella sezione “Connectivity & security”, clicca sul link del gruppo di sicurezza (Security group).
  3. Nella pagina del gruppo di sicurezza, aggiungi una regola in ingresso (Inbound rule) che consenta il traffico PostgreSQL (porta 5432) dal tuo indirizzo IP o dalla tua rete.

Connettiti con psql

Utilizza il client psql per connetterti al database. Apri un terminale e esegui il seguente comando, sostituendo , e con i valori appropriati:

psql -h <endpoint> -U <username> -p 5432 -d postgres

Ad esempio:

psql -h aurora-serverless-pg.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com -U admin -p 5432 -d postgres

Ti verrà richiesta la password. Inserisci la password che hai impostato durante la creazione del database.

Se la connessione ha successo, dovresti vedere il prompt di psql:

psql (14.7)
Type "help" for help.

postgres=>

Ora puoi eseguire query SQL sul tuo database Aurora Serverless PostgreSQL.

Prova Esecuzione Query

Esegui una query di prova per verificare che il database funzioni correttamente:

SELECT version();

Dovresti vedere un output simile a questo:

                                                     version
----------------------------------------------------------------------------------------------------------------
 PostgreSQL 14.7 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-15), 64-bit
(1 row)

Scalabilità e Monitoraggio

Una delle caratteristiche principali di Aurora Serverless è la sua capacità di scalare automaticamente in base al carico di lavoro.

Monitoraggio della Capacità

Puoi monitorare la capacità utilizzata dal tuo database nella console RDS.

  1. Nella console RDS, seleziona il tuo cluster di database.
  2. Nella scheda “Monitoring”, puoi visualizzare grafici che mostrano l’utilizzo della CPU, la memoria e la capacità del database nel tempo.

Test di Scalabilità

Per testare la scalabilità automatica, puoi simulare un carico di lavoro elevato sul database. Ad esempio, puoi eseguire una serie di query complesse o caricare grandi quantità di dati. Osserva come la capacità del database aumenta automaticamente per gestire il carico di lavoro.

Configurazione della Scalabilità

Puoi modificare le impostazioni di scalabilità (capacità minima e massima) nella console RDS.

  1. Nella console RDS, seleziona il tuo cluster di database.
  2. Clicca su “Modify”.
  3. Nella sezione “Capacity configuration”, puoi modificare i valori di capacità minima e massima.

Ottimizzazione dei Costi

Aurora Serverless PostgreSQL è progettato per ottimizzare i costi, ma è importante monitorare l’utilizzo e configurare correttamente le impostazioni per massimizzare i risparmi.

Monitoraggio dei Costi

Utilizza AWS Cost Explorer per monitorare i costi associati al tuo database Aurora Serverless. Analizza i costi per identificare eventuali aree di ottimizzazione.

Configurazione del Timeout di Inattività

Aurora Serverless mette in pausa automaticamente il database se non viene utilizzato per un certo periodo di tempo. Puoi configurare il timeout di inattività nella console RDS.

  1. Nella console RDS, seleziona il tuo cluster di database.
  2. Clicca su “Modify”.
  3. Nella sezione “Additional configuration”, puoi configurare il timeout di inattività. Un valore più basso ridurrà i costi, ma potrebbe causare un ritardo nella riattivazione del database quando viene richiesto.

Best Practices per l’Ottimizzazione dei Costi

  • Utilizza la capacità minima appropriata per il tuo carico di lavoro.
  • Configura un timeout di inattività adeguato.
  • Monitora regolarmente i costi e l’utilizzo del database.
  • Considera l’utilizzo di istanze riservate o piani di risparmio per ridurre ulteriormente i costi. Quando ho configurato questo su un ente sanitario pubblico con 2.000 endpoint, ho notato che l’ottimizzazione del timeout di inattività ha portato a un risparmio significativo.

Errori comuni e risoluzione

  • Errore di connessione: “Connection timed out” o “Connection refused”:

* Causa: Il gruppo di sicurezza non consente l’accesso dalla tua macchina o rete.

* Soluzione: Verifica le regole in ingresso del gruppo di sicurezza e assicurati che consentano il traffico PostgreSQL (porta 5432) dal tuo indirizzo IP o dalla tua rete.

  • Errore di autenticazione: “Password authentication failed”:

* Causa: Credenziali errate (nome utente o password).

* Soluzione: Verifica il nome utente e la password. Se hai dimenticato la password, puoi reimpostarla nella console RDS.

  • Il database non scala automaticamente come previsto:

* Causa: La capacità massima è troppo bassa o il carico di lavoro non è sufficientemente elevato.

* Soluzione: Aumenta la capacità massima e simula un carico di lavoro più elevato per testare la scalabilità.

Conclusione

In questo tutorial, hai imparato come creare, connettere e gestire un database Amazon Aurora Serverless PostgreSQL. Hai scoperto come sfruttare la scalabilità automatica, l’ottimizzazione dei costi e la semplicità di gestione che questa soluzione offre. Ricorda di monitorare regolarmente i costi e l’utilizzo del database per massimizzare i risparmi. Aurora Serverless PostgreSQL è una soluzione ideale per una vasta gamma di applicazioni, dai carichi di lavoro variabili agli ambienti di sviluppo/test.

I punti chiave da ricordare sono:

  • Aurora Serverless PostgreSQL si adatta automaticamente alle esigenze della tua applicazione, scalando la capacità in base al carico di lavoro.
  • Paga solo per ciò che usi, ottimizzando i costi rispetto alle istanze database tradizionali.
  • La configurazione è semplice e veloce, permettendoti di creare un database in pochi secondi.

Hai domande o commenti? Lascia un commento qui sotto!

Condividi questo articolo:

Scritto da

Rosario Giordano

Rosario Giordano è System Administrator e consulente IT specializzato in cybersecurity e cloud, con oltre 20 anni di esperienza nella gestione di infrastrutture Linux enterprise. Le sue aree di competenza includono hardening di SSH, piattaforme Kubernetes, database PostgreSQL, ambient i virtualizzati VMware e Proxmox, nonché la conformità ai framework di sicurezza NIS2 e ISO 27001.