Uso delle repliche di lettura dell'istanza database - Amazon Relational Database Service

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à.

Uso delle repliche di lettura dell'istanza database

Una replica di lettura è una copia di sola lettura di un'istanza database. È possibile ridurre il carico sull'istanza database primaria instradando le query dalle applicazioni alla replica di lettura. In questo modo, è possibile impiegare la scalabilità orizzontale in modo elastico oltre i vincoli di capacità di una singola istanza database per carichi di lavoro di database particolarmente gravosi in lettura.

Per creare una replica di lettura da un'istanza database di origine, Amazon RDS utilizza le funzionalità di replica integrata del motore database. Per informazioni sull'uso di repliche di lettura con un motore specifico, consulta le sezioni seguenti:

Dopo aver creato una replica di lettura da un'istanza database di origine, l'origine diventa l'istanza database primaria. Quando si aggiorna l'istanza database primaria, Amazon RDS copia l'aggiornamento in modo asincrono nella replica di lettura. Il diagramma seguente mostra un'istanza database di origine replicata su una replica di lettura in una zona di disponibilità (AZ) diversa. I client hanno accesso in lettura/scrittura all'istanza DB principale e accesso in sola lettura alla replica.

Configurazione della replica di lettura

Le repliche di lettura vengono fatturate come istanze DB standard alle stesse tariffe della classe di istanze DB utilizzata per la replica. Non ti viene addebitato alcun costo per il trasferimento dei dati necessario per la replica dei dati tra l'istanza DB di origine e una replica di lettura all'interno della stessa. Regione AWS Per ulteriori informazioni, consulta Costi della replica tra regioni e Fatturazione delle istanze database per Amazon RDS.

Panoramica delle repliche di lettura di Amazon RDS

Le seguenti sezioni trattano le repliche di lettura delle istanze database. Per informazioni sull'aggiunta di repliche di lettura a un cluster Multi-AZ, consulta Utilizzo delle repliche di lettura del cluster di database multi-AZ.

Casi d'uso per le repliche di lettura

La distribuzione di una o più repliche di lettura per un'istanza database di origine specifica può essere una scelta logica in svariati scenari, inclusi i seguenti:

  • Dimensionamento oltre la capacità di calcolo o di I/O di una singola istanza database per carichi di lavoro di database gravosi in lettura. Puoi indirizzare questo traffico in lettura in eccesso a una o più repliche di lettura.

  • Assegnazione di traffico in lettura mentre l'istanza DB di origine non è disponibile. In alcuni casi, l'istanza database di origine potrebbe non riuscire a ricevere richieste di I/O, ad esempio a causa della sospensione delle operazioni di I/O in occasione dell'esecuzione di backup o della manutenzione pianificata. In questi casi puoi indirizzare il traffico in lettura verso le repliche di lettura. Per questo caso d'uso, tieni presente che i dati nella replica di lettura potrebbero restare non aggiornati, perché l'istanza database di origine non è disponibile.

  • Scenari di creazione di report o di data warehousing in cui potrebbe essere necessario eseguire query per la creazione di report aziendali su una replica di lettura invece che sull'istanza DB di produzione principale.

  • Implementazione del disaster recovery. Puoi promuovere una replica di lettura a un'istanza standalone come soluzione di disaster recovery in caso di errore dell'istanza database primaria.

Funzionamento delle repliche di lettura

Quando crei una replica di lettura, devi prima di tutto specificare un'istanza database esistente come origine. Amazon RDS acquisisce quindi uno snapshot dell'istanza di origine e crea un'istanza di sola lettura dallo snapshot. Amazon RDS usa quindi il metodo di replica asincrona per il motore del database per aggiornare la replica di lettura ogni volta che viene apportata una modifica all'istanza database primaria.

La replica di lettura opera come istanza database che permette solo connessioni di sola lettura. Un'eccezione è il motore database RDS per Oracle, che supporta i database di replica in modalità montata. Una replica montata non accetta connessioni utente e quindi non può gestire un carico di lavoro di sola lettura. L'uso principale per le repliche montate è il disaster recovery tra regioni. Per ulteriori informazioni, consulta Utilizzo di repliche di lettura per Amazon RDS per Oracle.

Le applicazioni si connettono a una replica di lettura allo stesso modo in cui si connettono a qualsiasi istanza database. Amazon RDS replica tutti i database dall'istanza database di origine.

Repliche di lettura in una implementazione multi-AZ

È possibile configurare una replica di lettura per un'istanza database che dispone anche di una replica in standby configurata per l'elevata disponibilità in un'implementazione Multi-AZ. La replica con la replica in standby è sincrona. A differenza di una replica di lettura, una replica in standby non può gestire il traffico di lettura.

Nel seguente scenario, i client hanno accesso in lettura/scrittura a un'istanza database primaria in una zona di disponibilità (AZ). L'istanza primaria copia gli aggiornamenti in modo asincrono su una replica di lettura in una seconda zona di disponibilità e li copia anche in modo sincrono su una replica in standby in una terza zona di disponibilità. I client hanno accesso in lettura solo alla replica di lettura.

Configurazione della replica di lettura e della replica in standby

Per ulteriori informazioni sull’elevata disponibilità e sulle repliche in standby, consulta Configurazione e gestione di un'implementazione multi-AZ.

Repliche di lettura tra regioni diverse

In alcuni casi, una replica di lettura risiede in un'istanza DB diversa Regione AWS da quella principale. In questi casi, Amazon RDS configura un canale di comunicazione sicuro tra l'istanza database primaria e la replica di lettura. Amazon RDS stabilisce tutte le configurazioni AWS di sicurezza necessarie per abilitare il canale sicuro, ad esempio l'aggiunta di voci ai gruppi di sicurezza. Per informazioni sulle repliche di lettura tra regioni, consulta Creazione di una replica di lettura in un altro Regione AWS.

Le informazioni contenute in questo capitolo si applicano alla creazione di repliche di lettura di Amazon RDS nella Regione AWS stessa istanza DB di origine o in un'altra istanza. Regione AWS Le informazioni seguenti non si applicano alla configurazione della replica con un'istanza eseguita in un'istanza Amazon EC2 o on-premise.

Differenze tra repliche di lettura per i motori DB

Poiché i motori DB di Amazon RDS implementano la replica in modo diverso, ci sono molte differenze significative delle quali dovresti essere consapevole, come mostrato nella tabella seguente.

Caratteristica o comportamento MySQL e MariaDB Oracle PostgreSQL SQL Server

Qual è il metodo di replica?

Replica logica.

Replica fisica.

Replica fisica.

Replica fisica.

Come vengono rimossi i log delle transazioni?

RDS for MySQL e RDS for MariaDB conservano tutti i log binari che non sono stati applicati.

Se un'istanza database di origine non dispone di repliche di lettura tra regioni, Amazon RDS for Oracle mantiene un minimo di due ore di log delle transazioni sull'istanza database di origine. I log vengono eliminati dall'istante database sorgente dopo due ore o dopo il periodo di tempo impostato con l'opzione, a seconda di quale risulta maggiore. I log vengono eliminati dalla replica di lettura dopo il periodo di tempo impostato con l'opzione solo se questi sono stati applicati correttamente al database.

