Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Un passaggio al digitale trasforma l'ambiente verde nel nuovo ambiente di produzione. Quando l'istanza DB verde ha delle repliche lette, anche queste vengono trasferite. Prima dello switchover, il traffico di produzione viene indirizzato all'istanza database e alle repliche di lettura nell'ambiente blu. Dopo lo switchover, il traffico di produzione viene indirizzato all'istanza database e alle repliche di lettura nell'ambiente verde.
Il passaggio a una distribuzione blu/verde non equivale a promuovere il cluster DB di istanze verdi all'interno della distribuzione blu/verde. Se promuovi manualmente il verdi selezionando Promuovi dal menu Azioni, la replica tra gli ambienti blu e verde si interrompe e la distribuzione blu/verde entra in uno stato di configurazione non valida.
Argomenti
Timeout dello switchover
È possibile specificare un timeout per lo switchover compreso tra 30 secondi e 3.600 secondi (un'ora). Se lo switchover richiede più tempo della durata specificata, viene eseguito il rollback di tutte le modifiche e non viene apportata alcuna modifica agli ambienti. L'impostazione predefinita del timeout è 300 secondi (cinque minuti).
Guardrail dello switchover
Quando avvii uno switchover, Amazon RDS esegue alcuni controlli di base per verificare la preparazione degli ambienti blu e verdi per lo switchover. Questi controlli sono noti come guardrail dello switchover e impediscono lo switchover se gli ambienti non sono pronti per farlo. Pertanto, evitano tempi di inattività più lunghi del previsto e impediscono la perdita di dati tra gli ambienti blu e quelli verdi che potrebbe verificarsi se lo switchover venisse avviato.
Amazon RDS esegue i seguenti controlli guardrail sull'ambiente verde:
-
Integrità della replica: verifica se lo stato della replica dell'istanza database primaria verde è integro. L'istanza database primaria verde è una replica dell'istanza database primaria blu.
-
Ritardo della replica: verifica se il ritardo della replica dell'istanza database primaria verde rientra nei limiti consentiti per lo switchover. I limiti consentiti si basano sul periodo di timeout specificato. Il ritardo della replica indica il ritardo dell'istanza database primaria verde rispetto all'istanza database primaria blu. Per ulteriori informazioni, consulta Monitoraggio del ritardo nella replica prima del passaggio al digitale.
-
Scritture attive: assicura che non vi siano scritture attive nell'istanza database primaria verde.
Amazon RDS esegue i seguenti controlli guardrail sull'ambiente blu:
-
Replica esterna: per PostgreSQL RDS per PostgreSQL, assicura che l'ambiente blu non sia una fonte logica autogestita (editore) o una replica (sottoscrittore). In tal caso, si consiglia di eliminare gli slot e gli abbonamenti di replica autogestiti su tutti i database nell'ambiente blu, procedere con il passaggio al digitale e quindi ricrearli per riprendere la replica. Per e RDS per MariaDB, verifica se il database blu non è una replica binlog esterna. In caso affermativo, assicurati che non si stia replicando attivamente.
-
Scritture attive di lunga durata: assicura che non vi siano scritture attive di lunga durata nell'istanza database primaria blu perché possono aumentare il ritardo della replica.
-
Istruzioni DDL di lunga durata: assicura che non vi siano istruzioni DLL di lunga durata nell'istanza database primaria blu perché possono aumentare il ritardo della replica.
-
Modifiche a PostgreSQL non supportate: per le implementazioni blu/verdi di PostgreSQL RDS per PostgreSQL che utilizzano la replica logica, assicura che non siano state eseguite modifiche DDL e aggiunte o modifiche di oggetti di grandi dimensioni nell'ambiente blu. Per ulteriori informazioni, consulta Limitazioni specifiche della replica logica per le distribuzioni blu/verdi.
Se Amazon RDS rileva modifiche PostgreSQL non supportate, modifica lo stato di replica e notifica all'utente che lo switchover non è disponibile
Replication degraded
per la distribuzione e per tutti i database verdi. blue/green deployment. To proceed with switchover, we recommend that you delete and recreate the blue/green A tale scopo, scegli Operazioni, Elimina con database verdi.
Azioni dello switchover
Quando si effettua lo switchover per un'implementazione blu/verde, RDS esegue le seguenti azioni:
-
Esegue controlli guardrail per verificare se gli ambienti blu e verdi sono pronti per lo switchover.
-
Interrompe le nuove operazioni di scrittura nell'istanza database primaria in entrambi gli ambienti.
-
Elimina le connessioni alle istanze database in entrambi gli ambienti e non consente nuove connessioni.
-
Attende che la replica recuperi l'ambiente verde in modo che sia sincronizzato con l'ambiente blu.
-
Rinomina le istanze database in entrambi gli ambienti.
RDS rinomina le istanze database nell'ambiente verde in modo che corrispondano alle istanze database nell'ambiente blu. Ad esempio, supponi che il nome dell'istanza database nell'ambiente blu sia
mydb
. Supponi anche che il nome dell'istanza database corrispondente nell'ambiente verde siamydb-green-abc123
. Durante lo switchover, il nome dell'istanza database nell'ambiente verde viene modificato inmydb
.RDS rinomina le istanze database nell'ambiente blu aggiungendo
-old
al nome corrente, doven
è un numero. Ad esempio, supponi che il nome dell'istanza database nell'ambiente blu sian
mydb
. Dopo lo switchover, il nome dell'istanza database diventamydb-old1
.RDS rinomina anche gli endpoint nell'ambiente verde in modo che corrispondano agli endpoint nell'ambiente blu, per non apportare modifiche all'applicazione.
-
Consente le connessioni ai database in entrambi gli ambienti.
-
Consente le operazioni di scrittura nell'istanza database primaria nel nuovo ambiente di produzione.
Dopo lo switchover, il precedente principale di produzione consente operazioni di lettura solo fino a quando non si imposta il
read_only
parametro (per RDS per MySQL) o il parametrodefault_transaction_read_only
(per RDS per PostgreSQL) e si riavvia l'istanza DB.0
Puoi monitorare lo stato di uno switchover utilizzando Amazon. EventBridge Per ulteriori informazioni, consulta Eventi di implementazione blu/verde.
Se hai dei tag configurati nell'ambiente blu, questi tag vengono copiati nel nuovo ambiente di produzione durante lo switchover. Per ulteriori informazioni sui tag, consulta Etichettatura di RDS.
Se lo switchover inizia e poi si interrompe prima del termine per un qualsiasi motivo, viene eseguito il rollback di tutte le modifiche e non viene apportata alcuna modifica agli ambienti.
Best practice per lo switchover
Prima di effettuare lo switchover, ti consigliamo vivamente di seguire le best practice completando le seguenti attività:
-
Esegui accuratamente il test delle risorse nell'ambiente verde. Assicurati che funzionino correttamente ed efficacemente.
-
Monitora le CloudWatch metriche Amazon pertinenti. Per ulteriori informazioni, consulta Verifica CloudWatch delle metriche prima del passaggio al digitale.
-
Identifica il momento migliore per lo switchover.
Durante lo switchover, le scritture dei database vengono interrotte in entrambi gli ambienti. Identifica il momento in cui il traffico è più basso nell'ambiente di produzione. Le transazioni a lunga durata, come quelle attive DDLs, possono aumentare i tempi di passaggio al digitale, con conseguenti tempi di inattività più lunghi per i carichi di lavoro di produzione.
Se è presente un numero elevato di connessioni sulle istanze DB, sul , valuta la possibilità di ridurle manualmente al minimo necessario per l'applicazione prima di passare alla blue/green deployment. One way to achieve this is to create a script that monitors the status of the blue/green distribuzione e iniziare a ripulire le connessioni quando rileva che lo stato è cambiato in.
SWITCHOVER_IN_PROGRESS
-
Assicurati che le istanze database siano nello stato
Available
in entrambi gli ambienti. -
Assicurati che l'istanza database primaria nell'ambiente verde sia nello stato integro e in grado di replicare.
-
Assicurati che le configurazioni di rete e client non aumentino la cache DNS Time-To-Live (TTL) oltre cinque secondi, che è l'impostazione predefinita per le zone DNS RDS. Altrimenti, le applicazioni continueranno a inviare traffico di scrittura all'ambiente blu dopo lo switchover.
-
Assicurati che il caricamento dei dati sia completato prima di effettuare lo switchover. Per ulteriori informazioni, consulta Lazy loading e inizializzazione dello storage per implementazioni blu/green.
-
Per le implementazioni Blue/Green di , procedi come segue:
-
Esamina i limiti della replica logica e intraprendi le azioni necessarie prima del passaggio. Per ulteriori informazioni, consulta Limitazioni specifiche della replica logica per le distribuzioni blu/verdi.
-
Eseguire l'operazione
ANALYZE
per aggiornare la tabellapg_statistics
. Ciò riduce il rischio di problemi di prestazioni dopo il passaggio al digitale.
-
Nota
Durante uno switchover non è possibile modificare le istanze database incluse nello switchover.
Verifica CloudWatch delle metriche prima del passaggio al digitale
Prima di passare a una distribuzione blu/verde, ti consigliamo di verificare valori delle seguenti metriche di Amazon. CloudWatch
-
DatabaseConnections
: utilizza questo parametro per stimare il livello di attività dell'implementazione blu/verde e assicurarti che il valore sia a un livello accettabile per la tua implementazione prima dello switchover. Se Approfondimenti sulle prestazioni è attivato,DBLoad
è un parametro più accurato.
Per ulteriori informazioni, consulta CloudWatch Parametri Amazon per Amazon RDS.
Monitoraggio del ritardo nella replica prima del passaggio al digitale
Prima di passare a un'implementazione blu/verde, assicurati che il ritardo della replica sia vicino allo zero per ridurre i tempi di inattività.
e RDS per MariaDB
Per le implementazioni blu/green di MySQL e MariadB, CloudWatch controlla la metrica nell'ambiente verde per identificare l'attuale ritardo della replica. Per ulteriori informazioni, consulta Diagnosi e risoluzione del ritardo tra repliche di lettura.
Per le distribuzioni blu/green di PostgreSQL che utilizzano la replica fisica, consulta le istruzioni per identificare l'attuale ritardo di replica. Monitoraggio e ottimizzazione del processo di replica
Per le implementazioni PostgreSQL blu/green che utilizzano la replica logica, controlla la metrica nell'ambiente blu per identificare l'attuale ritardo OldestReplicationSlotLag
CloudWatch della replica. Per ulteriori informazioni, consulta Parametri a CloudWatch livello di istanza Amazon per Amazon RDS.
Inoltre, puoi eseguire la seguente query SQL nell'ambiente blu:
SELECT slot_name, confirmed_flush_lsn as flushed, pg_current_wal_lsn(), (pg_current_wal_lsn() - confirmed_flush_lsn) AS lsn_distance FROM pg_catalog.pg_replication_slots WHERE slot_type = 'logical'; slot_name | flushed | pg_current_wal_lsn | lsn_distance -----------------+---------------+--------------------+------------ logical_replica1 | 47D97/CF32980 | 47D97/CF3BAC8 | 37192
confirmed_flush_lsn
Rappresenta l'ultimo numero di sequenza di registro (LSN) inviato alla replica. pg_current_wal_lsn
Rappresenta la posizione attuale del database. Un valore lsn_distance
pari a 0 indica che la replica è stata recuperata.
Per una spiegazione di quando le implementazioni blu/verdi utilizzano la replica fisica anziché la replica logica, vedere. Metodi di SQL replica Postgree per implementazioni blu/verdi
Switchover di un'implementazione blu/verde
È possibile passare da una distribuzione blu/verde utilizzando l'API, the o RDS. AWS Management Console AWS CLI
Per eseguire lo switchover di un'implementazione blu/verde
Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/
. -
Nel riquadro di navigazione, scegli Databases (Database) e seleziona l'implementazione blu/verde di cui eseguire lo switchover.
-
In Actions (Operazioni), scegli Switch over (Esegui switchover).
Viene visualizzata la pagina Switch over (Switchover).
-
Nella pagina Switch over (Switchover), consulta il riepilogo dello switchover. Assicurati che le risorse in entrambi gli ambienti corrispondano a quelle previste. In caso contrario, scegli Cancel (Annulla).
-
In Impostazioni di timeout, inserisci il limite di tempo per lo switchover.
-
Se sull'istanza è in esecuzione RDS per PostgreSQL, esamina e verifica i suggerimenti prima dello switchover. Per ulteriori informazioni, consulta Limitazioni specifiche della replica logica per le distribuzioni blu/verdi.
-
Seleziona Switch over (Switchover).
Per passare da una distribuzione blu/verde utilizzando il AWS CLI, usa il switchover-blue-green-deploymentcomando con le seguenti opzioni:
-
--blue-green-deployment-identifier
— Specificare l'ID della risorsa della distribuzione blu/verde. -
--switchover-timeout
: specifica il limite di tempo per lo switchover, in secondi. Il valore predefinito è 300.
Esempio Switchover di un'implementazione blu/verde
In Linux, macOS, oppure Unix:
aws rds switchover-blue-green-deployment \ --blue-green-deployment-identifier
bgd-1234567890abcdef
\ --switchover-timeout600
In Windows:
aws rds switchover-blue-green-deployment ^ --blue-green-deployment-identifier
bgd-1234567890abcdef
^ --switchover-timeout600
Per eseguire lo switchover di una implementazione blu/verde utilizzando l'API Amazon RDS, usa l'operazione SwitchoverBlueGreenDeployment
con i seguenti parametri:
-
BlueGreenDeploymentIdentifier
— Specificare l'ID della risorsa della distribuzione blu/verde. -
SwitchoverTimeout
: specifica il limite di tempo per lo switchover, in secondi. Il valore predefinito è 300.
Dopo lo switchover
Dopo uno switchover, le istanze database vengono mantenute nell'ambiente blu precedente. A queste risorse si applicano i costi standard. La replica tra gli ambienti blu e verde vengono arrestati.
RDS rinomina le istanze database nell'ambiente blu aggiungendo -old
al nome corrente, dove n
è un numero. Le istanze DB nel vecchio ambiente blue sono di sola lettura finché non si imposta il n
read_only
parametro (per RDS per MySQL) o il default_transaction_read_only
parametro (per RDS per PostgreSQL) su. 0
RDS nomina il nell'ambiente verde. -new
n
Se si elimina la risorsa di distribuzione blu/verde, RDS conserva le risorse and. -old
n
-new
n

Aggiornamento del nodo principale per i consumatori
RDS offre repliche di lettura completamente gestite. Tuttavia, offre anche la possibilità di configurare repliche autogestite, note anche come repliche esterne. Le repliche esterne consentono di utilizzare risorse di terze parti come obiettivi di replica.
Dopo aver cambiato una distribuzione RDS per MariaDB o RDS per MySQL MySQL blu/verde, se il cluster DB di blu aveva repliche esterne o utenti di log binari prima del passaggio, è necessario aggiornare il relativo nodo principale dopo il passaggio per mantenere la continuità della replica.
Per aggiornare il nodo principale
-
Dopo il passaggio, l'istanza DB che in precedenza si trovava nell'ambiente verde emette un evento che contiene il nome del file di registro principale e la posizione del registro principale. Per individuare l'evento, accedi alla console RDS e scegli Eventi dal riquadro di navigazione a sinistra.
-
Filtra per eventi la cui fonte è il nome della vecchia istanza di Green DB, prima dello switchover.
-
Individua l'evento che contiene le coordinate del log binario. Il messaggio dell'evento è simile a:
Binary log coordinates in green environment after switchover: file mysql-bin-changelog.
.000003
and position40134574
-
Assicurati che il consumatore o la replica abbiano applicato tutti i log binari del vecchio ambiente blu. Quindi, utilizzate le coordinate del log binario fornite per riprendere la replica sui consumatori. Ad esempio, se stai eseguendo una replica MySQL EC2 su, puoi usare i seguenti comandi:
MySQL 8.0.22 e versioni principali e secondarie precedenti
CHANGE MASTER TO MASTER_HOST='
{new-writer-endpoint}
', MASTER_LOG_FILE='mysql-bin-changelog.000003
', MASTER_LOG_POS=40134574
;MySQL 8.0.23 e versioni successive principali e secondarie
CHANGE REPLICATION SOURCE TO SOURCE_HOST='
{new-writer-endpoint}
', SOURCE_LOG_FILE='mysql-bin-changelog.000003
', SOURCE_LOG_POS=40134574
;
Se il consumatore è un'altra istanza DB RDS per MySQL o RDS per MariaDB, esegui le seguenti stored procedure nell'ordine: