View a markdown version of this page

Configurando a Neptune-to-Neptune replicação - Amazon Neptune

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurando a Neptune-to-Neptune replicação

O cluster de banco de dados de produção principal reside em uma VPC em uma região de origem específica. Há três itens principais que você precisa replicar ou emular em uma região de recuperação diferente para fins de recuperação de desastres:

  • Os dados armazenados no cluster.

  • A configuração do cluster principal. Isso incluiria se ele usa a autenticação do IAM, se é criptografado, os parâmetros de cluster de banco de dados, os parâmetros de instância, os tamanhos de instância, etc.).

  • A topologia de rede que ele usa, incluindo a VPC de destino, os grupos de segurança, etc.

Você pode usar o APIs gerenciamento do Neptune, como o seguinte, para coletar essas informações:

Com as informações coletadas, é possível usar o procedimento a seguir para configurar um cluster de backup em uma região diferente, para a qual o cluster de produção pode fazer failover em caso de falha.

Habilitar fluxos do Neptune

É possível usar o ModifyDBClusterParameterGroup para definir o parâmetro neptune_streams como 1. Assim, reinicialize todas as instâncias no cluster de banco de dados para que a alteração tenha efeito.

É uma boa ideia realizar pelo menos uma operação de adição ou atualização no cluster de banco de dados de origem após a ativação dos fluxos do Neptune. Isso preenche o fluxo de alterações com pontos de dados que podem ser referenciados posteriormente ao ressincronizar o cluster de produção com o cluster de backup.

Criar uma VPC na região em que você deseja configurar o cluster de backup

Antes de criar um cluster de banco de dados do Neptune em uma região diferente do cluster principal, você precisa estabelecer uma nova VPC na região de destino para hospedar o cluster. A conectividade entre os clusters primário e de backup é estabelecida por meio do emparelhamento de VPC, que usa o tráfego entre sub-redes privadas de forma diferente. VPCs No entanto, para estabelecer o emparelhamento de VPC entre duas VPCs, elas não devem ter blocos CIDR ou espaços de endereço IP sobrepostos. Isso significa que você não pode simplesmente usar a VPC padrão nas duas regiões, porque o bloco CIDR para uma VPC padrão é sempre o mesmo (172.31.0.0/16).

Você pode usar uma VPC existente na região de destino, desde que ela atenda às seguintes condições:

  • Ela não tem um bloco CIDR que se sobreponha ao bloco CIDR da VPC na qual o cluster principal está localizado.

  • Ela ainda não está emparelhado com outra VPC que tenha o mesmo bloco CIDR da VPC em que seu cluster principal está localizado.

Se não houver uma VPC adequada disponível na região de destino, crie uma usando a API CreateVpc do Amazon EC2.

Criar um snapshot do cluster principal e restaurá-lo na região de backup de destino

Agora você cria um cluster do Neptune em uma VPC apropriada na região de backup de destino que é uma cópia do cluster de produção:

Fazer uma cópia do cluster de produção na região de backup
  1. Na sua região de backup de destino, recrie os parâmetros e grupos de parâmetros usados pelo cluster de banco de dados de produção. Você pode fazer isso usando CreateDBClusterParameterGroup, CreateDBParameterGroup, ModifyDBClusterParameterGroup e ModifyDBParameterGroup.

    Observe que, atualmente, o CopyDBClusterParameterGroupe CopyDBParameterGroup APIs não oferece suporte à cópia entre regiões.

  2. Use CreateDBClusterSnapshot para criar um snapshot do cluster de produção na VPC na região de produção.

  3. Use CopyDBClusterSnapshot para copiar o snapshot na VPC na região de backup de destino.

  4. Use RestoreDBClusterFromSnapshot para criar um cluster de banco de dados na VPC na região de backup de destino usando o snapshot copiado. Use as configurações e os parâmetros que você copiou do cluster de produção principal.

  5. O novo cluster do Neptune agora existe, mas não contém nenhuma instância. Use CreateDBInstancepara criar uma nova primary/writer instância que tenha o mesmo tipo e tamanho da instância de gravação do seu cluster de produção. Não há necessidade de criar réplicas de leitura adicionais neste momento, a menos que sua instância de backup seja usada para atender a leitura I/O na região de destino antes de um failover.

