Amazon RDS
Amazon RDS
Amazon RDS
Relational Database Service — Percorso formativo avanzato
Modulo 1 · Slide 1-6 — Introduzione e fondamenti del Modulo 2 · Slide 7-14 — Architettura di base e provisioning
servizio gestito delle istanze
Modulo 3 · Slide 15-22 — Networking, connettività e Modulo 4 · Slide 23-30 — Alta disponibilità, Multi-AZ e
sicurezza end-to-end disaster recovery
Modulo 5 · Slide 31-36 — Backup, restore, PITR e Modulo 6 · Slide 37-43 — Amazon Aurora e architetture
manutenzione pianificata cloud-native
Modulo 7 · Slide 44-47 — Ottimizzazione dei costi, FinOps e Modulo 8 · Slide 48-50 — Monitoraggio, tuning e best
pricing practices finali
Amazon RDS 02 / 50
MODULO 1
Amazon RDS 03 / 50
MODULO 1
Amazon RDS 04 / 50
MODULO 1
Amazon RDS 05 / 50
MODULO 1
Amazon RDS 06 / 50
MODULO 2
Anatomia di un DB Instance
Compute Storage
Classe di istanza che definisce vCPU, memoria, banda Volume EBS gestito da AWS, allocato in GiB e con
di rete e banda EBS dedicata. profilo di IOPS e throughput.
Endpoint Metadati
Nome DNS stabile che astrae l'host fisico sottostante e Subnet group, security group, KMS key, finestre di
sopravvive al failover. backup e manutenzione.
Amazon RDS 07 / 50
MODULO 2
▪ Console: adatta all'esplorazione e alla prima creazione; poco ripetibile e difficile da versionare.
▪ AWS CLI: create-db-instance con parametri espliciti: utile per script e automazioni puntuali.
▪ CloudFormation: risorsa AWS::RDS::DBInstance, drift detection e rollback nativo dello stack.
▪ Terraform: risorsa aws_db_instance, stato remoto e piano di modifica esplicito prima dell'apply.
▪ Raccomandazione: in produzione ogni database deve nascere da codice versionato, mai dalla
console.
▪ Attenzione: password e credenziali non vanno mai inserite in chiaro nel codice IaC.
Amazon RDS 08 / 50
MODULO 2
▪ Compatibilità applicativa: driver, dialetto SQL e ORM supportati determinano spesso la scelta
obbligata.
▪ Estensioni richieste: verificare che le estensioni o le feature enterprise necessarie siano supportate da
RDS.
▪ Ciclo di vita della versione: AWS pubblica date di fine supporto: pianificare l'upgrade prima della
deprecazione.
▪ Evitare le versioni estreme: l'ultima minor release è consigliata, la major appena rilasciata va prima
testata.
▪ Licenze: per Oracle e SQL Server valutare License Included rispetto a BYOL in termini di costo.
▪ Standardizzazione: limitare il numero di motori e versioni in flotta riduce il carico operativo.
Amazon RDS 09 / 50
MODULO 2
Amazon RDS 10 / 50
MODULO 2
▪ Processori ARM: sviluppati da AWS, disponibili nelle famiglie m6g/m7g, r6g/r7g e nelle classi Aurora.
▪ Rapporto prezzo/performance: miglioramento significativo rispetto alle equivalenti classi x86 a
parità di carico.
▪ Trasparenza applicativa: il client parla il protocollo del motore: nessuna ricompilazione lato
applicazione.
▪ Verifica delle estensioni: controllare la disponibilità di estensioni o plugin engine-specific su
architettura ARM.
▪ Migrazione: modifica della classe di istanza o failover Multi-AZ, con downtime ridotto a pochi minuti.
▪ Consiglio: candidato di default per nuovi workload MySQL, PostgreSQL e Aurora.
Amazon RDS 11 / 50
MODULO 2
Amazon RDS 12 / 50
MODULO 2
Storage Autoscaling
▪ Funzionamento: RDS espande automaticamente il volume quando lo spazio libero scende sotto la
soglia.
▪ Soglia di trigger: spazio libero inferiore al 10% della capacità allocata per almeno alcuni minuti.
▪ Maximum storage threshold: limite massimo configurabile che protegge da crescite incontrollate e
costi imprevisti.
▪ Nessun downtime: l'espansione avviene online, senza interruzione delle connessioni applicative.
▪ Vincolo temporale: tra due espansioni consecutive esiste un periodo di attesa di alcune ore.
▪ Best practice: abilitarlo sempre in produzione, affiancandolo a un allarme su FreeStorageSpace.
Amazon RDS 13 / 50
MODULO 2
Endpoint di connessione
Amazon RDS 14 / 50
MODULO 3
▪ Isolamento di rete: ogni istanza RDS risiede in una VPC e riceve indirizzi IP privati dalle subnet scelte.
▪ Elastic Network Interface: l'endpoint è servito da ENI gestite da AWS all'interno delle subnet del
cliente.
▪ Routing: route table e NACL della VPC governano il traffico verso e dal database.
▪ Connettività ibrida: accesso da on-premise tramite VPN Site-to-Site o AWS Direct Connect.
▪ Cross-VPC: VPC peering, Transit Gateway o PrivateLink per esporre il database ad altri account.
▪ Principio guida: il database non deve mai essere raggiungibile da Internet.
Amazon RDS 15 / 50
MODULO 3
DB Subnet Groups
▪ Definizione: insieme di subnet nelle quali RDS può collocare le istanze del database.
▪ Requisito minimo: almeno due subnet in due Availability Zone distinte, anche per istanze Single-AZ.
▪ Perché è obbligatorio: senza subnet in più AZ non è possibile attivare Multi-AZ o eseguire il failover.
▪ Dimensionamento: prevedere IP liberi sufficienti per repliche, failover e operazioni di modifica.
▪ Coerenza: usare subnet dedicate al layer dati, separate da quelle applicative e pubbliche.
▪ Nota operativa: il subnet group va progettato prima della creazione: modificarlo dopo è oneroso.
Amazon RDS 16 / 50
MODULO 3
Amazon RDS 17 / 50
MODULO 3
▪ Firewall stateful: controlla il traffico in ingresso verso la porta del motore a livello di ENI.
▪ Porte tipiche: 3306 per MySQL e MariaDB, 5432 per PostgreSQL, 1521 per Oracle, 1433 per SQL
Server.
▪ Sorgente per riferimento: consentire l'accesso indicando il security group dell'applicazione, non un
CIDR.
▪ Anti-pattern: regole di ingresso da [Link]/0 sulla porta del database: mai in nessun ambiente.
▪ Segmentazione: security group distinti per applicazione, batch, strumenti di analisi e amministrazione.
▪ Audit: revisione periodica delle regole e alert automatico sulle modifiche inattese.
Amazon RDS 18 / 50
MODULO 3
▪ Cosa viene cifrato: volumi di storage, backup automatici, snapshot, read replica e log.
▪ Chiavi: AWS managed key oppure customer managed key (CMK) con policy e rotazione controllate.
▪ Momento della decisione: la cifratura si abilita alla creazione: un'istanza non cifrata va migrata via
snapshot.
▪ Procedura di migrazione: snapshot, copia dello snapshot con cifratura abilitata, restore della nuova
istanza.
▪ Cross-region: la copia in un'altra regione richiede una chiave KMS della regione di destinazione.
▪ Compliance: la cifratura at rest è requisito comune per PCI-DSS, GDPR e standard interni.
Amazon RDS 19 / 50
MODULO 3
Amazon RDS 20 / 50
MODULO 3
▪ Principio: il client ottiene un token temporaneo da IAM al posto di una password statica.
▪ Durata del token: validità di 15 minuti; la connessione già stabilita non viene interrotta alla scadenza.
▪ Motori supportati: MySQL, MariaDB, PostgreSQL e i corrispondenti motori Aurora.
▪ Vantaggi: nessuna password nel codice, revoca centralizzata e audit trail su CloudTrail.
▪ Configurazione: abilitare IAM database authentication e mappare l'utente DB al ruolo IAM.
▪ Limiti: vincoli sul numero di nuove connessioni al secondo: adatto ad app con connection pooling.
Amazon RDS 21 / 50
MODULO 3
▪ Archiviazione sicura: le credenziali sono cifrate con KMS e recuperate a runtime tramite API.
▪ Rotazione automatica: funzione Lambda gestita che cambia la password nel database e aggiorna il
segreto.
▪ Strategia alternating users: due utenti alternati per evitare finestre di indisponibilità durante la
rotazione.
▪ Integrazione nativa: RDS può gestire la master password direttamente in Secrets Manager.
▪ Controllo degli accessi: resource policy sul segreto per limitare quali ruoli possono leggerlo.
▪ Alternativa: Parameter Store per casi semplici, ma senza rotazione automatica integrata.
Amazon RDS 22 / 50
MODULO 4
Amazon RDS 23 / 50
MODULO 4
▪ Architettura: istanza primaria in una AZ e standby in una seconda AZ della stessa regione.
▪ Replica sincrona: ogni commit viene confermato solo dopo la scrittura anche sullo standby.
▪ Standby non leggibile: nel modello classico lo standby non serve traffico applicativo.
▪ Trigger di failover: guasto dell'istanza o dell'AZ, perdita di rete, patching o modifica della classe.
▪ Tempo di failover: tipicamente entro uno o due minuti, senza intervento manuale.
▪ Costo: raddoppio della componente compute e storage: è il prezzo della continuità.
Amazon RDS 24 / 50
MODULO 4
▪ Promozione automatica: in caso di guasto lo standby diventa primario e assume il ruolo di writer.
▪ Riscrittura del DNS: AWS aggiorna il record dell'endpoint verso il nuovo nodo primario.
▪ Endpoint invariato: l'applicazione continua a usare lo stesso nome host, senza modifiche di
configurazione.
▪ Cache DNS lato client: JVM e librerie con TTL infinito continuano a puntare al vecchio IP: va corretto.
▪ Ricostruzione dello standby: al termine del failover AWS ricrea uno standby nell'altra AZ.
▪ Test: il failover può essere forzato con reboot with failover per validare il comportamento dell'app.
Amazon RDS 25 / 50
MODULO 4
Amazon RDS 26 / 50
MODULO 4
Amazon RDS 27 / 50
MODULO 4
▪ Effetto: la replica diventa un'istanza standalone indipendente, con propri backup e repliche.
▪ Irreversibilità: dopo la promozione non è possibile ricollegarla al primario originale.
▪ Casi d'uso: creazione di ambienti di test, sharding funzionale, upgrade con downtime ridotto.
▪ Disaster recovery: promozione di una replica cross-region per attivare la regione secondaria.
▪ Cautele: verificare che il lag di replica sia azzerato prima di promuovere.
▪ Procedura: interrompere le scritture, attendere il catch-up, promuovere e ripuntare l'applicazione.
Amazon RDS 28 / 50
MODULO 4
▪ Replica geografica: copia asincrona dei dati in una regione AWS diversa da quella primaria.
▪ Disaster recovery: consente il ripristino del servizio anche in caso di evento su scala regionale.
▪ Latenza di lettura: avvicina i dati agli utenti di aree geografiche distanti.
▪ Migrazione: strumento efficace per spostare un carico da una regione all'altra con downtime minimo.
▪ Prerequisiti: cifratura con chiave KMS della regione di destinazione e backup automatici attivi.
▪ Costi: va considerato il traffico di replica inter-regione oltre al costo dell'istanza replica.
Amazon RDS 29 / 50
MODULO 4
RTO RPO
Tempo massimo accettabile per ripristinare il servizio Quantità massima di dati che l'organizzazione può
dopo un incidente. permettersi di perdere.
Amazon RDS 30 / 50
MODULO 5
Restore Strategia
Entrambi generano sempre una nuova istanza: non Backup automatici per l'operatività quotidiana,
esiste il restore in-place. snapshot per milestone e conformità.
Amazon RDS 31 / 50
MODULO 5
Amazon RDS 32 / 50
MODULO 5
▪ Cosa consente: ripristinare il database a un secondo preciso all'interno del periodo di retention.
▪ Latest restorable time: istante più recente ripristinabile, generalmente a circa 5 minuti dal presente.
▪ Meccanismo: restore dello snapshot più vicino e riapplicazione dei log delle transazioni fino al target.
▪ Nuova istanza: il ripristino crea sempre una nuova istanza con un nuovo endpoint.
▪ Configurazione da ricreare: security group, parameter group e opzioni vanno riapplicati
esplicitamente.
▪ Caso d'uso tipico: recupero da errore logico, come una DELETE senza clausola WHERE.
Amazon RDS 33 / 50
MODULO 5
DB Snapshots manuali
Amazon RDS 34 / 50
MODULO 5
▪ Finestra settimanale: intervallo di 30 minuti scelto dal cliente per le operazioni di manutenzione.
▪ Contenuto: patch di sicurezza del sistema operativo e minor version upgrade del motore.
▪ Auto minor version upgrade: flag che applica automaticamente le minor release durante la finestra.
▪ Impatto: possibile riavvio; con Multi-AZ la manutenzione avviene prima sullo standby con failover.
▪ Pianificazione: collocare la finestra nella fascia di traffico più bassa dell'applicazione.
▪ Pending modifications: verificare le modifiche in attesa per sapere cosa verrà applicato.
Amazon RDS 35 / 50
MODULO 5
Amazon RDS 36 / 50
MODULO 6
▪ Il limite tradizionale: i motori classici legano compute e storage sullo stesso nodo, limitando la
scalabilità.
▪ Approccio Aurora: separazione tra livello di calcolo e livello di storage distribuito e condiviso.
▪ Log-structured storage: il nodo scrive solo record di log, non pagine complete: meno I/O di rete.
▪ Performance: throughput significativamente superiore rispetto ai motori community equivalenti.
▪ Compatibilità: protocollo e strumenti MySQL e PostgreSQL restano invariati per l'applicazione.
▪ Modello di servizio: resta un servizio RDS: stessi concetti di snapshot, parameter group e
monitoraggio.
Amazon RDS 37 / 50
MODULO 6
▪ Volume condiviso: un unico volume logico auto-espandibile condiviso da tutte le istanze del cluster.
▪ Sei copie su tre AZ: ogni blocco è replicato sei volte, con due copie per Availability Zone.
▪ Quorum di scrittura: quattro copie su sei devono confermare per considerare la scrittura durevole.
▪ Quorum di lettura: tre copie su sei sono sufficienti a servire una lettura coerente.
▪ Tolleranza ai guasti: il cluster tollera la perdita di un'intera AZ più una copia aggiuntiva senza perdita
dati.
▪ Self-healing: i segmenti danneggiati vengono rilevati e ricostruiti automaticamente in background.
Amazon RDS 38 / 50
MODULO 6
Aurora Serverless v2
▪ Capacità elastica: la capacità di calcolo si misura in Aurora Capacity Unit e varia in modo continuo.
▪ Scalabilità istantanea: adattamento in frazioni di secondo, senza interruzione delle connessioni attive.
▪ Intervallo configurabile: si definiscono ACU minima e massima per governare performance e spesa.
▪ Cluster misto: istanze provisioned e serverless possono coesistere nello stesso cluster.
▪ Casi d'uso: carichi variabili o imprevedibili, ambienti di sviluppo, SaaS multi-tenant.
▪ Attenzione al costo: un limite massimo troppo alto su un carico costante può risultare più caro del
provisioned.
Amazon RDS 39 / 50
MODULO 6
▪ Struttura: una regione primaria in scrittura e fino a cinque regioni secondarie in sola lettura.
▪ Replica a livello di storage: la propagazione avviene sotto il motore, con latenza tipica sotto il
secondo.
▪ Nessun impatto sul primario: la replica non consuma capacità di calcolo dell'istanza writer.
▪ Failover regionale: promozione di una regione secondaria con RTO tipicamente nell'ordine del
minuto.
▪ Letture locali: gli utenti di ogni area geografica leggono dalla regione più vicina.
▪ Write forwarding: le scritture emesse in una regione secondaria possono essere inoltrate alla
primaria.
Amazon RDS 40 / 50
MODULO 6
Amazon RDS 41 / 50
MODULO 6
Amazon RDS 42 / 50
MODULO 6
Amazon RDS 43 / 50
MODULO 7
Amazon RDS 44 / 50
MODULO 7
▪ Durata: impegno di 1 anno oppure di 3 anni, con sconto crescente sulla durata più lunga.
▪ No Upfront: nessun pagamento iniziale, sconto minore, rata mensile costante.
▪ Partial Upfront: pagamento parziale all'acquisto e canone ridotto: compromesso più diffuso.
▪ All Upfront: pagamento integrale anticipato e sconto massimo sull'intero periodo.
▪ Attributi vincolanti: regione, famiglia e classe di istanza, motore e configurazione Multi-AZ.
▪ Prima di acquistare: consolidare l'architettura: una reservation su una classe poi dismessa è denaro
sprecato.
Amazon RDS 45 / 50
MODULO 7
▪ Capacità allocata: si paga lo spazio allocato, non quello effettivamente utilizzato dai dati.
▪ Riduzione non supportata: lo storage può solo crescere: ridurlo richiede una migrazione dei dati.
▪ Migrazione a gp3: consente di disaccoppiare IOPS e capacità, riducendo il sovradimensionamento
tipico di gp2.
▪ IOPS provisioned: monitorare l'utilizzo reale prima di confermare valori elevati di io1 o io2.
▪ Igiene dei dati: archiviare o eliminare tabelle storiche e log applicativi mantenuti nel database.
▪ Snapshot dimenticati: definire una policy di retention automatica per evitare accumuli silenziosi.
Amazon RDS 46 / 50
MODULO 7
▪ Stop temporaneo: un'istanza RDS può restare ferma fino a 7 giorni consecutivi, poi riparte
automaticamente.
▪ Cosa si risparmia: cessa il costo di compute; storage e snapshot continuano a essere fatturati.
▪ Automazione: EventBridge Scheduler con Lambda o Systems Manager per spegnere la sera e
riaccendere la mattina.
▪ Tagging: tag come Environment e Schedule per applicare le policy in modo selettivo e sicuro.
▪ Limiti: le istanze in un cluster Multi-AZ e alcune configurazioni hanno regole di stop diverse.
▪ Alternativa: Aurora Serverless v2 per ambienti non produttivi con capacità minima molto bassa.
Amazon RDS 47 / 50
MODULO 8
CPUUtilization FreeableMemory
Saturazione del calcolo; valori costantemente alti Memoria disponibile: un calo continuo anticipa
indicano query o dimensionamento errati. swapping e degrado delle performance.
DatabaseConnections FreeStorageSpace
Numero di sessioni attive; utile per dimensionare il Spazio libero residuo: allarme obbligatorio prima della
connection pool applicativo. soglia critica.
Amazon RDS 48 / 50
MODULO 8
▪ Metrica centrale: Average Active Sessions, che misura il carico reale sul database nel tempo.
▪ Wait events: identifica se il collo di bottiglia è CPU, I/O, lock o attesa di rete.
▪ Top SQL: classifica le query per contributo al carico, non per semplice tempo di esecuzione.
▪ Dimensioni di analisi: scomposizione per utente, host, applicazione e statement.
▪ Retention: 7 giorni gratuiti, con estensione a lungo termine a pagamento.
▪ Metodo: partire dal picco di AAS, isolare il wait event dominante e poi la query responsabile.
Amazon RDS 49 / 50
MODULO 8
Rete — Istanze in subnet private, mai publicly accessible, Cifratura — KMS abilitato alla creazione e TLS imposto lato
security group per riferimento. server per tutte le connessioni.
Credenziali — Secrets Manager con rotazione automatica o Disponibilità — Multi-AZ in produzione e test periodici di
autenticazione IAM; nessuna password nel codice. failover documentati.
Backup — Retention adeguata, snapshot prima di ogni Manutenzione — Finestre pianificate, minor upgrade
cambiamento e prove di restore reali. automatici, major upgrade testati in staging.
Osservabilità — Allarmi su CPU, memoria, spazio libero, Costi — Reserved per la baseline, gp3, stop programmato in
connessioni e lag; Performance Insights attivo. dev/test e pulizia degli snapshot.
Amazon RDS 50 / 50