Uso de la replicación entre regiones de los flujos de Neptune para la recuperación de desastres - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la replicación entre regiones de los flujos de Neptune para la recuperación de desastres

Neptune ofrece dos formas de implementar capacidades de conmutación por error entre regiones:

  • Copia y restauración de instantáneas entre regiones

  • Uso de los flujos de Neptune para replicar datos entre dos clústeres en dos regiones diferentes.

La copia y restauración de instantáneas entre regiones tiene la sobrecarga operativa más baja para recuperar un clúster de Neptune en una región diferente. Sin embargo, copiar una instantánea entre regiones puede requerir un tiempo de transferencia de datos considerable, ya que una instantánea es una copia de seguridad completa del clúster de Neptune. Como resultado, la copia y restauración de instantáneas entre regiones se pueden utilizar en escenarios que solo requieren un objetivo de punto de recuperación (RPO) de horas y un objetivo de tiempo de recuperación (RTO) de horas.

Un objetivo de punto de recuperación (RPO) se mide por el tiempo transcurrido entre copias de seguridad. Define la cantidad de datos que se pueden perder entre el momento en que se realizó la última copia de seguridad y el momento en que se recuperó la base de datos.

Un objetivo de tiempo de recuperación (RTO) se mide por el tiempo que se tarda en realizar una operación de recuperación. Es el tiempo que tarda el clúster de base de datos en realizar la conmutación por error a una base de datos recuperada tras producirse un error.

Los flujos de Neptune proporcionan una forma de mantener un clúster de Neptune de copia de seguridad sincronizado con el clúster de producción principal en todo momento. Si se produce un error, la base de datos se conmuta por error al clúster de copia de seguridad. Esto reduce el RPO y el RTO a minutos, ya que los datos se copian constantemente al clúster de copia de seguridad, que está disponible de forma inmediata como destino de conmutación por error en cualquier momento.

El inconveniente de usar los flujos de Neptune de esta manera es que tanto la sobrecarga operativa requerida para mantener los componentes de replicación como el costo de tener un segundo clúster de base de datos de Neptune en línea todo el tiempo pueden ser significativos.

Configuración de la replicación de Neptune a Neptune

El clúster de base de datos de producción principal reside en una VPC en una región de origen determinada. Hay tres elementos principales que debe replicar o emular en una región de recuperación diferente para poder realizar una recuperación de desastres:

  • Los datos almacenados en el clúster.

  • La configuración del clúster principal. Esto incluiría si utiliza o no la autenticación de IAM, si está cifrada o no, los parámetros del clúster de base de datos, los parámetros de las instancias, los tamaños de las instancias, etc.

  • La topología de red que utiliza, incluida la VPC de destino, sus grupos de seguridad, etc.

Puede utilizar las API de administración de Neptune, como las siguientes, para recopilar esa información:

Con la información recopilada, puede usar el siguiente procedimiento para configurar un clúster de copia de seguridad en una región diferente, a la que su clúster de producción pueda conmutar por error en caso de que se produzca un error.

1: Habilite los flujos de Neptune

Puede usar ModifyDBClusterParameterGroup para establecer el parámetro neptune_streams en 1. A continuación, reinicie todas las instancias del clúster de base de datos para que el cambio se aplique.

Se recomienda realizar al menos una operación de adición o actualización en el clúster de base de datos de origen después de habilitar los flujos de Neptune. Esto rellena el flujo de cambios con puntos de datos a los que se puede hacer referencia más adelante al volver a sincronizar el clúster de producción con el clúster de copia de seguridad.

2: Cree una nueva VPC en la región en la que desee configurar el clúster de copia de seguridad

Antes de crear un nuevo clúster de base de datos de Neptune en una región diferente a la del clúster principal, debe establecer una nueva VPC en la región de destino para alojar el clúster. La conectividad entre los clústeres principal y de copia de seguridad se establece mediante la interconexión con VPC, que utiliza el tráfico entre subredes privadas de diferentes VPC. Sin embargo, para establecer la interconexión con VPC entre dos VPC, no deben tener bloques CIDR ni espacios de direcciones IP superpuestos. Esto significa que no puede usar la VPC predeterminada en ambas regiones, ya que el bloque CIDR de una VPC predeterminada es siempre el mismo (172.31.0.0/16).

Puede utilizar una VPC existente en la región de destino siempre que cumpla las siguientes condiciones:

  • No tiene ningún bloque de CIDR que se superponga con el bloque de CIDR de la VPC en la que está ubicado el clúster principal.

  • Aún no está interconectada con otra VPC que tenga el mismo bloque de CIDR que la VPC en la que se encuentra el clúster principal.

Si no hay ninguna VPC adecuada disponible en la región de destino, cree una con la API de CreateVpc de Amazon EC2.

3: Cree una instantánea de su clúster principal y restáurela en la región de copia de seguridad de destino

Ahora cree un nuevo clúster de Neptune en una VPC adecuada en la región de copia de seguridad de destino que es una copia de su clúster de producción:

Haga una copia de su clúster de producción en la región de copia de seguridad
  1. En la región de copia de seguridad de destino, vuelva a crear los parámetros y los grupos de parámetros que utiliza el clúster de base de datos de producción. Puede hacerlo mediante CreateDBClusterParameterGroup, CreateDBParameterGroup, ModifyDBClusterParameterGroup y ModifyDBParameterGroup.

    Tenga en cuenta que las API CopyDBClusterParameterGroup y CopyDBParameterGroup no admiten actualmente la copia entre regiones.

  2. Utilice CreateDBClusterSnapshot para crear una instantánea del clúster de producción en la VPC de su región de producción.

  3. Utilice CopyDBClusterSnapshot para copiar la instantánea a la VPC de la región de copia de seguridad de destino.

  4. Utilice RestoreDBClusterFromSnapshot para crear un nuevo clúster de base de datos en la VPC de la región de copia de seguridad de destino mediante la instantánea copiada. Utilice los parámetros y ajustes de configuración que copió del clúster de producción principal.

  5. El nuevo clúster de Neptune ya existe, pero no contiene ninguna instancia. Se usa CreateDBInstance para crear una nueva instancia principal/de escritura que tenga el mismo tipo y tamaño que la instancia de escritura del clúster de producción. No es necesario crear réplicas de lectura adicionales en este momento, a menos que la instancia de copia de seguridad se utilice para dar servicio a las operaciones de E/S de lectura en la región de destino antes de una conmutación por error.

4: Establezca la interconexión con VPC entre la VPC de su clúster principal y la VPC de su nuevo clúster de copia de seguridad

Al configurar la interconexión con VPC, permite que la VPC del clúster principal se comunique con la VPC del clúster de copia de seguridad como si se tratara de una sola red privada. Para ello, siga estos pasos:

  1. Desde la VPC de su clúster de producción, llame a la API de CreateVpcPeeringConnection para establecer la conexión de interconexión.

  2. Desde la VPC de su clúster de copia de seguridad de destino, llame a la API de AcceptVpcPeeringConnection para establecer la conexión de interconexión.

  3. Desde la VPC de su clúster de producción, utilice la API de CreateRoute para añadir una ruta a la tabla de enrutamiento de la VPC que redirija todo el tráfico al bloque CIDR de la VPC de destino para que utilice la lista de prefijos de interconexión con VPC.

  4. Del mismo modo, desde la VPC del clúster de copia de seguridad de destino, use la API de CreateRoute para añadir una ruta a la tabla de enrutamiento de la VPC que dirija el tráfico a la VPC del clúster principal.

5: Configure la infraestructura de replicación de los flujos de Neptune

Ahora que ambos clústeres están desplegados y se ha establecido la comunicación de red entre ambas regiones, utilice la AWS CloudFormation plantilla Neptune-Neptuno para implementar la función Lambda de consumo de flujos de Neptuno con la infraestructura adicional que admite la replicación de datos. Hágalo en la VPC de su clúster de producción principal.

Los parámetros que necesitará proporcionar para esta pila son: AWS CloudFormation

  • NeptuneStreamEndpoint: el punto de conexión del flujo del clúster principal, en formato URL. Por ejemplo: https://(cluster name):8182/pg/stream.

  • QueryEngine: debe ser gremlin, sparql o openCypher.

  • RouteTableIds: le permite añadir rutas tanto para un punto de conexión de VPC de DynamoDB como para un punto de conexión de VPC de monitorización.

    Dos parámetros adicionales, CreateMonitoringEndpoint y CreateDynamoDBEndpoint, también se deben establecer en true si aún no existen en la VPC del clúster principal. Si ya existen, asegúrese de que estén configurados como falsos o se producirá un error en la AWS CloudFormation creación.

  • SecurityGroupIds: especifica el grupo de seguridad que utiliza el consumidor de Lambda para comunicarse con el punto de conexión del flujo de Neptune del clúster principal.

    En el clúster de copia de seguridad de destino, asocie un grupo de seguridad que permita que el tráfico se origine desde este grupo de seguridad.

  • SubnetIds: una lista de los identificadores de subred de la VPC del clúster principal que el consumidor de Lambda puede utilizar para comunicarse con el clúster principal.

  • TargetNeptuneClusterEndpoint: el punto de conexión del clúster (solo nombre de host) del clúster de copia de seguridad de destino.

  • TargetAWSRegion— La AWS región del clúster de respaldo de destino, por ejemplous-east-1). Debe proporcionar este parámetro solo cuando la AWS región del clúster de respaldo de destino sea diferente de la región del clúster de origen de Neptune, como en el caso de la replicación entre regiones. Si las regiones de origen y destino son las mismas, este parámetro es opcional.

    Tenga en cuenta que si el TargetAWSRegion valor no es una AWS región válida compatible con Neptune, el proceso fallará.

  • VPC: el identificador de la VPC del clúster principal.

Todos los demás parámetros se pueden dejar con sus valores predeterminados.

Una vez implementada la AWS CloudFormation plantilla, Neptune empezará a replicar cualquier cambio del clúster principal al clúster de respaldo. Puede supervisar esta replicación en los CloudWatch registros generados por la función de consumo de Lambda.

Otras consideraciones

  • Si necesita usar la autenticación de IAM entre el clúster principal y el de respaldo, también puede configurarla al invocar la plantilla. AWS CloudFormation

  • Si el cifrado en reposo está habilitado en su clúster principal, considere cómo administrar las claves de KMS asociadas al copiar la instantánea a la región de destino y asociar una nueva clave de KMS a la región de destino.

  • Una práctica recomendada es utilizar los CNAME de DNS delante de los puntos de conexión de Neptune que se utilizan en las aplicaciones. Luego, si necesita realizar una conmutación por error manual al clúster de copia de seguridad de destino, estos CNAME se pueden cambiar para que apunten al clúster de destino o a los puntos de conexión de la instancia.