In alcuni casi, un'istanza database primaria potrebbe avere una o più repliche di lettura tra regioni. In questa evenienza, Amazon RDS for Oracle mantiene i log delle transazioni sull'istanza database di origine finché non vengono trasmessi e applicati a tutte le repliche di lettura tra regioni.

Per informazioni sull'impostazione delle ore di conservazione dei log di archivio, consulta Conservazione dei log redo archiviati.

PostgreSQL include il parametro wal_keep_segments, che indica quanti file WAL (Write Ahead Log) vengono mantenuti per fornire dati alle repliche di lettura. Il valore del parametro specifica il numero di log da conservare.

Il file di log virtuale (VLF) del file di registro delle transazioni nella replica primaria può essere troncato quando non è più richiesto per le repliche secondarie.

Il VLF può essere contrassegnato come inattivo solo quando i record di log sono stati rafforzati nelle repliche. A prescindere dalla velocità dei sottosistemi del disco nella replica primaria, il log delle transazioni manterrà i VLF fino a quando la replica più lenta non è stata rafforzata.

Una replica può essere resa scrivibile?

Sì. Puoi rendere scrivibile una replica di lettura MySQL o MariaDB.

No. Una replica di lettura di Oracle è una copia fisica e Oracle non consente di scrivere su una replica di lettura. Puoi promuovere la replica di lettura per renderla scrivibile. La replica di lettura promossa contiene i dati replicati fino al momento in cui è stata effettuata la richiesta di promozione.

No. Una replica di lettura di PostgreSQL è una copia fisica e PostgreSQL non permette di rendere scrivibile una replica di lettura.

No. Una replica di lettura di SQL Server è una copia fisica e inoltre non consente scritture. Puoi promuovere la replica di lettura per renderla scrivibile. La replica di lettura promossa contiene i dati replicati fino al momento in cui è stata effettuata la richiesta di promozione.

Possono essere eseguiti backup sulla replica?

Sì. I backup automatici e gli snapshot manuali sono supportati nelle repliche di lettura RDS per MySQL o RDS per MariaDB.

Sì. I backup automatici e gli snapshot manuali sono supportati nelle repliche di lettura RDS per Oracle.

Sì, è possibile creare uno snapshot manuale delle repliche di lettura RDS per PostgreSQL. I backup automatici per le repliche di lettura sono supportati solo per RDS per PostgreSQL 14.1 e versioni successive. Non è possibile attivare i backup automatici per le repliche di lettura PostgreSQL per le versioni precedenti alla 14.1 di RDS per PostgreSQL. Per RDS per PostgreSQL 13 e versioni precedenti, crea uno snapshot da una replica di lettura se si desidera creare un backup da tale snapshot.

No. I backup automatici e gli snapshot manuali non sono supportati nelle repliche di lettura RDS per SQL Server.

È possibile usare la replica parallela?

Sì. Tutte le versioni supportate di MariaDB e MySQL supportano i thread di replica parallela.

Sì. I dati dei log di Redo vengono sempre trasmessi in parallelo dal database primario a tutte le sue repliche di lettura.

No. PostgreSQL usa un unico processo per la gestione della replica.

Sì. I dati dei log di Redo vengono sempre trasmessi in parallelo dal database primario a tutte le sue repliche di lettura.

È possibile mantenere una replica in uno stato montato piuttosto che in uno stato di sola lettura?

No.

Sì. L'uso principale per le repliche montate è il disaster recovery tra regioni. Non è richiesta una licenza Active Data Guard per le repliche montate. Per ulteriori informazioni, consulta Utilizzo di repliche di lettura per Amazon RDS per Oracle.

No.

No.

Tipi di archiviazione della replica di lettura

Per impostazione predefinita, la replica di lettura viene creata con lo stesso tipo di storage dell'istanza database di origine. Tuttavia, puoi creare una replica di lettura con un tipo di storage diverso dall'istanza database di origine in base alle opzioni elencate nella tabella seguente.

Tipo di storage dell'istanza database di origine Storage allocato all'istanza database di origine Opzioni per il tipo di storage della replica di lettura
IOPS con provisioning 100 GiB–64 TiB Capacità di IOPS allocata, per uso generico, magnetico
Uso generico 100 GiB–64 TiB Capacità di IOPS allocata, per uso generico, magnetico
Uso generico <100 GiB Per uso generico, magnetico
Magnetico Da 100 GiB a 6 TiB Capacità di IOPS allocata, per uso generico, magnetico
Magnetico <100 GiB Per uso generico, magnetico
Nota

Quando si aumenta lo storage allocato di una replica di lettura, deve essere di almeno il 10%. Se si prova ad aumentarlo di un valore inferiore al 10%, verrà visualizzato un errore.

Restrizioni per la creazione di una replica da una replica

Amazon RDS non supporta la replica circolare. Non puoi configurare un'istanza database perché funga da origine della replica per un'istanza database esistente. Puoi creare una nuova replica di lettura solo a partire da un'istanza database esistente. Ad esempio, se MySourceDBInstance si replica su ReadReplica1, non puoi configurare ReadReplica1 affinché si replichi a sua volta su MySourceDBInstance.

Per RDS per MariaDB e RDS per MySQL e per alcune versioni di RDS per PostgreSQL, è possibile creare una replica di lettura a partire da una replica di lettura esistente. Ad esempio, puoi creare una nuova replica di lettura ReadReplica2 dalla replica esistente ReadReplica1. Nel caso di RDS per Oracle e RDS per SQL Server, non è possibile creare una replica di lettura a partire da una replica di lettura esistente.

Considerazioni su quando eliminare le repliche

Se non sono più necessarie repliche di lettura, è possibile eliminarle in modo esplicito utilizzando gli stessi meccanismi per l'eliminazione di un'istanza DB. Se elimini un'istanza DB di origine senza eliminarne le repliche di lettura nella stessa Regione AWS, ogni replica di lettura viene promossa a istanza DB autonoma. Per informazioni sulla creazione di un'istanza database, consulta Eliminazione di un'istanza database. Per informazioni sulla promozione della replica in lettura, vedere Promozione di una replica di lettura a istanza database standalone.

Se si dispone di repliche di lettura tra regioni, consulta Considerazioni relative alla replica tra regioni per informazioni correlate all'eliminazione dell'istanza database di origine per una replica di lettura tra regioni.

Creazione di una replica di lettura

È possibile creare una replica di lettura da un'istanza DB esistente utilizzando AWS Management Console, AWS CLI o l'API RDS. Per creare una replica di lettura, devi specificare SourceDBInstanceIdentifier, che è l'identificatore istanze DB di origine da cui desideri eseguire la replica.

Quando crei una replica di lettura, Amazon RDS acquisisce uno snapshot DB dell'istanza database di origine e avvia la replica. L'istanza DB di origine subisce una sospensione di I/O molto breve all'inizio dell'operazione di snapshot DB. La sospensione dell'I/O dura in genere circa un secondo. Puoi evitare l'interruzione delle operazioni di I/O se l'istanza database di origine è un'implementazione Multi-AZ, perché in questo caso lo snapshot viene acquisito dall'istanza database secondaria.

