Posso rinominare un'istanza RDS?


11

Ho ereditato una raccolta di istanze MySQL RDS con nomi di istanze DB casuali (inutili) .

Spesso devo scavare nella sezione dei tag per scoprire a quale progetto appartengono.

Una delle impostazioni che posso modificare in un RDS è la DB Instance Identifier.

Se lo cambio, cosa succederà oltre al cambio di nome? Interesserà il codice di qualcuno? O è un cambiamento innocuo?

Questi sono sistemi live che non posso permettermi di abbattere.

Risposte:


10

Sì, puoi rinominare un'istanza RDS ... a tuo rischio e pericolo.

Quando si rinomina un'istanza DB, l'endpoint [DNS] [nome host] per l'istanza DB cambia, poiché l'URL include il nome assegnato all'istanza DB.

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_RenameInstance.html

Per questo motivo, il codice dell'applicazione richiede il coordinamento delle modifiche alla configurazione.

Vedi il link sopra per le altre implicazioni. Si tratta di un'operazione supportata e generalmente sicura, ma solo nella finestra di manutenzione, poiché si verificherà necessariamente una breve interruzione quando il DNS viene modificato e il codice dell'app viene inserito ciclicamente con il nuovo nome host del database.


3

Sì, puoi cambiare il nome dell'istanza RDS, ma è altamente sconsigliato farlo nell'ambiente di produzione LIVE. Cambierebbe l'EndPoint che potrebbe avere un impatto su altre risorse che accedono attivamente al server RDS (come un server delle applicazioni).

Ciò richiederebbe probabilmente una modifica della proprietà / variabile env nel codice o nelle configurazioni (che idealmente finirebbe per una versione di configurazione tramite la gestione della configurazione)

Per evitare interruzioni (in futuro) e modifiche al lancio con RTO minore, è possibile creare una voce DNS intermedia (CNAME) in Route53 per il server RDS e utilizzare l'URL intermedio nell'applicazione. Quando il nome del server RDS cambia, è possibile modificare semplicemente il CNAME DNS del nuovo endpoint RDS. NOTA: durante la modifica del nome il server RDS non sarà disponibile (con il vecchio nome) per alcuni minuti e ciò potrebbe causare interruzioni

Detto questo, sei già di parte su una soluzione (modifica dei nomi RDS) per il tuo problema. Ma

Esistono più soluzioni per il tuo problema reale (gestione dei server RDS per ciascun progetto)

A. Cerca di evitare di utilizzare AWS Console il più possibile. Perché non inizi a cercare nell'interfaccia della riga di comando di AWS (che può estrarre i tag) e scrivi uno script wrapper Python / Bash per elencare tutti i server RDS - con i nomi dei progetti, da questo output puoi gestire questi server, come scattare un'istantanea, eseguire il backup ecc. Puoi anche usare mysql --login-path (se sei su mysql per l'amministrazione del database) https://opensourcedbms.com/dbms/passwordless-authentication-using-mysql_config_editor-with-mysql-5-6/ .

B. (Approccio agnostico sui costi) Se hai comunque deciso di cambiare i nomi RDS, c'è qualcosa che puoi fare senza alcun impatto.

B.1 When the next code/config release happens try to bring in the intermediate DNS change into action.

B.2 (Optional) Enable Multi AZ in RDS (HA and twice the price). This will help your application to access the secondary active slave when there is any disruption due to name change. There is an option called Reboot with failover which would reboot the master while failing over to the active secondary 

B.3 Enable replication (read-replica) (this will give you a new RDS end-point). Name the read replica properly with your project names

B.4. Once replication is complete (and during your SLA / maintenance window) promote your read replica (this will break replication) and make the intermediate DNS point to the new RDS (with your proper names)

NOTA Tutti gli approcci di cui sopra non garantiscono l'integrità dei dati e aggiornamenti impropri dei dati dovuti a transazioni in volo. Quindi è sempre meglio interrompere tutte le transazioni (arrestando tutte le applicazioni che accedono e distribuiscono una pagina di manutenzione ed eseguono le operazioni)


Apprezzo il tuo contributo, anche se ho notato che i nomi strani (inutili) provengono specificamente dall'uso della CLI. La creazione di un'istanza di RD dalla console dà loro nomi significativi.
Danny Schoemann,

è anche molto difficile (impossibile?) eseguire analisi di fatturazione dalla CLI, oltre a guardare i grafici di utilizzo.
Danny Schoemann,

1
# 1 Ohh, per la creazione puoi dare un'occhiata a Cloudformation (dove puoi definire i nomi RDS), quando ho detto CLI mi riferivo alla lettura dell'elenco RDS (per un facile analisi nell'uso di grep --output=text. # 2 e sì per l'analisi della fatturazione, console è un must, dovresti prendere in considerazione la creazione di un utente IAM con ruolo di fatturazione e consegnarlo alla persona finanziaria.
Ameen Ibrahim Raffic - "AIR"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.