Creación de una réplica de lectura en una Región de AWS distinta
Con Amazon RDS, puede crear una réplica de lectura en una región de Región de AWS diferente que la de la instancia de base de datos de origen.
Cree una réplica de lectura en una Región de AWS diferente para lo siguiente:
-
Mejorar la capacidad de recuperación de desastres.
-
Escalar las operaciones de lectura en una Región de AWS más cercana a sus usuarios.
-
Facilitar la migración de un centro de datos de una Región de AWS a un centro de datos de otra Región de AWS.
Crear una réplica de lectura en una Región de AWS distinta a la de la instancia de origen es similar a crear una réplica en la misma Región de AWS. Puede utilizar la AWS Management Console, ejecutar el comando create-db-instance-read-replica
o llamar a la operación CreateDBInstanceReadReplica
de la API.
nota
Para crear una réplica de lectura cifrada en una Región de AWS distinta a la de la instancia de base de datos de origen, la instancia de base de datos de origen debe estar cifrada.
Temas
Disponibilidad en regiones y versiones
La disponibilidad de las características varía según las versiones específicas de cada motor de base de datos y entre Regiones de AWS. Para obtener más información sobre la disponibilidad en versiones y regiones de la replicación entre regiones, consulte Regiones y motores de bases de datos admitidos para réplicas de lectura entre regiones en Amazon RDS.
Creación de una réplica de lectura entre regiones
Los siguientes procedimientos muestran cómo crear una réplica de lectura a partir de una instancia de base de datos de MariaDB, Microsoft SQL Server, MySQL, Oracle o PostgreSQL de origen en una Región de AWS diferente.
Puede crear una réplica de lectura entre Regiones de AWS usando la AWS Management Console.
Para crear una réplica de lectura entre Regiones de AWS con la consola
-
Inicie sesión en la AWS Management Console y abra la consola de Amazon RDS en https://console.aws.amazon.com/rds/
. -
En el panel de navegación, seleccione Databases (Bases de datos).
-
Seleccione la instancia de base de datos de MariaDB, Microsoft SQL Server, MySQL, Oracle o PostgreSQL que desee usar como origen para una réplica de lectura.
-
En Actions (Acciones), elija Create read replica (Crear réplica de lectura).
-
En DB instance identifier (Identificador de instancias de bases de datos), escriba un nombre para la réplica de lectura.
-
Elija la Destination Region (Región de destino).
-
Elija las especificaciones de la instancia que desee usar. Se recomienda usar la misma clase de instancia de base de datos y el mismo tipo de almacenamiento o mayores para la réplica de lectura.
-
Para crear una réplica de lectura cifrada en otra Región de AWS:
-
Elija Habilitar el cifrado.
-
En AWS KMS key, elija el identificador AWS KMS key de la clave de KMS en la Región de AWS de destino.
nota
Para crear una réplica de lectura cifrada, la instancia de base de datos de origen debe estar cifrada. Para obtener más información acerca del cifrado de la instancia de base de datos de origen, consulte Cifrado de recursos de Amazon RDS.
-
-
Elija otras opciones, como el escalado automático de almacenamiento.
-
Elija Create read replica (Crear réplica de lectura).
Para crear una réplica de lectura a partir de una instancia de base de datos de MySQL, Microsoft SQL Server, MariaDB, Oracle o PostgreSQL de origen en una Región de AWS diferente, puede usar el comando create-db-instance-read-replica
. En este caso, se usa create-db-instance-read-replica
desde la Región de AWS en la que se desea situar la réplica de lectura (región de destino) y se especifica el nombre de recurso de Amazon (ARN) para la instancia de base de datos de origen. Un ARN identifica de forma única a un recurso creado en Amazon Web Services.
Por ejemplo, si la instancia de base de datos de origen está en la región US East (N. Virginia), el ARN tendrá un aspecto similar al siguiente.
arn:aws:rds:us-east-1:123456789012:db:mydbinstance
Para obtener información acerca de los ARN, consulte Nombres de recursos de Amazon (ARN) en Amazon RDS.
Para crear una réplica de lectura cifrada en una Región de AWS distinta de la instancia de base de datos de origen, puede usar el comando AWS CLIcreate-db-instance-read-replica
desde la Región de AWS de destino. Los siguientes parámetros son necesarios para crear una réplica de lectura en otra Región de AWS:
-
--region
: la Región de AWS de destino donde se crea la réplica de lectura. -
--source-db-instance-identifier
– Identificador de instancia de base de datos para la instancia de base de datos de origen. Este identificador debe estar en el formato del ARN para la Región de AWS de origen. -
--db-instance-identifier
: el identificador de la réplica de lectura en la Región de AWS de destino.
ejemplo de una réplica de lectura entre regiones
El siguiente código crea una réplica de lectura en la región EE.UU. Oeste (Oregón) desde una instancia de base de datos de origen en la regiónUS East (N. Virginia).
Para Linux, macOS o: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
En: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
Los siguientes parámetros también son necesarios para crear una réplica de lectura cifrada en otra Región de AWS:
-
--kms-key-id
: identificador de AWS KMS key de la clave de KMS que se va a utilizar para cifrar la réplica de lectura en Región de AWS de destino.
ejemplo de una réplica de lectura cifrada entre regiones
El siguiente código crea una réplica de lectura cifrada en la región EE.UU. Oeste (Oregón) de una instancia de base de datos de origen en la región US East (N. Virginia).
Para Linux, macOS o: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
En: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
La opción --source-region
es necesaria cuando se crea una réplica de lectura cifrada entre las AWS GovCloud (Este de EE. UU.) y AWS GovCloud (EE. UU. Oeste). Para --source-region
, especifique la Región de AWS de la instancia de base de datos de origen.
Si no se ha especificado --source-region
, especifique un valor de --pre-signed-url
. Una URL prefirmada es una URL que contiene una solicitud firmada de Signature Version 4 para el comando create-db-instance-read-replica
que se llama en la Región de AWS de origen. Para obtener más información acerca de la opción pre-signed-url
, consulte create-db-instance-read-replica en la Referencia de los comandos de AWS CLI.
Para crear una réplica de lectura a partir de una instancia de base de datos de MySQL, Microsoft SQL Server, MariaDB, Oracle o PostgreSQL de origen en una Región de AWS diferente, puede llamar a la operación CreateDBInstanceReadReplica de la API de Amazon RDS. En este caso, debe llamar a CreateDBInstanceReadReplica desde la Región de AWS en la que se desea colocar la réplica de lectura (región de destino) y especificar el nombre de recurso de Amazon (ARN) de la instancia de base de datos de origen. Un ARN identifica de forma única a un recurso creado en Amazon Web Services.
Para crear una réplica de lectura cifrada en una Región de AWS diferente que la instancia de base de datos de origen, puede usar la operación de la API de Amazon RDS CreateDBInstanceReadReplica
desde la Región de AWS de destino. Para crear una réplica de lectura cifrada en otra Región de AWS, debe especificar un valor para PreSignedURL
. PreSignedURL
debe contener una solicitud para llamar a la operación CreateDBInstanceReadReplica
en la Región de AWS de origen en la que se crea la réplica de lectura. Para obtener más información acerca de la PreSignedUrl
, consulte CreateDBInstanceReadReplica
.
Por ejemplo, si la instancia de base de datos de origen está en la región US East (N. Virginia), el ARN tendrá un aspecto similar al siguiente.
arn:aws:rds:us-east-1:123456789012:db:mydbinstance
Para obtener información acerca de los ARN, consulte Nombres de recursos de Amazon (ARN) en Amazon RDS.
ejemplo
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>
Cómo realiza Amazon RDS la replicación entre regiones
Amazon RDS usa el siguiente proceso para crear una réplica de lectura entre regiones. En función de las Regiones de AWS implicadas y de la cantidad de datos de la base de datos, este proceso puede tardar horas en completarse. Puede usar esta información para determinar cuánto ha avanzado el proceso cuando cree una réplica de lectura entre regiones:
-
Amazon RDS comienza a configurar la instancia de base de datos de origen como origen de la replicación y define el estado como modifying.
-
Amazon RDS comienza a configurar la réplica de lectura especificada en la Región de AWS de destino y define el estado como creating.
-
Amazon RDS crea una instantánea de base de datos automatizada de la instancia de base de datos de origen en la Región de AWS de origen. El formato del nombre de la instantánea de base de datos es
rds:<InstanceID>-<timestamp>
, donde<InstanceID>
es el identificador de la instancia de origen y<timestamp>
corresponde a la fecha y la hora en las que se inició la copia. Por ejemplo,rds:mysourceinstance-2013-11-14-09-24
se creó a partir de la instanciamysourceinstance
en2013-11-14-09-24
. Durante la creación de una instantánea de base de datos automatizada, el estado de la instancia de base de datos de origen sigue siendo modifying (modificando), el estado de las réplicas de lectura sigue siendo creating (creando) y el estado de la instantánea de base de datos es creating (creando). La columna de progreso de la página de la instantánea de base de datos de la consola indica cuánto ha avanzado la creación de la instantánea de base de datos. Cuando la instantánea de base de datos se haya completado, el estado tanto de la instantánea de base de datos como de la instancia de base de datos de origen se definirá como available. -
Amazon RDS comienza una copia de la instantánea entre regiones para la transferencia de datos inicial. La copia de la instantánea aparece como instantánea automatizada en la Región de AWS de destino con el estado creating. Tiene el mismo nombre que la instantánea de base de datos de origen. La columna de progreso de la página de la instantánea de base de datos indica cuánto ha avanzado la copia. Cuando la copia se haya completado, el estado de la copia de la instantánea de base de datos se definirá como available.
-
A continuación, Amazon RDS usa la instantánea de base de datos copiada para la carga de datos inicial en la réplica de lectura. Durante esta fase, la réplica de lectura está en la lista de instancias de base de datos del destino con el estado creating (creando). Cuando la carga se haya completado, el estado de la réplica de lectura se definirá como available (disponible) y se eliminará la copia de la instantánea de base de datos.
-
Cuando la réplica de lectura llega al estado disponible, Amazon RDS comienza a replicar los cambios realizados en la instancia de origen desde el comienzo de la operación de creación de la réplica de lectura. Durante esta fase, el retraso de replicación para la réplica de lectura es mayor que 0.
Para obtener información sobre el retardo de replicación, consulte Monitoreo de la replicación de lectura.
Consideraciones relativas a la replicación entre regiones
Todas las consideraciones relativas a la realización de la replicación dentro de una Región de AWS son válidas para la replicación entre regiones. Las siguientes consideraciones adicionales se deben tener en cuenta al replicar entre Regiones de AWS:
-
Una instancia de base de datos de origen puede tener réplicas de lectura entre regiones en en varias Regiones de AWS. Debido al límite del número de entradas de la lista de control de acceso (ACL) de una VPC de origen, RDS no puede garantizar más de cinco instancias de base de datos de réplica de lectura entre regiones.
-
Puede replicar entre las regiones GovCloud (Este de EE. UU.) y GovCloud (Oeste de EE. UU.), pero no dentro o fuera de GovCloud (EE. UU.).
-
En el caso de las instancias de base de datos de Microsoft SQL Server, Oracle y PostgreSQL, solo puede crear una réplica de lectura de Amazon RDS entre regiones a partir de una instancia de base de datos de origen de Amazon RDS que no sea una réplica de lectura de otra instancia de base de datos de Amazon RDS. Esta limitación no se aplica a las instancias de base de datos de MariaDB y MySQL.
-
Puede esperar ver un nivel superior de retraso para cualquier réplica de lectura que esté en una Región de AWS diferente que la instancia de origen. Este retardo procede de los canales de red más largos entre los centros de datos regionales.
-
En las réplicas de lectura entre regiones, cualquiera de los comandos para crear réplicas de lectura que definan el parámetro
--db-subnet-group-name
debe especificar un grupo de subredes de base de datos de la misma VPC. -
En la mayoría de los casos, la réplica de lectura utiliza el grupo de parámetros de base de datos predeterminado y el grupo de opción de base de datos para el motor de base de datos especificado.
Para los motores de base de datos MySQL y Oracle, puede especificar un grupo de parámetros personalizado para la réplica de lectura en la opción
--db-parameter-group-name
de la AWS CLI, comandocreate-db-instance-read-replica
. No puede especificar un grupo de parámetros personalizado cuando utiliza la AWS Management Console. -
La réplica de lectura utiliza el grupo de seguridad predeterminado.
-
Para las instancias de base de datos de MariaDB, Microsoft SQL Server, MySQL y Oracle, cuando se elimina la instancia de base de datos de origen para una réplica de lectura entre regiones, la réplica de lectura se promociona.
-
Para instancias de base de datos de PostgreSQL, cuando se elimina la instancia de base de datos de origen de una réplica de lectura entre regiones, el estado de la reproducción de la réplica de lectura se establece como
terminated
. Sin embargo, la réplica de lectura no se promociona.Debe promocionar la réplica de lectura de forma manual o eliminarla.
Solicitud de una réplica de lectura entre regiones
Para comunicarse con la región de origen y solicitar la creación de una réplica de lectura entre regiones, el solicitante (rol de IAM o usuario de IAM) debe tener acceso a la instancia de base de datos de origen y a la región de origen.
Ciertas condiciones en la política de IAM del solicitante pueden generar un error en la solicitud. En los siguientes ejemplos se supone que la instancia de base de datos de origen está en EE.UU. Este (Ohio) y que la réplica de lectura se crea en US East (N. Virginia). Estos ejemplos muestran condiciones en la política de IAM del solicitante que generan un error en la solicitud:
-
La política del solicitante tiene una condición para la
aws:RequestedRegion
.... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-east-1" } }
La solicitud falla porque la política no permite el acceso a la región de origen. Para que una solicitud sea correcta, se deben especificar las regiones de origen y destino.
... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": [ "us-east-1", "us-east-2" ] } }
-
La política del solicitante no permite el acceso a la instancia de base de datos de origen.
... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "arn:aws:rds:us-east-1:123456789012:db:myreadreplica" ...
Para que una solicitud sea correcta, se deben especificar la instancia de origen y la réplica.
... "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 política del solicitante niega
aws:ViaAWSService
.... "Effect": "Allow", "Action": "rds:CreateDBInstanceReadReplica", "Resource": "*", "Condition": { "Bool": {"aws:ViaAWSService": "false"} }
La comunicación con la región de origen la efectúa RDS en nombre del solicitante. Para que una solicitud sea correcta, no deniegue las llamadas realizadas por los servicios de AWS.
-
La política del solicitante tiene una condición para
aws:SourceVpc
oaws:SourceVpce
.Estas solicitudes pueden fallar porque cuando RDS realiza la llamada a la región remota, esta no procede del punto de conexión de la VPC o la VPC especificada.
Si es necesario utilizar una de las condiciones anteriores que generarían un error en una solicitud, se puede incluir una segunda instrucción con aws:CalledVia
en la política para que la solicitud se realice correctamente. Por ejemplo, se puede usar aws:CalledVia
con aws:SourceVpce
, como se muestra aquí:
... "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" ] } } }
Para obtener más información, consulte Políticas y permisos en IAM en la Guía del usuario de IAM.
Autorización de la réplica de lectura
Luego de que una solicitud de creación de réplica de lectura de base de datos en varias regiones devuelva success
, RDS iniciará la creación de la réplica en segundo plano. Se crea una autorización para que RDS acceda a la instancia de base de datos de origen. Esta autorización vincula la instancia de base de datos de origen a la réplica de lectura y permite que RDS copie solo en la réplica de lectura especificada.
La autorización es verificada por RDS mediante el permiso rds:CrossRegionCommunication
en el rol de IAM vinculado al servicio. Si la réplica es autorizada, RDS se comunica con la región de origen y completa la creación de la réplica.
RDS no tiene acceso a instancias de base de datos que no hayan sido autorizadas previamente por una solicitud CreateDBInstanceReadReplica
. La autorización se revoca cuando se completa la creación de la réplica de lectura.
RDS utiliza el rol vinculado a servicios para verificar la autorización en la región de origen. Si se elimina el rol vinculado a servicios durante el proceso de creación de replicación, se produce un error en la creación.
Para obtener más información, consulte Usar roles vinculados a servicios en la Guía del usuario de IAM.
Uso de credenciales de AWS Security Token Service
Los tokens de sesión del punto de conexión global de AWS Security Token Service (AWS STS) son válidos únicamente en Regiones de AWS que están habilitadas de forma predeterminada (regiones comerciales). Si utiliza credenciales de la operación de la API assumeRole
en AWS STS, utilice el punto de conexión regional si la región de origen es una región registrada. De lo contrario, la solicitud devuelve un error. Esto ocurre porque las credenciales deben ser válidas en ambas regiones, lo cual se cumple para las regiones registradas solo cuando se utiliza el punto de conexión regional de AWS STS.
Para utilizar el punto de conexión global, asegúrese de que está habilitado para operaciones en ambas regiones. Establezca el punto de conexión global en Valid in all Regiones de AWS
en la configuración de la cuenta de AWS STS.
La misma regla se aplica a las credenciales del parámetro URL prefirmado.
Para obtener más información, consulte Administración de AWS STS en una Región de AWS en la guía del usuario de IAM.
Costos de la replicación entre regiones
Los datos transferidos para la replicación entre regiones incurren en cargos por transferencia de datos de Amazon RDS. Las siguientes acciones de replicación entre regiones generan cargos para los datos transferidos fuera de la Región de AWS de origen:
-
Cuando se crea una réplica de lectura, Amazon RDS realiza una instantánea de la instancia de origen y transfiere la instantánea a la Región de AWS de la réplica de lectura.
-
Para cada modificación de datos realizada en las bases de datos de origen, Amazon RDS transfiere los datos de la Región de AWS de origen a la Región de AWS de la réplica de lectura.
Para obtener más información acerca de los precios de las transferencias de datos, consulte Precios de Amazon RDS
Para las instancias de MySQL y MariaDB, puede limitar los costos de transferencia de datos reduciendo el número de réplicas de lectura entre regiones que crea. Por ejemplo, imagine que tiene una instancia de base de datos de origen en una Región de AWS y que quiere tres réplicas de lectura en otra Región de AWS. En ese caso, cree solo una de las réplicas de lectura de la instancia de base de datos de origen. Cree las otras dos réplicas a partir de la primera réplica de lectura en lugar de la instancia de base de datos de origen.
Por ejemplo, si tiene source-instance-1
en una Región de AWS, puede hacer lo siguiente:
-
Cree
read-replica-1
en la nueva Región de AWS especificandosource-instance-1
como origen. -
Cree
read-replica-2
a partir deread-replica-1
. -
Cree
read-replica-3
a partir deread-replica-1
.
En este ejemplo, solo se le cobrará por los datos transferidos desde source-instance-1
a read-replica-1
. No se le cobrará por los datos transferidos desde read-replica-1
a las otras dos réplicas porque todas están en la misma Región de AWS. Si crea las tres réplicas directamente desde source-instance-1
, se le cobrará por las transferencias de datos a las tres réplicas.