Una transazione attiva a esecuzione prolungata può rallentare il processo di creazione della replica di lettura. Ti consigliamo di attendere il completamento delle transazioni a esecuzione prolungata prima di creare una replica di lettura. Se crei più repliche di lettura in parallelo dalla stessa istanza database di origine, Amazon RDS acquisisce un solo snapshot all'inizio della prima operazione di creazione.

Quando crei una replica di lettura, devi tenere presenti alcune considerazioni. Prima di tutto, devi abilitare i backup automatici nell'istanza database di origine impostando il periodo di retention dei backup su un valore diverso da zero. Questo requisito si applica anche a una replica di lettura che rappresenta l'istanza database di origine per un'altra replica di lettura. Per abilitare i backup automatici in una replica di lettura per RDS per MySQL, crea prima di tutto la replica di lettura, quindi modificala in modo da abilitare i backup automatici.

Nota

All'interno di un Regione AWS, consigliamo vivamente di creare tutte le repliche di lettura nello stesso cloud privato virtuale (VPC) basato su Amazon VPC come istanza DB di origine. Se crei una replica di lettura in un VPC diverso da quello dell'istanza database di origine, gli intervalli classless inter-domain routing (CIDR) possono sovrapporsi tra la replica e il sistema RDS. La sovrapposizione CIDR rende la replica instabile, influendo negativamente sulle applicazioni che si connettono. Se viene visualizzato un errore durante la creazione della replica di lettura, scegli un gruppo di sottoreti DB di destinazione diverso. Per ulteriori informazioni, consulta Uso di un'istanza database in un VPC.

Non esiste un modo diretto per creare una replica di lettura in un'altra Account AWS utilizzando la console o. AWS CLI

Per creare una replica di lettura da un'istanza database di origine
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, scegliere Databases (Database).

  3. Scegli l'istanza database da usare come origine per la replica di lettura.

  4. Per Actions (Operazioni), scegliere Create read replica (Crea replica di lettura).

  5. Per DB instance identifier (Identificatore istanze DB) inserire un nome per la replica di lettura.

  6. Scegli la configurazione per la tua istanza. Consigliamo di usare la stessa classe di istanza database o più grande e lo stesso tipo di archiviazione dell'istanza database di origine per la replica di lettura.

  7. Per la Regione AWS, specifica la regione di destinazione per la replica di lettura.

  8. In Archiviazione, specifica la dimensione di archiviazione allocata e l'eventuale uso della funzione di dimensionamento automatico dell'archiviazione.

    Se l'istanza database di origine non utilizza la configurazione dell'archiviazione più recente, è disponibile l'opzione Aggiorna la configurazione del file system di archiviazione. È possibile abilitare questa impostazione per aggiornare il file system di archiviazione della replica di lettura alla configurazione preferita. Per ulteriori informazioni, consulta Aggiornamento del file system di archiviazione per un'istanza database.

  9. In Disponibilità, scegli se creare una versione in standby della replica in un'altra zona di disponibilità per il supporto del failover per la replica.

    Nota

    La creazione della replica di lettura come un'istanza database Multi-AZ non dipende dal fatto che il database di origine sia un'istanza database Multi-AZ.

  10. Specifica le altre impostazioni dell'istanza database. Per informazioni su ciascuna impostazione disponibile, consulta Impostazioni per istanze database.

  11. Per creare una replica di lettura crittografata, espandi Configurazione aggiuntiva e specifica le seguenti impostazioni:

    1. Scegliere Enable encryption (Abilita crittografia).

    2. Per AWS KMS key, scegli l' AWS KMS key identificatore della chiave KMS.

    Nota

    L'istanza DB di origine deve essere crittografata. Per ulteriori informazioni sulla crittografia dell'istanza database di origine, consultare Crittografia delle risorse Amazon RDS.

  12. Scegliere Create read replica (Crea replica di lettura).

Dopo aver creato la replica di lettura, è possibile visualizzarla nella pagina Databases (Database) della console RDS. Mostra Replica nella colonna Role (Ruolo).

Per creare una replica di lettura da un'istanza DB di origine, usa il AWS CLI comando -replica. create-db-instance-read Questo esempio inoltre imposta la dimensione dell'archiviazione allocata, abilita il dimensionamento automatico dell'archiviazione e aggiorna il file system alla configurazione preferita.

È possibile specificare altre impostazioni. Per informazioni su ciascuna impostazione, consulta Impostazioni per istanze database.

Esempio

PerLinux, o: macOS Unix

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --source-db-instance-identifier mydbinstance \ --allocated-storage 100 \ --max-allocated-storage 1000 \ --upgrade-storage-config

Per Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --source-db-instance-identifier mydbinstance ^ --allocated-storage 100 ^ --max-allocated-storage 1000 ^ --upgrade-storage-config

Per creare una replica di lettura da un'istanza database di MySQL, MariaDB, Oracle, PostgreSQL o SQL Server di origine, richiama l’operazione Amazon RDS CreateDBInstanceReadReplica dell’API con i seguenti parametri richiesti:

  • DBInstanceIdentifier

  • SourceDBInstanceIdentifier

Promozione di una replica di lettura a istanza database standalone

È possibile promuovere una replica di lettura in un'istanza database autonoma. Se un'istanza database di origine ha diverse repliche di lettura, la promozione di una delle repliche di lettura a istanza database non ha alcun effetto sulle altre repliche.

Quando promuovi una replica di lettura, RDS riavvia l'istanza DB prima di renderla disponibile. Il processo di promozione può richiedere alcuni minuti per il completamento, che possono aumentare a seconda delle dimensioni della replica di lettura.

Promozione di una replica di lettura

Casi d'uso per promuovere una replica di lettura

