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à.
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](images/read-replica-cross-region.png)
È 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-replica
comando o chiamare l'operazione CreateDBInstanceReadReplica
API.
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.
Argomenti
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
-
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).
-
Scegli l'istanza database MariaDB, Microsoft SQL Server, MySQL, Oracle o PostgreSQL da usare come origine la replica di lettura.
-
Per Actions (Operazioni), scegliere Create read replica (Crea replica di lettura).
-
Per DB instance identifier (Identificatore istanze DB) inserire un nome per la replica di lettura.
-
Seleziona la regione di destinazione.
-
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.
-
Per creare una replica di lettura crittografata in un'altra: Regione AWS
-
Scegliere Enable encryption (Abilita crittografia).
-
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.
-
-
Scegli altre opzioni, ad esempio il dimensionamento automatico dello storage.
-
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-replica
dalla 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 su ARNs, consulta. Nomi di risorse Amazon (ARNs) in Amazon RDS
Per creare una replica di lettura in un'istanza DB diversa Regione AWS da quella di origine, è possibile utilizzare il AWS CLI create-db-instance-read-replica
comando 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).
In Linux, macOS, oppure Unix:
aws rds create-db-instance-read-replica \ --db-instance-identifier
myreadreplica
\ --regionus-west-2
\ --source-db-instance-identifier arn:aws:rds:us-east-1
:123456789012
:db:mydbinstance
In Windows:
aws rds create-db-instance-read-replica ^ --db-instance-identifier
myreadreplica
^ --regionus-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).
In Linux, macOS, oppure Unix:
aws rds create-db-instance-read-replica \ --db-instance-identifier
myreadreplica
\ --regionus-west-2
\ --source-db-instance-identifier arn:aws:rds:us-east-1
:123456789012
:db:mydbinstance
\ --kms-key-idmy-us-west-2-key
In Windows:
aws rds create-db-instance-read-replica ^ --db-instance-identifier
myreadreplica
^ --regionus-west-2
^ --source-db-instance-identifier arn:aws:rds:us-east-1
:123456789012
:db:mydbinstance
^ --kms-key-idmy-us-west-2-key
L'--source-region
opzione è 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-url
opzione, 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 Create. Regione AWS DBInstance ReadReplica In questo caso, chiami Create DBInstance ReadReplica dal Regione AWS punto in cui desideri che venga letta la replica (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'CreateDBInstanceReadReplica
operazione 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
PreSignedURL
deve contenere una richiesta per l'CreateDBInstanceReadReplica
operazione 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 su ARNs, vedereNomi di risorse Amazon (ARNs) 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=®ion-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 Regioni AWS soggetto coinvolto e della quantità di dati 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:
-
Amazon RDS avvia la configurazione dell'istanza database di origine come origine della replica e imposta lo stato su modifying (modifica in corso).
-
Amazon RDS inizia a configurare la replica di lettura specificata nella destinazione Regione AWS e imposta lo stato su creazione.
-
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'istanzamysourceinstance
il2013-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). -
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).
-
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.
-
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 i seguenti motori RDS, puoi creare una replica di lettura Amazon RDS interregionale da un'istanza DB Amazon RDS di origine solo quando non è una replica di lettura di un'altra istanza database Amazon RDS:
-
RDS per SQL Server
-
RDS per Oracle
-
Versioni RDS per PostgreSQL precedenti alla 14.1
Questa limitazione non si applica alle istanze DB che eseguono RDS per PostgreSQL versione 14.1 e successive, RDS per MariaDB e RDS per MySQL.
-
-
Puoi aspettarti un livello di ritardo più elevato per qualsiasi replica di lettura che si trova in un'istanza diversa da quella di origine. Regione AWS 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 CLIcreate-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
oaws: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, specificandosource-instance-1
come fonte. -
Crea
read-replica-2
daread-replica-1
. -
Crea
read-replica-3
daread-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.