Disaster recovery veloce tra regioni e letture globali a bassa latenza

con Amazon Aurora Global Database

In questo tutorial scoprirai come creare una distribuzione Amazon Aurora Global Database che copre più regioni AWS e replica i dati senza alcun impatto sulle prestazioni. Aurora Global Database offre una funzione di disaster recovery da interruzioni a livello regionale e permette letture globali a bassa latenza.

Amazon Aurora è un database relazionale compatibile con MySQL e PostgreSQL che combina le prestazioni e la disponibilità dei database aziendali tradizionali con la semplicità e l'economicità dei database open source.

Un database globale Aurora è costituito da una regione AWS primaria, dove i dati vengono acquisiti, e da più regioni AWS secondarie di sola lettura in cui i dati vengono replicati. Le scritture vanno al database primario, ma puoi leggere da qualsiasi regione e beneficiare di bassa latenza.

Questo tutorial utilizzerà Amazon Aurora compatibile con MySQL. Questo tutorial non rientra nel piano gratuito e avrà un costo inferiore a 1 USD, se segui i passi indicati nel tutorial e interrompi le risorse alla chiusura del tutorial.

Prerequisiti

Un cluster database Amazon Aurora è costituito da una o più istanze database e da un volume del cluster che gestisce i dati per tali istanze. Un volume del cluster Aurora è un volume di storage di database virtuale che si estende su più zone di disponibilità, ciascuna delle quali include una copia dei dati del cluster database. Un cluster database Aurora è formato da due tipi di istanze: un'istanza database primaria, che supporta operazioni di lettura e scrittura, e una replica Aurora, che si collega allo stesso volume di storage dell'istanza database primaria e supporta solo operazioni di lettura. Ogni cluster database Aurora può avere fino a 15 repliche Aurora situate in zone di disponibilità separate. Aurora esegue automaticamente il failover su una replica Aurora nel caso in cui l'istanza database primaria non sia disponibile.

In questo tutorial verrà creato un database globale Aurora con un cluster primario in una regione e un cluster secondario in un'altra regione. Scegli tu quali regioni utilizzare. Si consiglia di disporre di un'applicazione in ciascuna delle regioni che verranno utilizzate. Ad esempio, se il database globale Aurora avrà un cluster primario in us-east-1 e un cluster secondario in eu-west-3, dovresti avere un'istanza in us-east-1 e un'altra in eu-west-3.

Inoltre, se si desidera risparmiare tempo, per ciascuna di tali regioni è possibile creare un gruppo di sicurezza che consenta connessioni in entrata dalle proprie istanze. Ad esempio, è possibile creare un gruppo di sicurezza con una regola in entrata di tipo MYSQL/Aurora che consenta connessioni TCP sulla porta 3306 dal gruppo di sicurezza delle istanze.

Infine, per testare il database globale Aurora (vedi fase 8), avrai bisogno di un client MySQL. Se le istanze dell'applicazione eseguono Amazon Linux, per installare un client MySQL basta semplicemente eseguire sudo yum install mysql, ma il comando esatto dipende dal sistema operativo in esecuzione. Se utilizzi Windows, puoi invece scaricare MySQL Workbench.

Informazioni sul tutorial
Durata 10 minuti                                           
Costo Meno di 1 USD
Caso d'uso Database
Prodotti Amazon Aurora e Amazon RDS
Destinatari Amministratori di database e sviluppatori
Livello Intermedio
Ultimo aggiornamento 3 giugno 2019

Fase 1. Accesso alla console Amazon RDS

1.1 – Apri un browser e accedi alla Console Amazon RDS. Se hai già un account AWS, accedi alla console. Altrimenti, crea un nuovo account AWS per iniziare.

1.2 – Nell'angolo superiore destro, selezionare la regione in cui vuoi avviare il cluster database Aurora. Ai fini di questo tutorial, useremo us-east-1 come regione principale ed eu-west-1 come regione secondaria.

1.3 – Fare clic su "Create database" (Crea database) nella finestra di Amazon Aurora.

1.4 – Scorrere verso il basso e fare clic su "Try it now" (Prova ora); nella finestra Aurora Global Database. Se non visualizzi l'opzione "Try it now" (Prova ora), fare clic qui.