Potresti voler promuovere una replica di lettura a un'istanza DB autonoma per uno dei seguenti motivi:

  • Implementazione del ripristino dagli errori – Puoi usare la promozione delle repliche di lettura come schema di ripristino dei dati in caso di errore dell'istanza database primaria. Questo approccio si integra con la replica sincrona, il rilevamento automatico degli errori e il failover.

    Se sei al corrente delle ramificazioni e delle limitazioni della replica asincrona, ma vuoi comunque usare la promozione delle repliche di lettura per il ripristino dei dati, puoi farlo. A questo scopo, crea prima di tutto una replica di lettura e quindi monitora l'istanza database primaria per individuare eventuali errori. In caso di errore, sono necessarie le operazioni seguenti:

    1. Promuovi la replica di lettura.

    2. Indirizza il traffico di database all'istanza database promossa.

    3. Crea una replica di lettura sostitutiva con l'istanza database promossa come origine.

  • Aggiornamento della configurazione di archiviazione: se l'istanza database di origine non si trova nella configurazione dell'archiviazione preferita, è possibile creare una replica di lettura dell'istanza e aggiornare la configurazione del file system di archiviazione. Questa opzione esegue la migrazione del file system della replica di lettura alla configurazione preferita. È possibile promuovere la replica di lettura a istanza autonoma.

    È possibile utilizzare questa opzione per superare le limitazioni di dimensionamento relative all'archiviazione e alle dimensioni dei file per i file system a 32 bit precedenti. Per ulteriori informazioni, consulta Aggiornamento del file system di archiviazione per un'istanza database.

    Questa opzione è disponibile solo se l'istanza database di origine non utilizza la configurazione di storage più recente o se stai modificando la classe dell'istanza database nell'ambito della stessa richiesta.

  • Partizionamento – Il partizionamento include l'architettura a "zero condivisione" ed essenzialmente comporta la suddivisione di database di grandi dimensioni in diversi database più piccoli. Un metodo comune per suddividere un database consiste nel dividere le tabelle che non sono unite nella stessa query in host diversi. Un altro metodo consiste nel duplicare una tabella tra più host e quindi usare un algoritmo di hashing per determinare quale host riceverà un determinato aggiornamento. Puoi creare repliche di lettura corrispondenti a ognuno degli shard (database più piccoli) e promuoverle quando decidi di convertirle in shard standalone. Puoi quindi separare lo spazio delle chiavi (se stai suddividendo le righe) o la distribuzione delle tabelle per ognuno degli shard, a seconda dei requisiti.

  • Esecuzione di operazioni DDL (solo MySQL e MariaDB) – Le operazioni DDL, come la creazione o la ricompilazione di indici, possono richiedere tempo e causano un notevole rallentamento delle prestazioni nell'istanza database. Puoi eseguire queste operazioni su una replica di lettura MySQL o MariaDB quando la replica di lettura è sincronizzata con l'istanza database primaria corrispondente. Puoi quindi promuovere la replica di lettura e indicare alle applicazioni di usare l'istanza promossa.

Nota

Se la replica di lettura è un'istanza DB RDS per Oracle, puoi eseguire uno switchover anziché una promozione. In uno switchover, l'istanza DB di origine diventa la nuova replica e la replica diventa la nuova istanza DB di origine. Per ulteriori informazioni, consulta Esecuzione di uno switchover Oracle Data Guard.

Caratteristiche di una replica di lettura promossa

Dopo aver promosso la replica di lettura, questa cessa di funzionare come replica di lettura e diventa un'istanza DB autonoma. La nuova istanza DB autonoma presenta le seguenti caratteristiche:

  • L'istanza DB autonoma mantiene il gruppo di opzioni e il gruppo di parametri della replica di lettura precedente alla promozione.

  • È possibile creare repliche di lettura dall'istanza DB autonoma ed eseguire operazioni di ripristino. point-in-time

  • Non è possibile utilizzare l'istanza DB come destinazione di replica perché non è più una replica di lettura.

Prerequisiti per promuovere una replica di lettura

Prima di promuovere una replica di lettura, procedi come segue:

  • Rivedi la tua strategia di backup:

    • Ti consigliamo di abilitare i backup e completare almeno un backup. La durata del backup è una funzione del numero di modifiche apportate al database dal backup precedente.

    • Se hai abilitato i backup nella replica di lettura, configura la finestra dei backup automatici in modo che i backup giornalieri non interferiscano con la promozione della replica di lettura.

    • Assicurati che la replica di lettura non abbia lo backing-up stato. Non è possibile promuovere una replica di lettura quando si trova in questo stato.

  • Impedisci la scrittura di qualsiasi transazione sull'istanza DB principale, quindi attendi che RDS applichi tutti gli aggiornamenti alla replica di lettura.

    Gli aggiornamenti del database vengono eseguiti nella replica di lettura dopo essere stati completati nell'istanza database primaria. Il ritardo di replica può variare in modo significativo. Utilizzare il parametro Replica Lag per determinare quando sono stati applicati tutti gli aggiornamenti alla replica di lettura.

  • (Solo MySQL e MariaDB) Per apportare modifiche a una replica di lettura MySQL o MariaDB prima di promuoverla, imposta il parametro su nel gruppo di parametri DB per la replica di lettura. read_only 0 È quindi possibile eseguire tutte le operazioni DDL necessarie, come la creazione di indici, nella replica di lettura. Le operazioni eseguite nella replica di lettura non influiscono sulle prestazioni dell'istanza database primaria.

Promuovere una replica di lettura: passaggi di base

Le fasi seguenti descrivono il processo generale per la promozione di una replica di lettura a istanza database:

  1. Promuovi la replica di lettura utilizzando l'opzione Promote sulla console Amazon RDS, il AWS CLI comando o l'promote-read-replicaoperazione dell'API PromoteReadReplicaAmazon RDS.

    Nota

    Per il completamento del processo di promozione sono necessari alcuni minuti. Quando promuovi una replica di lettura, RDS interrompe la replica e riavvia la replica di lettura. Al termine del riavvio, la replica di lettura è disponibile come nuova istanza database.

  2. (Facoltativo) Modificare la nuova istanza database in modo da impostarla come implementazione Multi-AZ. Per ulteriori informazioni, consulta Modifica di un'istanza database Amazon RDS e Configurazione e gestione di un'implementazione multi-AZ.

Per promuovere una replica di lettura in un'istanza database autonoma
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nella console Amazon RDS scegliere Databases (Database).

    Verrà visualizzato il riquadro Databases (Database). Ogni replica di lettura mostra la Replica nella colonna Role (Ruolo).

  3. Scegliere la replica di lettura che si desidera promuovere.

  4. In Actions (Operazioni), selezionare Promote (Promuovi).

  5. Nella pagina Promuovi replica di lettura immettere il periodo di retention dei backup e la finestra di backup per la nuova istanza database promossa.

  6. Dopo aver selezionato tutte le impostazioni desiderate, scegliere Continue (Continua).

  7. Nella pagina di conferma scegliere Promote Read Replica (Promuovi replica di lettura).

Per promuovere una replica di lettura a un'istanza DB autonoma, usa il comando. AWS CLI promote-read-replica

Esempio

PerLinux, omacOS: Unix

aws rds promote-read-replica \ --db-instance-identifier myreadreplica

Per Windows:

aws rds promote-read-replica ^ --db-instance-identifier myreadreplica

Per promuovere una replica di lettura a istanza database autonoma, richiama l’operazione PromoteReadReplica dell'API Amazon RDS con il parametro DBInstanceIdentifier richiesto.

Monitoraggio della replica di lettura

Puoi monitorare lo stato di una replica di lettura in diversi modi. La console Amazon RDS mostra lo stato di una replica di lettura nella sezione Replication (Replica) della scheda Connectivity & security (Connettività e sicurezza) nelle informazioni di dettaglio della replica di lettura. Per visualizzare i dettagli per una replica di lettura, scegli il nome della replica di lettura nell'elenco di istanze database nella console di Amazon RDS.

Stato della replica di lettura

Puoi anche vedere lo stato di una replica di lettura utilizzando il AWS CLI describe-db-instances comando o l'operazione dell'API DescribeDBInstances Amazon RDS.

