Database
 sql >> Database >  >> RDS >> Database

Come collegare un database con un Amazon VPC

In questo tutorial, illustreremo la configurazione di un'istanza Amazon RDS all'interno di una sottorete VPC privata e la connessione ad essa tramite un tunnel SSH.

Un tunnel SSH inverso effettua una connessione crittografata in uscita dall'interno del VPC ai server di Chartio. Ciò ti consente di connettere Chartio a un database nella tua sottorete VPC privata senza modificare la tabella di instradamento o i gruppi di sicurezza.

Panoramica

Il diagramma seguente mostra come apparirà la nostra architettura finale. Creeremo un VPC con 2 sottoreti nella regione us-west-1; 1 sottorete pubblica nella zona di disponibilità us-west-1a e 1 sottorete privata nella zona di disponibilità us-west-1b. Il VPC avrà un gateway Internet collegato, tuttavia la tabella di routing principale conterrà solo un singolo percorso locale che abilita la comunicazione all'interno del VPC. La sottorete pubblica avrà una tabella di route personalizzata che include la route locale e una route che dirige tutto il resto del traffico tramite il gateway Internet. Verrà eseguito il provisioning di un'istanza Postgres RDS nella sottorete privata con un gruppo di sicurezza collegato che consente solo il traffico in entrata sulla porta 5432 dalla sottorete pubblica. Verrà eseguito il provisioning di un'istanza EC2 nella sottorete pubblica con un gruppo di sicurezza collegato che consente solo il traffico SSH in entrata dal tuo IP locale e tutto il traffico in uscita. Infine, eseguiremo l'SSH nell'istanza EC2, installeremo il client Postgres psql , crea una tabella sull'istanza RDS e installa e configura un tunnel SSH.

Crea un VPC

Accedi al dashboard VPC nella Console di gestione AWS e crea un nuovo VPC.

Crea e collega un gateway Internet

Nella scheda Gateway Internet del dashboard VPC, crea un nuovo gateway Internet.

Collega il gateway al VPC appena creato.

Crea una tabella di percorso personalizzata

Nella scheda Tabelle di instradamento del dashboard VPC, crea una nuova tabella di instradamento.

Aggiungi un percorso alla tabella di instradamento per il gateway Internet.

Crea sottoreti pubbliche e private

Crea una sottorete nella zona di disponibilità us-west-1a.

Modifica la tabella di instradamento per la sottorete creata in precedenza dalla tabella di instradamento principale alla tabella di instradamento personalizzata.

Crea una sottorete nella zona di disponibilità us-west-1b.

Crea gruppi di sicurezza

Crea un gruppo di sicurezza per il provisioning dell'istanza EC2 nella sottorete pubblica us-west-1a.

Autorizza il traffico SSH in entrata dal tuo indirizzo IP locale. Le regole in uscita predefinite dovrebbero andare bene.

Crea un gruppo di sicurezza per il provisioning dell'istanza RDS Postgres nella sottorete privata us-west-1b.

Autorizza il traffico in entrata dalla sottorete pubblica sulla porta 5432.

Rimuovi tutte le regole in uscita per il gruppo di sicurezza RDS.

Esegui il provisioning di un'istanza EC2

Fornire un'istanza EC2 nella sottorete pubblica us-west-1a. Assicurati che sia assegnato un IP pubblico.

Assegna il gruppo di sicurezza creato in precedenza.

Esegui il provisioning di un'istanza RDS Postgres

Eseguire il provisioning di un'istanza RDS Postgres nella sottorete privata us-west-1b. Assicurati che NON sia assegnato un IP pubblico.

Installa e configura un tunnel SSH

SSH nell'istanza EC2 ed esegui i seguenti comandi.

# Substitute 54.153.81.83 with your instance's public IP.
ssh [email protected]

# Create a table so Chartio has something to reflect.
# Substitute chartio.cacziwncd30i.us-west-1.rds.amazonaws.com with your instance's endpoint.
sudo apt-get update
sudo apt-get install postgresql-client
psql -h chartio.cacziwncd30i.us-west-1.rds.amazonaws.com -p 5432 -d chartio -U chartio -c "CREATE TABLE foo(id int);"

Installa autossh (o un gestore di tunnel SSH a tua scelta) e imposta una connessione tunnel seguendo le istruzioni.

Controllare l'editor dello schema Chartio per assicurarsi che lo schema dell'istanza RDS sia stato riflesso. In caso contrario, prova a fare clic sul pulsante "Aggiorna schema".