Estabelecer o emparelhamento da VPC entre a VPC do cluster principal e a VPC do novo cluster de backup

Ao configurar o emparelhamento da VPC, você permite que a VPC do cluster principal se comunique com a VPC do cluster de backup como se fosse uma única rede privada. Para fazer isso, siga as seguintes etapas:

  1. Na VPC do cluster de produção, chame a API CreateVpcPeeringConnection para estabelecer a conexão de emparelhamento.

  2. Na VPC do cluster de backup de destino, chame a API AcceptVpcPeeringConnection para aceitar a conexão de emparelhamento.

  3. Na VPC do cluster de produção, use a API CreateRoute para adicionar uma rota à tabela de rotas da VPC que redireciona todo o tráfego para o bloco CIDR da VPC de destino para que ela use a lista de prefixos de emparelhamento da VPC.

  4. Da mesma forma, a partir da VPC do cluster de backup de destino, use a API CreateRoute para adicionar uma rota à tabela de rotas da VPC que direciona o tráfego para a VPC do cluster principal.

Configurar a infraestrutura de replicação de fluxos do Neptune

Agora que os dois clusters foram implantados e a comunicação de rede entre as duas regiões foi estabelecida, use o CloudFormation modelo Neptune-to-Neptune para implantar a função Lambda do consumidor do Neptune Streams com a infraestrutura adicional que suporta a replicação de dados. Faça isso na VPC do cluster de produção principal.

Os parâmetros que você precisará fornecer para essa CloudFormation pilha são:

  • NeptuneStreamEndpoint: o endpoint de fluxos para o cluster principal, em formato de URL. Por exemplo: https://(cluster name):8182/pg/stream.

  • QueryEngine: deve ser gremlin, sparql ou openCypher.

  • RouteTableIds: permite adicionar rotas para um endpoint da VPC do DynamoDB e um endpoint da VPC de monitoramento.

    Dois parâmetros adicionais, ou seja, CreateMonitoringEndpoint e CreateDynamoDBEndpoint, também deverão ser definidos como verdadeiros se ainda não existirem na VPC do cluster principal. Se eles já existirem, verifique se estão definidos como falsos ou a CloudFormation criação falhará.

  • SecurityGroupIds: especifica o grupo de segurança usado pelo consumidor do Lambda para se comunicar com o endpoint de fluxos do Neptune do cluster principal.

    No cluster de backup de destino, anexe um grupo de segurança que viabilize o tráfego proveniente desse grupo de segurança.

  • SubnetIds: uma lista de IDs de sub-rede na VPC do cluster principal que pode ser usada pelo consumidor do Lambda para se comunicar com o cluster principal.

  • TargetNeptuneClusterEndpoint: o endpoint do cluster (somente nome do host) do cluster de backup de destino.

  • TargetAWSRegion— A AWS região do cluster de backup de destino, comous-east-1). Você deve fornecer esse parâmetro somente quando a AWS região do cluster de backup de destino for diferente da região do cluster de origem do Neptune, como no caso da replicação entre regiões. Se as regiões de origem e de destino forem iguais, esse parâmetro será opcional.

    Observe que, se o TargetAWSRegion valor não for uma AWS região válida compatível com o Neptune, o processo falhará.

  • VPC: o ID da VPC do cluster principal.

Todos os outros parâmetros podem ser deixados com seus valores padrão.

Depois que o CloudFormation modelo for implantado, o Neptune começará a replicar todas as alterações do cluster primário para o cluster de backup. Você pode monitorar essa replicação nos CloudWatch registros gerados pela função de consumidor do Lambda.