Lo stato di una replica di lettura può essere uno dei seguenti:

  • replicating (replica in corso) – La replica di lettura sta eseguendo correttamente la replica.

  • replica danneggiata (solo SQL Server e PostgreSQL) – Le repliche ricevono dati dall'istanza primaria, ma uno o più database potrebbe non ricevere aggiornamenti. Ciò può verificarsi, ad esempio, quando una replica sta completando l'impostazione dei database appena creati. Può verificarsi anche quando vengono apportate modifiche a oggetti di grandi dimensioni o DDL non supportate nell'ambiente blu di un'implementazione blu/verde.

    Lo stato non passa da replication degraded a error, a meno che non si verifichi un errore durante lo stato danneggiato.

  • error (errore) – Si è verificato un errore di replica. Controlla il campo Replication Error (Errore di replica) nella console Amazon RDS o il log degli eventi per determinare esattamente l'errore. Per ulteriori informazioni sulla risoluzione dei problemi causati da un errore di replica, consulta Risoluzione dei problemi relativi a una replica di lettura MySQL.

  • terminated (terminata) (solo MariaDB, MySQL o PostgreSQL) – La replica è terminata. Questa situazione si verifica se la replica viene arrestata per più di 30 giorni consecutivi, manualmente o a causa di un errore di replica. In questo caso, Amazon RDS termina la replica tra l'istanza database primaria e tutte le repliche di lettura. Amazon RDS si comporta così per evitare requisiti di archiviazione maggiori sull'istanza database di origine e tempi di failover prolungati.

    L'interruzione della replica può influire sullo storage, perché può causare l'aumento delle dimensioni e del numero dei log a causa del volume elevato di messaggi di errore scritti nel log. L'interruzione della replica può anche influire sul ripristino dagli errori a causa del tempo necessario ad Amazon RDS per mantenere ed elaborare il numero elevato di log durante il ripristino.

  • terminated (terminata) (solo Oracle) – La replica è terminata. Questa situazione si verifica se la replica viene arrestata per più di 8 ore a causa della mancanza di spazio di archiviazione nella replica di lettura. In questo caso, Amazon RDS termina la replica tra l'istanza database primaria e tutte le repliche di lettura. Questo è uno stato terminale e la replica di lettura deve essere ricreata.

  • stopped (arrestata) (solo MySQL o MariaDB) – La replica è stata interrotta a causa di una richiesta avviata dal cliente.

  • replication stop point set (punto di arresto replica impostato) (solo MySQL) – È stato impostato un punto di arresto avviato dal cliente tramite la stored procedure mysql.rds_start_replication_until e la replica è in corso.

  • replication stop point reached (punto di arresto replica raggiunto) (solo MySQL) – È stato impostato un punto di arresto avviato dal cliente tramite la stored procedure mysql.rds_start_replication_until e la replica è stata arrestata perché è stato raggiunto il punto di arresto.

È possibile visualizzare dove viene replicata un'istanza database e, in caso affermativo, verificarne lo stato di replica. Nella pagina Databases (Database) della console RDS viene visualizzato Primary (Primario) nella colonna Role (Ruolo). Scegliere il nome dell'istanza database. Nella relativa pagina dei dettagli, nella scheda Connectivity & security (Connettività e sicurezza), lo stato di replica si trova in Replica.

Monitoraggio del ritardo di replica

Puoi monitorare il ritardo di replica in Amazon CloudWatch visualizzando la metrica Amazon ReplicaLag RDS.

Per MariaDB e MySQL, il parametro ReplicaLag indica il valore del campo Seconds_Behind_Master del comando SHOW REPLICA STATUS. Le cause comuni del ritardo di replica per MySQL e MariaDB sono le seguenti:

  • Interruzione della connessione di rete.

  • Scrittura in tabelle con indici in una replica di lettura. Se il parametro read_only non è impostato su 0 nella replica di lettura, la replica può essere interrotta.

  • Uso di un motore di storage non transazionale come MyISAM. La replica è supportata solo per il motore di storage InnoDB in MySQL e per il motore di storage XtraDB in MariaDB.

Nota

Le versioni precedenti di MariaDB e MySQL utilizzavano SHOW SLAVE STATUS anziché SHOW REPLICA STATUS. Se si utilizza una versione di MariaDB precedente alla 10.5 o una versione di MySQL precedente alla 8.0.23, utilizzare SHOW SLAVE STATUS.

Quando il parametro ReplicaLag è 0, la replica ha raggiunto l'istanza del database primaria. Se il parametro ReplicaLag restituisce -1, la replica non è attualmente attiva. ReplicaLag = -1 equivale a Seconds_Behind_Master = NULL.

Per Oracle, il parametro ReplicaLag è la somma del valore Apply Lag e della differenza tra il tempo corrente e il valore DATUM_TIME di Apply Lag. Il valore DATUM_TIME indica il tempo in cui la replica di lettura ha ricevuto per l'ultima volta i dati dall'istanza database di origine. Per ulteriori informazioni, consultare V$DATAGUARD_STATS nella documentazione di Oracle.

Per SQL Server, il parametro ReplicaLag è il ritardo massimo dei database che sono rimasti indietro, in secondi. Ad esempio, se sono disponibili due database con, rispettivamente, un ritardo di 5 secondi e 10 secondi, ReplicaLag è di 10 secondi. Il parametro ReplicaLag restituisce il valore della query seguente.

SELECT MAX(secondary_lag_seconds) max_lag FROM sys.dm_hadr_database_replica_states;

Per ulteriori informazioni, consulta secondary_lag_seconds nella documentazione di Microsoft.

ReplicaLag restituisce -1 se RDS non è in grado di determinare il ritardo, ad esempio durante la configurazione della replica o quando lo stato della replica di lettura è error.

Nota

I nuovi database non vengono inclusi nel calcolo del ritardo finché non sono accessibili nella replica di lettura.

Per PostgreSQL, il parametro ReplicaLag restituisce il valore della query seguente.

SELECT extract(epoch from now() - pg_last_xact_replay_timestamp()) AS reader_lag

PostgreSQL versioni 9.5.2 e successive usano slot di replica fisici per gestire la conservazione dei dati Write Ahead Log (WAL) nell'istanza di origine. Per ogni istanza di replica di lettura tra regioni, Amazon RDS crea uno slot di replica fisica e lo associa all'istanza. Due CloudWatch metriche di Amazon mostrano quanto sia indietro rispetto alla replica con maggior ritardo in termini di dati WAL ricevuti e di quanto spazio di archiviazione viene utilizzato per i dati WAL. Oldest Replication Slot Lag Transaction Logs Disk Usage Il valore Transaction Logs Disk Usage può aumentare in modo considerevole quando una replica di lettura tra regioni è in notevole ritardo.

Per ulteriori informazioni sul monitoraggio di un'istanza DB con, consulta. CloudWatch Monitoraggio dei parametri di Amazon RDS con Amazon CloudWatch

Creazione di una replica di lettura in un altro Regione AWS

Con Amazon RDS, puoi creare una replica di lettura in un'istanza DB diversa Regione AWS da quella di origine.

Configurazione della replica di lettura tra regioni

È possibile creare una replica di lettura in un altro Regione AWS modo per effettuare le seguenti operazioni:

  • Migliorare le funzionalità di disaster recovery.

  • Adattate le operazioni di lettura in modo che Regione AWS siano sempre più vicine ai vostri utenti.

  • Semplifica la migrazione da un data center Regione AWS a un data center in un altro Regione AWS.

