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á.
Automatize o failover e o failback entre regiões usando o DR Orchestrator Framework
Criado por Jitendra Kumar (AWS), Oliver Francis (AWS) e Pavithra Balasubramanian (AWS)
Repositório de código: aws-cross-region-dr -databases | Ambiente: produção | Tecnologias: bancos de dados; infraestrutura; migração; modernização |
Serviços da AWS: Amazon Aurora; AWS; Amazon; CloudFormation ElastiCache Amazon RDS; AWS Step Functions |
Resumo
Esse padrão descreve como usar o DR Orchestrator Framework para orquestrar e automatizar as etapas manuais e propensas a erros para realizar a recuperação de desastres nas regiões da Amazon Web Services ().AWS O padrão abrange os seguintes bancos de dados:
Amazon Relational Database Service (Amazon RDS) para MySQL, Amazon RDS para PostgreSQL ou Amazon RDS para MariaDB
Edição compatível com Amazon Aurora MySQL ou edição compatível com Amazon Aurora PostgreSQL (usando um arquivo centralizado)
Amazon ElastiCache para Redis
Para demonstrar a funcionalidade do DR Orchestrator Framework, você cria duas instâncias de banco de dados ou clusters. O primário está no Região da AWS us-east-1
, e o secundário está dentrous-west-2
. Para criar esses recursos, você usa os AWS CloudFormation modelos na App-Stack
pasta do GitHub repositório aws-cross-region-dr-databases
Pré-requisitos e limitações
Pré-requisitos gerais
Estrutura do DR Orchestrator implantada tanto no primário quanto no secundário Regiões da AWS
Uma nuvem privada virtual (VPC)
com duas sub-redes e um grupo de segurança AWS
Pré-requisitos específicos do motor
Amazon Aurora — Pelo menos um banco de dados global do Aurora deve estar disponível em dois. Regiões da AWS Você pode usar
us-east-1
como região primária e usarus-west-2
como região secundária.Amazon ElastiCache for Redis — Um armazenamento de dados ElastiCache global deve estar disponível em dois. Regiões da AWS Você pode usar
use us-east-1
como região primária e usarus-west-2
como região secundária.
Limitações do Amazon RDS
O DR Orchestrator Framework não verifica o atraso na replicação antes de fazer um failover ou failback. O atraso na replicação deve ser verificado manualmente.
Essa solução foi testada usando uma instância de banco de dados primária com uma réplica de leitura. Se você quiser usar mais de uma réplica de leitura, teste a solução minuciosamente antes de implementá-la em um ambiente de produção.
Limitações do Aurora
A disponibilidade e o suporte dos recursos variam entre as versões específicas de cada mecanismo de banco de dados Regiões da AWS. Para obter mais informações sobre a disponibilidade de recursos e regiões para replicação entre regiões, consulte Réplicas de leitura entre regiões.
Os bancos de dados globais do Aurora têm requisitos de configuração específicos para as classes de instância de banco de dados Aurora suportadas e o número máximo de. Regiões da AWS Para obter mais informações, consulte Requisitos de configuração de um banco de dados global do Amazon Aurora.
Essa solução foi testada usando uma instância de banco de dados primária com uma réplica de leitura. Se você quiser usar mais de uma réplica de leitura, teste a solução minuciosamente antes de implementá-la em um ambiente de produção.
ElastiCache limitações
Para obter informações sobre a disponibilidade regional para o armazenamento de dados global e os requisitos ElastiCache de configuração, consulte Pré-requisitos e limitações na documentação. ElastiCache
Versões do produto Amazon RDS Up
O Amazon RDS é compatível com as seguintes versões de mecanismo:
MySQL — O Amazon RDS oferece suporte a instâncias de banco de dados executando as seguintes versões do MySQL: MySQL 8.0 e MySQL 5.7
MariaDB 10.11
MariaDB 10.6
MariaDB 10.5
Versões do produto Aurora
A transição global do banco de dados Amazon Aurora requer o Aurora MySQL compatível com o MySQL 5.7, versão 2.09.1 e superior
Para obter mais informações, consulte Limitações dos bancos de dados globais do Amazon Aurora.
ElastiCache para versões do produto Redis
O Amazon ElastiCache for Redis oferece suporte às seguintes versões do Redis:
Redis 7.1 (aprimorado)
Redis 7.0 (aprimorado)
Redis 6.2 (aprimorado)
Redis 6.0 (aprimorado)
Redis 5.0.6 (aprimorado)
Para obter mais informações, consulte Compatível com ElastiCache versões do Redis.
Arquitetura
Arquitetura Amazon RDS
A arquitetura do Amazon RDS inclui os seguintes recursos:
A instância de banco de dados primária do Amazon RDS criada na região primária (
us-east-1
) com acesso de leitura/gravação para clientesUma réplica de leitura do Amazon RDS criada na região secundária (
us-west-2
) com acesso somente de leitura para clientesEstrutura do DR Orchestrator implantada nas regiões primária e secundária
![Diagrama da arquitetura RDS de duas regiões em uma única conta da AWS.](images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/ad217033-600c-40da-929c-b9f9aecb4c2c.png)
O diagrama mostra o seguinte:
Replicação assíncrona entre a instância primária e a instância secundária
Acesso de leitura/gravação para clientes na região principal
Acesso somente de leitura para clientes na região secundária
Arquitetura Aurora
A arquitetura do Amazon Aurora inclui os seguintes recursos:
O cluster de banco de dados Aurora principal criado na região primária (
us-east-1
) com um endpoint de gravação ativaUm cluster de banco de dados Aurora criado na região secundária (
us-west-2
) com um endpoint de gravador inativoEstrutura do DR Orchestrator implantada nas regiões primária e secundária
![Diagrama da implantação do Aurora em duas regiões em uma única conta da AWS.](images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/524ec002-5aa7-47b2-8c8d-6d1a3b535e9e.png)
O diagrama mostra o seguinte:
Replicação assíncrona entre o cluster primário e o cluster secundário
O cluster de banco de dados principal com um endpoint de gravação ativa
O cluster de banco de dados secundário com um endpoint de gravação inativa
ElastiCache para arquitetura Redis
A arquitetura Amazon ElastiCache for Redis inclui os seguintes recursos:
Um armazenamento de dados global ElastiCache para Redis criado com dois clusters:
O cluster primário na região primária (
us-east-1
)O cluster secundário na região secundária (
us-west-2
)
Um link entre regiões da Amazon com criptografia TLS 1.2 entre os dois clusters
Estrutura do DR Orchestrator implantada nas regiões primária e secundária
![Diagrama de uma ElastiCache implantação em duas regiões com o link entre regiões da Amazon.](images/pattern-img/8d39561f-924e-4b3e-8175-c5c3cab163bd/images/cf6620a0-dd42-4042-8dc2-012bf514ffc0.png)
Automação e escala
O DR Orchestrator Framework é escalável e oferece suporte ao failover ou failback de mais de um banco de dados em paralelo. AWS
Você pode usar o seguinte código de carga útil para fazer o failover de vários AWS bancos de dados em sua conta. Neste exemplo, três AWS bancos de dados (dois bancos de dados globais, como o Aurora compatível com MySQL ou o Aurora PostgreSQL, e uma instância do Amazon RDS for MySQL) fazem o failover para a região de recuperação de desastres:
{ "StatePayload": [ { "layer": 1, "resources": [ { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (MySQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-mysql-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-mysql-cluster-identifier" } }, { "resourceType": "PlannedFailoverAurora", "resourceName": "Switchover (planned failover) of Amazon Aurora global databases (PostgreSQL)", "parameters": { "GlobalClusterIdentifier": "!Import dr-globaldb-cluster-postgres-global-identifier", "DBClusterIdentifier": "!Import dr-globaldb-cluster-postgres-cluster-identifier" } }, { "resourceType": "PromoteRDSReadReplica", "resourceName": "Promote RDS for MySQL Read Replica", "parameters": { "RDSInstanceIdentifier": "!Import rds-mysql-instance-identifier", "TargetClusterIdentifier": "!Import rds-mysql-instance-global-arn" } } ] } ] }
Ferramentas
AWS serviços
O Amazon Aurora é um mecanismo de banco de dados relacional totalmente gerenciado que é construído para a nuvem e compatível com o MySQL e o PostgreSQL.
ElastiCacheA Amazon ajuda você a configurar, gerenciar e escalar ambientes distribuídos de cache na memória no Nuvem AWS. Esse padrão usa Amazon ElastiCache for Redis.
O AWS Lambda
é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado. Nesse padrão, as funções Lambda são usadas AWS Step Functions para executar as etapas. O Amazon Relational Database Service (Amazon RDS) ajuda você a configurar, operar e escalar um banco de dados relacional no. Nuvem AWS Esse padrão é compatível com Amazon RDS para MySQL, Amazon RDS para PostgreSQL e Amazon RDS para MariaDB.
AWS SDK for Python (Boto3)
ajuda você a integrar seu aplicativo, biblioteca ou script Python com o. Serviços da AWS Nesse padrão, as APIs do Boto3 são usadas para se comunicar com as instâncias do banco de dados ou bancos de dados globais. AWS Step Functions
é um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios. Nesse padrão, as máquinas de estado do Step Functions são usadas para orquestrar e executar o failover e o failback entre regiões das instâncias do banco de dados ou dos bancos de dados globais.
Repositório de código
O código desse padrão está disponível no repositório aws-cross-region-dr-databases
Épicos
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Clone o GitHub repositório. | Para clonar o repositório, execute o seguinte comando:
| AWS DevOps, administrador da AWS |
O código de funções do Package Lambda em um arquivo de arquivos.zip. | Crie os arquivos de arquivamento das funções Lambda para incluir as dependências do DR Orchestrator Framework:
| Administrador da AWS |
Crie buckets S3. | Os buckets S3 são necessários para armazenar o DR Orchestrator Framework junto com sua configuração mais recente. Crie dois buckets S3, um na região primária (
| Administrador da AWS |
Crie sub-redes e grupos de segurança. | Tanto na região primária (
| Administrador da AWS |
Atualize os arquivos de parâmetros do DR Orchestrator. | Na
Use os seguintes valores de parâmetros, substituindo
| Administrador da AWS |
Faça upload do código do DR Orchestrator Framework para o bucket do S3. | O código estará mais seguro em um bucket do S3 do que no diretório local. Faça upload do Para fazer o upload do código, faça o seguinte:
| Administrador da AWS |
Implante o DR Orchestrator Framework na região primária. | Para implantar o DR Orchestrator Framework na região primária (
| Administrador da AWS |
Implante o DR Orchestrator Framework na região secundária. | Na região secundária (
| Administrador da AWS |
Verificar a implantação. | Se o AWS CloudFormation comando for executado com êxito, ele retornará a seguinte saída:
Como alternativa, você pode navegar até o AWS CloudFormation console e verificar o status da | Administrador da AWS |
Tarefa | Descrição | Habilidades necessárias |
---|---|---|
Crie as sub-redes do banco de dados e os grupos de segurança. | Em sua VPC, crie duas sub-redes e um grupo de segurança para a instância de banco de dados ou banco de dados global nas regiões primária (
| Administrador da AWS |
Atualize o arquivo de parâmetros para a instância de banco de dados ou cluster primário. | Na Amazon RDS No
Amazon Aurora No
Amazon ElastiCache para Redis No
| Administrador da AWS |
Implante sua instância de banco de dados ou cluster na região primária. | Para implantar sua instância ou cluster na região primária ( Amazon RDS
Amazon Aurora
Amazon ElastiCache para Redis
Verifique se os AWS CloudFormation recursos foram implantados com êxito. | Administrador da AWS |
Atualize o arquivo de parâmetros para a instância de banco de dados ou cluster secundário. | Na Amazon RDS No
Amazon Aurora No
Amazon ElastiCache para Redis No
| Administrador da AWS |
Implante sua instância de banco de dados ou cluster na região secundária. | Execute os comandos a seguir, com base em seu mecanismo de banco de dados. Amazon RDS
Amazon Aurora
Amazon ElastiCache para Redis
Verifique se os AWS CloudFormation recursos foram implantados com êxito. | Administrador da AWS |
Recursos relacionados
Estratégia de recuperação de desastres para bancos de dados em AWS (estratégia de orientação AWS prescritiva)
Automatize sua solução de DR para bancos de dados relacionais em AWS(guia de orientação AWS prescritiva)
Automatize sua solução de DR para bancos de dados relacionais em AWS(guia de orientação AWS prescritiva)