Amazon RDS è il database "che mantiene Amazon": tu scegli il motore e la dimensione e loro si occupano di installare, aggiornare, fare i backup e vigilare. È il passo naturale quando un sito cresce o quando vuoi che il database non viva sulla stessa macchina del sito. Il modulo ha molte opzioni e una trappola: la casella di accesso pubblico. Se la spunti, il database resta esposto a internet; se non la spunti e non fai bene il resto, il sito non si connette e non sai perché. Questa guida percorre la strada giusta.
Prima di iniziare: cosa significa ogni cosa
- RDS
- Relational Database Service, il servizio di database gestiti di Amazon. Supporta MySQL, PostgreSQL, MariaDB e altri.
- Istanza di database
- Ogni database che crei in RDS, con la sua dimensione e il suo indirizzo.
- Motore
- Il sistema di database: MySQL è quello abituale per i siti web; PostgreSQL per molte applicazioni su misura.
- Endpoint
- L'indirizzo a cui si connette il tuo sito, al posto di "localhost".
- Accesso pubblico
- Se il database ha un indirizzo su internet. Deve essere disattivato: devono raggiungerlo solo le tue macchine di AWS.
- Gruppo di sicurezza
- Il firewall di AWS. Il database ne avrà uno che deve permettere l'ingresso dal gruppo della tua macchina web.
- Multi-AZ
- Opzione per avere una replica in un altro data center che prende il posto di quello principale se si guasta. Costa il doppio; per iniziare non serve.
- Utente master
- L'utente principale del database. La password la imposti tu o la gestisce AWS.
Passo dopo passo
Prepara il gruppo di sicurezza del database
Prima del modulo, in EC2, Gruppi di sicurezza, Crea: nome
bd-interna, una regola in entrata di tipo MYSQL/Aurora (porta 3306) con origine il gruppo di sicurezza della tua macchina web (scegli il gruppo dal menu a tendina invece di un IP). Così potranno connettersi solo le macchine che hanno quel gruppo. Se preferisci, nel modulo di RDS c'è una scorciatoia che lo fa per te ("Connetti a un'istanza EC2"), ma saperlo fare a mano ti servirà più avanti.Apri il modulo di RDS
Console di RDS, stessa regione della tua macchina, Crea database. Scegli Creazione standard (quella facile nasconde la casella di accesso pubblico), motore MySQL, la versione consigliata. Nei modelli, Piano gratuito se il tuo account ce l'ha ed è per provare, oppure Sviluppo/test per un sito piccolo; Produzione attiva Multi-AZ e costa di più.
Nome, utente e dimensione
Identificatore
bd-web. Utente masteradmino uno tuo; password: lascia che la gestisca AWS Secrets Manager se non ti dispiace un piccolo costo, oppure mettine una tua, lunga, e salvala in un gestore di password. Classe di istanza: la più piccola della famiglia t (db.t4g.microodb.t3.micro) per iniziare; si cambia dopo. Storage gp3, 20 GB, con scalabilità automatica attiva e un tetto ragionevole (per esempio 100 GB) perché non si riempia.Connettività: la parte che conta
In Connettività: risorsa di calcolo Non connettere (lo fai con il gruppo di sicurezza), la VPC predefinita, Accesso pubblico: No. Nel gruppo di sicurezza, Scegli esistente e seleziona
bd-interna; togli ildefault. Lascia la porta 3306. Più in basso, in Configurazione aggiuntiva, scrivi un nome del database iniziale (tienda) per non doverlo creare a mano, lascia attivi i backup automatici con 7 giorni e una finestra notturna, e attiva la crittografia. Crea. Ci vogliono 5 o 10 minuti.Prova la connessione dalla macchina web
Quando lo stato è "Disponibile", apri il database e copia l'endpoint dalla scheda Connettività. Entra via SSH nella tua macchina web e prova:
mysql -h tu-endpoint.eu-west-1.rds.amazonaws.com -u admin -p tiendaSe entri, è tutto a posto. Se resta appeso senza rispondere, è il gruppo di sicurezza (passo 1); se dice "Access denied", è l'utente o la password.
Collega il sito e fai una copia
Nella configurazione della tua applicazione cambia il server con quell'endpoint, con utente e password. Se porti dati da un altro database, esportali con
mysqldumpe importali conmysqlcome in qualsiasi migrazione. Quando funziona, fai uno snapshot manuale da RDS: il tuo primo punto di ritorno sicuro. I backup automatici continueranno ogni giorno.
Cosa può andare storto
Il sito non si connette e il database è "Disponibile"
Gruppo di sicurezza nel 95 % dei casi: la regola in entrata sulla 3306 non ha come origine il gruppo della tua macchina web, oppure la macchina web non ha quel gruppo. Controlla entrambi i lati.
Voglio connettermi dal mio computer con un programma grafico
Senza accesso pubblico, non puoi direttamente. La cosa giusta è un tunnel SSH attraverso la macchina web (i programmi grafici di solito lo hanno integrato). Attivare l'accesso pubblico "per un momento" si dimentica e resta lì.
La fattura è più alta di quanto pensassi
Guarda se si è attivato Multi-AZ (modello Produzione), se lo storage è cresciuto da solo o se Secrets Manager e Performance Insights sono attivi. E ricorda che RDS si paga a ore anche se nessuno lo usa: c'è una guida su come fermarlo.
Mi chiede una password che non ho
Se hai lasciato la password a Secrets Manager, è lì (console di Secrets Manager, il segreto del database). Se l'hai impostata tu e l'hai persa, in RDS puoi Modificare l'istanza e metterne una nuova senza riavviare.
In Simplio
In Simplio crei il database RDS da un modulo breve, scegliendo a quale macchina deve potersi connettere: Simplio crea il gruppo di sicurezza corretto, lascia l'accesso pubblico chiuso e i backup attivi, e ti mostra l'endpoint pronto da incollare nel sito. I database compaiono accanto alle loro macchine con lo stato, le copie e un pulsante di snapshot, e ogni persona vede solo quelli che le hai assegnato.
La stessa cosa, in AWS e in Simplio
| Nella console di AWS | In Simplio | |
|---|---|---|
| Creare il database per bene | Gruppo di sicurezza in EC2 più modulo di RDS di 8 blocchi: 30 minuti e sapere cos'è l'accesso pubblico | Modulo di 4 campi con accesso pubblico chiuso e firewall aperto solo alla macchina che scegli |
| Provare la connessione | SSH alla macchina web e comando mysql | Pulsante "Prova connessione" dalla macchina scelta |
| Copie e stato | Schede di RDS | Nella stessa scheda della macchina, con avviso se manca una copia |