La creazione di una replica di lettura in un'istanza diversa Regione AWS da quella di origine è simile alla creazione di una replica nella stessa. Regione AWSÈ possibile utilizzare AWS Management Console, eseguire il create-db-instance-read-replicacomando o chiamare l'operazione CreateDBInstanceReadReplicaAPI.

Nota

Per creare una replica di lettura crittografata in un'istanza DB diversa Regione AWS da quella di origine, l'istanza DB di origine deve essere crittografata.

Disponibilità di regioni e versioni

Il supporto varia a seconda delle versioni specifiche di ciascun motore di database e a seconda delle Regioni AWS. Per ulteriori informazioni sulla disponibilità di versioni e regioni con la replica tra regioni, consulta Regioni e motori DB supportati per repliche di lettura interregionali in Amazon RDS.

Creazione di una replica di lettura tra regioni

Nelle procedure seguenti viene mostrato come creare una replica di lettura da un'istanza database MariaDB, Microsoft SQL Server, MySQL, Oracle o PostgreSQL di origine in una Regione AWS diversa.

È possibile creare una replica di lettura Regioni AWS utilizzando. AWS Management Console

Per creare una replica di lettura tramite Regioni AWS la console
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione, scegli Databases (Database).

  3. Scegli l'istanza database MariaDB, Microsoft SQL Server, MySQL, Oracle o PostgreSQL da usare come origine la replica di lettura.

  4. Per Actions (Operazioni), scegliere Create read replica (Crea replica di lettura).

  5. Per DB instance identifier (Identificatore istanze DB) inserire un nome per la replica di lettura.

  6. Seleziona la regione di destinazione.

  7. Scegliere le specifiche dell'istanza che si vuole usare. Consigliamo di usare almeno la stessa classe di istanza database e lo stesso tipo di archiviazione per la replica di lettura.

  8. Per creare una replica di lettura crittografata in un'altra: Regione AWS

    1. Scegliere Enable encryption (Abilita crittografia).

    2. Per AWS KMS key, scegli l' AWS KMS key identificatore della chiave KMS nella destinazione. Regione AWS

    Nota

    Per creare una replica di lettura crittografata, l'istanza database di origine deve essere crittografata. Per ulteriori informazioni sulla crittografia dell'istanza database di origine, consultare Crittografia delle risorse Amazon RDS.

  9. Scegli altre opzioni, ad esempio il dimensionamento automatico dello storage.

  10. Scegliere Create read replica (Crea replica di lettura).

Per creare una replica di lettura da un'istanza database MySQL, Microsoft SQL Server, MariaDB, Oracle o PostgreSQL di origine in una Regione AWS diversa, puoi utilizzare il comando create-db-instance-read-replica. In questo caso, si utilizza create-db-instance-read-replicadalla posizione in Regione AWS cui si desidera la replica di lettura (regione di destinazione) e si specifica l'Amazon Resource Name (ARN) per l'istanza DB di origine. Un ARN identifica in modo univoco una risorsa creata in Amazon Web Services.

Ad esempio, se l'istanza database di origine si trova nella regione US East (N. Virginia), l'aspetto dell'ARN è simile al questo esempio:

arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Per informazioni sugli ARN, consulta Utilizzo di Amazon Resource Name (ARN) in Amazon RDS.

Per creare una replica di lettura in un'istanza DB diversa Regione AWS da quella di origine, puoi utilizzare il AWS CLI create-db-instance-read-replicacomando dalla destinazione. Regione AWS Per creare una replica di lettura in un'altra Regione AWS, i seguenti parametri sono obbligatori:

  • --region— La destinazione Regione AWS in cui viene creata la replica di lettura.

  • --source-db-instance-identifier– L'identificatore dell'istanza database per l'istanza database di origine. L'identificatore deve usare il formato ARN per la Regione AWS di origine.

  • --db-instance-identifier: l'identificatore per la replica di lettura nella Regione AWS di destinazione.

Esempio di una replica di lettura tra regioni

Il seguente codice crea una replica di lettura nella regione Stati Uniti occidentali (Oregon) da un'istanza database di origine nella regione US East (N. Virginia).

Per LinuxmacOS, oUnix:

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --region us-west-2 \ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Per Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --region us-west-2 ^ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance

I seguenti parametri sono inoltre obbligatori per creare una replica di lettura crittografata in un'altra Regione AWS:

  • --kms-key-id— L' AWS KMS key identificatore della chiave KMS da utilizzare per crittografare la replica letta nella destinazione. Regione AWS

Esempio di una replica di lettura tra regioni crittografate

Il seguente codice crea una replica di lettura crittografata nella regione Stati Uniti occidentali (Oregon) da un'istanza database di origine nella regione US East (N. Virginia).

PerLinux, o: macOS Unix

aws rds create-db-instance-read-replica \ --db-instance-identifier myreadreplica \ --region us-west-2 \ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance \ --kms-key-id my-us-west-2-key

Per Windows:

aws rds create-db-instance-read-replica ^ --db-instance-identifier myreadreplica ^ --region us-west-2 ^ --source-db-instance-identifier arn:aws:rds:us-east-1:123456789012:db:mydbinstance ^ --kms-key-id my-us-west-2-key

L'--source-regionopzione è obbligatoria quando si crea una replica di lettura crittografata tra le regioni AWS GovCloud (Stati Uniti orientali) e AWS GovCloud (Stati Uniti occidentali). Per --source-region, specificare la Regione AWS dell'istanza database di origine.

Se non si specifica --source-region, è necessario specificare un valore per --pre-signed-url. Un URL prefirmato è un URL che contiene una richiesta firmata Signature Versione 4 per il comando create-db-instance-read-replica chiamato nella Regione AWS di origine. Per ulteriori informazioni sull'pre-signed-urlopzione, consulta create-db-instance-read-replica nel Command Reference.AWS CLI

Per creare una replica di lettura da un'istanza DB di origine MySQL, Microsoft SQL Server, MariaDB, Oracle o PostgreSQL in un'altra istanza, puoi chiamare l'operazione API Amazon RDS CreateDB. Regione AWS InstanceReadReplica In questo caso, chiami CreateDB InstanceReadReplica dal punto in Regione AWS cui desideri la replica di lettura (regione di destinazione) e specifichi l'Amazon Resource Name (ARN) per l'istanza DB di origine. Un ARN identifica in modo univoco una risorsa creata in Amazon Web Services.

Per creare una replica di lettura crittografata in un'istanza DB diversa Regione AWS da quella di origine, puoi utilizzare l'CreateDBInstanceReadReplicaoperazione dell'API Amazon RDS dalla destinazione. Regione AWS Per creare una replica di lettura crittografata in un'altra Regione AWS, devi specificare un valore per. PreSignedURL PreSignedURLdeve contenere una richiesta per l'CreateDBInstanceReadReplicaoperazione di richiamo all'origine in Regione AWS cui viene creata la replica di lettura. Per ulteriori informazioni su PreSignedUrl, consulta CreateDBInstanceReadReplica.