Fase 2. Opzioni del motore

2.1 – Su Engine type (Tipo di motore), selezionare "Amazon Aurora".

2.2 – Su Edition (Edizione), selezionare "Amazon Aurora with MySQL compatibility" (Amazon Aurora con compatibilità MySQL).

2.3 – Nel campo Version (Versione), selezionare la versione più recente di MySQL.

2.4 – Su Database Location (Posizione del database), selezionare "Global" (Globale).

2.5 – Selezionare il modello "Production" (Produzione).

Fase 3. Impostazioni del database globale

3.1 – Per Global database identifier (Identificatore del database globale), digitare "global-database-1".

Fase 4. Impostazioni della regione primaria

4.1 – Per DB instance size (Dimensione dell'istanza database), selezionare un tipo di istanza Large (che termina con .large).

4.2 – Per Availability & durability (Disponibilità e durabilità), scegliere "Don't create an Aurora Replica" (Non creare una replica Aurora).

Si consiglia di disporre di una replica Aurora per gli ambienti di produzione, poiché consente di dimensionare le letture e offre failover automatici all'interno della stessa regione del database primario. Ai fini di questo tutorial, per mantenere la semplicità non viene aggiunta una replica Aurora.

Fase 5. Connettività

5.1 – Selezionare il VPC in cui vuoi creare il database.

Dopo la creazione, non sarà possibile trasferire il database su un VPC diverso.

5.2 – Fare clic su "Additional connectivity configuration" (Configurazione di connettività aggiuntiva).

5.3 – Selezionare il valore predefinito per Subnet group (Gruppo di sottorete).

5.4 – Su Publicly accessible (Pubblicamente accessibile), selezionare "No".

Ciò significa che dovrai collegarti al database da un'istanza EC2 con lo stesso VPC.

5.5 – Su VPC security group (Gruppo di sicurezza VPC), selezionare "Create new" (Crea nuovo). In alternativa, se disponi di un gruppo di sicurezza che consente le connessioni TCP in entrata sulla porta 3306, puoi scegliere tale gruppo.

5.6 – In New VPC security group name (Nome nuovo gruppo di sicurezza VPC), digitare "global-database".

5.7 – Mantenere il valore predefinito per Database port (Porta database).

Fase 6. Ulteriori configurazioni

6.1 – Mantenere i valori predefiniti per le Opzioni database, Backup, Monitoraggio, Esportazione registro, Manutenzione e Protezione eliminazione.

6.2 – Fare clic su "Create database" (Crea database).

Durante la creazione delle istanze, ti verrà mostrato un banner che spiega come ottenere le credenziali. È una buona occasione per memorizzare le credenziali da qualche parte, perché è l'unica volta che verrà visualizzata questa password.

6.3 – Fare clic su "View credential details" (Visualizza dettagli credenziali).

6.4 – Salvare il nome utente e la password.

Fase 7. Aggiunta di una regione secondaria

7.1 – Selezionare "global-database-1".

7.2 – Fare clic "Actions > Add a region" (Azioni > Aggiungi una regione).

7.3 – Dal menu a discesa, selezionare una regione.

7.4 – Ripetere la fasi da 4.1 a 5.7.

7.5 – Fare clic su "Add region" (Aggiungi regione).

Una volta che i database sono disponibili, passare alla fase 8.

Fase 8. Test del database globale Aurora

8.1 – Fare clic sul database principale.

8.2 – Copiare l'endpoint di scrittura.

Aprire due finestre del terminale, accedere alle istanze nelle regioni primaria e secondaria e utilizzare il client della riga di comando mysql per connettersi ai database.

Ora puoi creare un database, creare una tabella e scrivere alcuni record. Tutto ciò che scrivi sul cluster primario verrà replicato nel cluster secondario.

8.3 – Connettersi al database primario:

$ mysql -h endpoint -P 3306 -u admin -p

Quando viene richiesta una password, immettere la password salvata nella fase 6.6.

8.4 – Creare un database e scrivere alcuni dati.

mysql> CREATE database tutorial (Crea tutorial database);
Query eseguita con successo, 1 riga interessata (0,01 secondi)

A questo punto è possibile utilizzare il database del tutorial, creare tabelle e aggiungere alcuni record.

8.5 – Andare alla regione secondaria.

8.6 – Fare clic sul database secondario.

8.7 – Copiare l'endpoint di lettura.

8.8 – Connettersi al database secondario:

$ mysql -h endpoint -P 3306 -u admin -p

Quando viene richiesta una password, immettere la password salvata nella fase 6.6.

8.9 – Leggere alcuni dati:

mysql> USE tutorial (Utilizza tutorial);
Database modificato

Ora puoi verificare che il database sia stato replicato nel database secondario. Se hai creato una tabella, puoi scrivere nel cluster primario e leggere i dati dal cluster secondario.

Fase 9. Esecuzione del failover in una regione secondaria

Mentre il cluster Aurora predefinito offre funzionalità di failover all'interno della regione, Aurora Global Database consente di eseguire il failover sul cluster secondario in una regione diversa. Ciò significa che il database sopravvive anche se un'intera regione diventa non disponibile.

L'esecuzione di un failover per un database globale Aurora implica la rimozione del cluster secondario dal database globale originale, trasformandolo in un cluster regionale con funzionalità di lettura/scrittura complete, quindi utilizzandolo come cluster primario in un nuovo database globale Aurora.

È possibile eseguire un failover manualmente seguendo le istruzioni seguenti.

9.1 – Interrompere la scrittura nel database primario.

9.2 – Selezionare il cluster secondario.

9.3 – Fare clic su "Actions > Remove from Global" (Azioni > Rimuovi dal globale).

9.4 – Confermare facendo clic su "Remove and promote" (Rimuovi e promuovi).

9.5 – Configurare l'applicazione per scrivere nel cluster appena promosso.

9.6 – Sempre nella regione secondaria, selezionare il cluster regionale.

9.7 – Fare clic su "Actions > Create global database" (Azioni > Crea database globale).

9.8 – Dal menu a discesa, selezionare una regione.

9.9 – Ripetere la fasi da 4.1 a 5.7.

Fase 10. Pulizia

Per completare questo tutorial, eliminerai il database globale Aurora. Lo puoi conservare, ma tieni presente che ciò implicherà ulteriori costi.

Per eliminare il cluster di database Aurora, vai al pannello di controllo di RDS e segui queste istruzioni:

10.1 – Dal riquadro a sinistra, selezionare "Databases".

In questo modo, visualizzerai un elenco di tutti i cluster database Aurora.

10.2 – Selezionare un'istanza di database globale.

10.3 – Fare clic su "Actions > Delete" (Azioni >Elimina).

10.4 – Ti verrà chiesto se desideri creare un backup finale. Solitamente è una buona idea, ma ai fini di questo tutorial non è necessario. Selezionare "No" e fare clic su "Delete" (Elimina).

10.5 – Selezionare un cluster di database globale.

10.6 – Fare clic su "Actions > Remove from Global" (Azioni > Rimuovi dal globale).

10.7 – Confermare facendo clic su "Remove from global" (Rimuovi da globale).

10.8 – Selezionare il cluster di database regionale.

10.9 – Fare clic su "Actions > Delete" (Azioni >Elimina).

10.10 – Ti verrà chiesto se desideri creare uno snapshot finale. Solitamente è una buona idea, ma ai fini di questo tutorial non è necessario. Selezionare "No" e fare clic su "Delete DB cluster" (Elimina cluster di database).

10.11 – Passare alla regione secondaria ed eseguire le fasi da 10.1 a 10.9.

10.12 – Selezionare il database globale.

10.13 – Fare clic su "Actions > Delete" (Azioni >Elimina).

10.14 – Confermare digitando "delete me" (eliminami) e facendo clic su "Delete" (Elimina).

Lo stato del cluster cambierà in "Deleting" (Eliminazione in corso).

Congratulazioni

Hai creato un database globale Aurora con replica tra regioni. Hai imparato come dimensionare le letture ad altre regioni per beneficiare di una latenza inferiore e hai eseguito un failover su una regione secondaria.

Questo tutorial è stato utile?