Ad esempio, se l'istanza database di origine si trova nella regione US East (N. Virginia), l'ARN è simile al seguente.

arn:aws:rds:us-east-1:123456789012:db:mydbinstance

Per informazioni sugli ARN, consulta Utilizzo di Amazon Resource Name (ARN) in Amazon RDS.

Esempio
https://us-west-2.rds.amazonaws.com/ ?Action=CreateDBInstanceReadReplica &KmsKeyId=my-us-east-1-key &PreSignedUrl=https%253A%252F%252Frds.us-west-2.amazonaws.com%252F %253FAction%253DCreateDBInstanceReadReplica %2526DestinationRegion%253Dus-east-1 %2526KmsKeyId%253Dmy-us-east-1-key %2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%123456789012%25253Adb%25253Amydbinstance %2526SignatureMethod%253DHmacSHA256 %2526SignatureVersion%253D4%2526SourceDBInstanceIdentifier%253Darn%25253Aaws%25253Ards%25253Aus-west-2%25253A123456789012%25253Ainstance%25253Amydbinstance %2526Version%253D2014-10-31 %2526X-Amz-Algorithm%253DAWS4-HMAC-SHA256 %2526X-Amz-Credential%253DAKIADQKE4SARGYLE%252F20161117%252Fus-west-2%252Frds%252Faws4_request %2526X-Amz-Date%253D20161117T215409Z %2526X-Amz-Expires%253D3600 %2526X-Amz-SignedHeaders%253Dcontent-type%253Bhost%253Buser-agent%253Bx-amz-content-sha256%253Bx-amz-date %2526X-Amz-Signature%253D255a0f17b4e717d3b67fad163c3ec26573b882c03a65523522cf890a67fca613 &DBInstanceIdentifier=myreadreplica &SourceDBInstanceIdentifier=&region-arn;rds:us-east-1:123456789012:db:mydbinstance &Version=2012-01-15 &SignatureVersion=2 &SignatureMethod=HmacSHA256 &Timestamp=2012-01-20T22%3A06%3A23.624Z &AWSAccessKeyId=<&AWS; Access Key ID> &Signature=<Signature>

Processo usato da Amazon RDS per eseguire la replica tra regioni

Amazon RDS usa il processo seguente per creare una replica di lettura tra regioni. A seconda del soggetto Regioni AWS coinvolto e della quantità di dati presenti nei database, il completamento di questo processo può richiedere ore. Puoi usare queste informazioni per determinare lo stato di avanzamento del processo quando crei una replica di lettura tra regioni:

  1. Amazon RDS avvia la configurazione dell'istanza database di origine come origine della replica e imposta lo stato su modifying (modifica in corso).

  2. Amazon RDS inizia a configurare la replica di lettura specificata nella destinazione Regione AWS e imposta lo stato su creazione.

  3. Amazon RDS crea uno snapshot DB automatico dell'istanza database di origine nella Regione AWS di origine. Il formato del nome dello snapshot DB è rds:<InstanceID>-<timestamp>, dove <InstanceID> è l'identificatore dell'istanza di origine e <timestamp> corrisponde alla data e all'ora di avvio della copia. Ad esempio, rds:mysourceinstance-2013-11-14-09-24 è stato creato dall'istanza mysourceinstance il 2013-11-14-09-24. Durante la creazione di uno snapshot DB automatico, lo stato dell'istanza database di origine resta modifying (modifica in corso), lo stato della replica di lettura resta creating (creazione in corso) e lo stato dello snapshot DB è creating (creazione in corso). La colonna dello stato di avanzamento della pagina dello snapshot DB nella console indica l'avanzamento della creazione dello snapshot DB. Al termine della creazione dello snapshot DB, lo stato dello snapshot DB e quello dell'istanza database di origine sono entrambi impostati su available (disponibile).

  4. Amazon RDS avvia una copia dello snapshot tra regioni per il trasferimento iniziale dei dati. La copia dello snapshot viene elencata come istantanea automatica nella destinazione Regione AWS con lo stato di creazione. La copia ha lo stesso nome dello snapshot DB di origine. La colonna dello stato di avanzamento della visualizzazione dello snapshot DB indica l'avanzamento della copia. Al termine della copia, lo stato della copia dello snapshot DB è impostato su available (disponibile).

  5. Amazon RDS usa quindi lo snapshot DB copiato per il caricamento dei dati iniziale nella replica di lettura. Durante questa fase, la replica di lettura è inclusa nell'elenco delle istanze database nella destinazione, con stato creating (creazione in corso). Al termine del caricamento, lo stato della replica di lettura è impostato su available (disponibile) e la copia dello snapshot DB viene eliminata.

  6. Quando una replica di lettura raggiunge lo stato disponibile, Amazon RDS avvia la replica delle modifiche apportate all'istanza di origine dall'avvio dell'operazione di creazione della replica di lettura. Durante questa fase, il ritardo di replica per la replica di lettura è maggiore di 0.

    Per ulteriori informazioni sui ritardi della replica, consultare Monitoraggio della replica di lettura.

Considerazioni relative alla replica tra regioni

Tutte le considerazioni relative all'esecuzione della replica all'interno di un Regione AWS si applicano alla replica tra regioni. Alla replica tra Regioni AWS si applicano anche le considerazioni aggiuntive seguenti:

  • Un'istanza database di origine può avere repliche di lettura tra regioni in più Regioni AWS. A causa del limite al numero di voci dell'elenco di controllo degli accessi (ACL) per il VPC di origine, RDS non può garantire più di cinque istanze DB di replica di lettura interregionale.

  • È possibile eseguire la replica tra le regioni GovCloud (Stati Uniti orientali) e GovCloud (Stati Uniti occidentali), ma non all'interno o all'esterno (Stati Uniti). GovCloud

  • Per le istanze database Microsoft SQL Server, Oracle e PostgreSQL puoi creare una replica di lettura Amazon RDS tra regioni solo da un'istanza database Amazon RDS di origine che non sia una replica di lettura di un'altra istanza database Amazon RDS. Queste limitazioni non si applicano alle istanze database MariaDB e MySQL.

  • Puoi aspettarti un livello di ritardo più elevato per qualsiasi replica di lettura che si trova in un'istanza diversa Regione AWS da quella di origine. Questo ritardo è dovuto alla maggiore lunghezza dei percorsi di rete che collegano i data center regionali.

  • Per le repliche di lettura tra regioni, qualsiasi comando di creazione di repliche di lettura specificato dal parametro --db-subnet-group-name deve specificare un gruppo di sottoreti database dello stesso VPC.

  • Nella maggior parte dei casi, la replica di lettura utilizza il gruppo di parametri del database di default per il motore di database specificato.

    Per i motori MySQL e Oracle DB, è possibile specificare un gruppo di parametri personalizzato per la replica di lettura nell'opzione --db-parameter-group-name del comando. AWS CLI create-db-instance-read-replica Non è possibile specificare un gruppo di parametri personalizzato quando si utilizza la AWS Management Console.

  • La replica di lettura utilizza il gruppo di sicurezza predefinito.

  • Per le istanze database MariaDB, Microsoft SQL Server, MySQL e Oracle, quando l'origine per una replica di lettura tra regioni viene eliminata, la replica di lettura viene promossa.

  • Per le istanze database PostgreSQL, quando l'istanza database di origine di una replica di lettura tra regioni viene eliminata, la replica di lettura viene impostata su terminated. La replica di lettura non viene promossa.

    Sarà necessario promuovere manualmente la replica di lettura o eliminarla.

Richiesta di una replica di lettura tra regioni

Per comunicare con la regione di origine per richiedere la creazione di una replica di lettura tra regioni, il richiedente (ruolo IAM o utente IAM) deve avere accesso all'istanza database di origine e alla regione di origine.

Alcune condizioni nella policy IAM del richiedente possono causare l'esito negativo della richiesta. Gli esempi seguenti presuppongono che l'istanza database di origine sia in Stati Uniti orientali (Ohio) e la replica di lettura sia creata in US East (N. Virginia). Questi esempi mostrano le condizioni nella policy IAM del richiedente che causano l'esito negativo della richiesta:

  • La policy del richiedente ha una condizione per aws:RequestedRegion.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-1" } }

    La richiesta ha esito negativo perché la policy non consente l'accesso alla regione di origine. Perché una richiesta sia completata correttamente, specifica sia le regioni di origine che quelle di destinazione.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-east-2" ] } }
  • La policy del richiedente non consente l'accesso all'istanza database di origine.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "arn:aws:rds:us-east-1:123456789012:db:myreadreplica" ...

    Per una richiesta riuscita, specificare sia l'istanza di origine che la replica.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": [ "arn:aws:rds:us-east-1:123456789012:db:myreadreplica", "arn:aws:rds:us-east-2:123456789012:db:mydbinstance" ] ...
  • La policy del richiedente rifiuta aws:ViaAWSService.

    ... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "Bool": {"aws:ViaAWSService": "false"} }

    La comunicazione con la regione di origine viene effettuata da RDS per conto del richiedente. Per una richiesta andata a buon fine, non rifiutate le chiamate effettuate dai servizi. AWS

  • La policy del richiedente ha una condizione per aws:SourceVpc o aws:SourceVpce.

    Queste richieste potrebbero non riuscire perché quando RDS effettua la chiamata alla regione remota, non proviene dall'endpoint VPC o dal VPC specificato.

Se è necessario utilizzare una delle condizioni precedenti che causerebbero un errore di una richiesta, è possibile includere una seconda istruzione con aws:CalledVia nella policy in modo che la richiesta abbia esito positivo. Ad esempio, è possibile utilizzare aws:CalledVia con aws:SourceVpce come riportato di seguito:

... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "Condition" : { "ForAnyValue:StringEquals" : { "aws:SourceVpce": "vpce-1a2b3c4d" } } }, { "Effect": "Allow", "Action": [ "rds:CreateDBInstanceReadReplica" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:CalledVia": [ "rds.amazonaws.com" ] } } }

Per ulteriori informazioni, consulta Policy e autorizzazioni in IAM nella Guida per l'utente di IAM.

Autorizzazione della replica di lettura

Dopo che una richiesta di creazione di replica di lettura database tra regioni restituisce success, RDS avvia la creazione della replica in background. Viene creata un'autorizzazione per RDS per accedere all'istanza database di origine. Questa autorizzazione collega l'istanza del database di origine alla replica di lettura e consente a RDS di copiare solo la replica di lettura specificata.

L'autorizzazione è verificata da RDS utilizzando l’autorizzazione rds:CrossRegionCommunication nel ruolo IAM collegato al servizio. Se la replica è autorizzata, RDS comunica con la regione di origine e completa la creazione della replica.

RDS non ha accesso alle istanze database non autorizzate in precedenza da una richiesta CreateDBInstanceReadReplica. L'autorizzazione viene revocata al termine della creazione della replica di lettura.

RDS utilizza il ruolo collegato al servizio per verificare l'autorizzazione nella regione di origine. Se si elimina il ruolo collegato al servizio durante il processo di creazione della replica, la creazione non riesce.

Per ulteriori informazioni, consulta Utilizzo di ruoli collegati ai servizi nella Guida per l'utente di IAM.

Utilizzo delle credenziali AWS Security Token Service

I token di sessione dell'endpoint global AWS Security Token Service (AWS STS) sono validi solo se abilitati per impostazione predefinita (regioni commerciali). Regioni AWS Se utilizzi le credenziali dell'operazione assumeRole API in AWS STS, utilizza l'endpoint regionale se la regione di origine è una regione che richiede l'attivazione. In caso contrario, la richiesta ha esito negativo. Ciò accade perché le credenziali devono essere valide in entrambe le regioni, il che vale per le regioni che hanno aderito solo quando viene utilizzato l'endpoint regionale. AWS STS

Per utilizzare l'endpoint globale, assicurarsi che sia abilitato per entrambe le regioni nelle operazioni. Imposta l'endpoint globale su Valid in all Regioni AWS nelle impostazioni dell'account. AWS STS

La stessa regola si applica alle credenziali nel parametro URL prefirmato.

Per ulteriori informazioni, consulta Managing AWS STS in an Regione AWS in the IAM User Guide.

Costi della replica tra regioni

Ai dati trasferiti per la replica tra regioni si applicano i costi di trasferimento dei dati di Amazon RDS. Queste operazioni di replica tra regioni generano costi per i dati trasferiti al di fuori della Regione AWS di origine:

  • Quando crei una replica di lettura, Amazon RDS acquisisce uno snapshot dell'istanza di origine e lo trasferisce nella Regione AWS della replica di lettura.

  • Per ogni modifica dei dati effettuata nei database di origine, Amazon RDS trasferisce i dati dalla replica di origine Regione AWS alla replica Regione AWS di lettura.

Per ulteriori informazioni sui prezzi del trasferimento dati, consulta Prezzi di Amazon RDS.

Per istanze MySQL e MariaDB, puoi ridurre i costi di trasferimento dei dati diminuendo il numero di repliche di lettura tra regioni create. Ad esempio, supponiamo di avere un'istanza DB di origine in un'istanza Regione AWS e di voler avere tre repliche di lettura in un'altra. Regione AWS In questo caso, puoi creare solo una delle repliche di lettura dall'istanza database di origine. Le altre due repliche vengono create dalla prima replica di lettura anziché dall'istanza database di origine.

Ad esempio, se ne hai source-instance-1 una Regione AWS, puoi fare quanto segue:

  • Crea read-replica-1 nel nuovo Regione AWS, specificando source-instance-1 come fonte.

  • Crea read-replica-2 da read-replica-1.

  • Crea read-replica-3 da read-replica-1.

In questo esempio ti verranno addebitati solo i dati trasferiti da source-instance-1 a read-replica-1. I costi dei dati trasferiti da read-replica-1 alle altre due repliche non ti verranno addebitati perché si trovano tutti nella stessa Regione AWS. Se crei tutte e tre le repliche direttamente da source-instance-1, ti verrà addebitato il trasferimento dei dati in tutte le repliche.