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 blue/green as implantações dos bancos de dados globais do Amazon Aurora usando os princípios de IaC
Ishwar Chauthaiwale, ANKIT JAIN e Ramu Jagini, Amazon Web Services
Resumo
Gerenciar atualizações de bancos de dados, migrações ou esforços de escalabilidade pode ser um desafio para organizações que executam workloads críticas em bancos de dados globais do Amazon Aurora
Uma estratégia de blue/green implantação oferece uma solução para esse desafio, permitindo que você execute dois ambientes idênticos simultaneamente: azul (o ambiente atual) e verde (o novo ambiente). Uma blue/green estratégia permite que você implemente mudanças, realize testes e alterne o tráfego entre ambientes com o mínimo de risco e tempo de inatividade.
Esse padrão ajuda você a automatizar o processo de blue/green implantação dos bancos de dados globais do Aurora usando princípios de infraestrutura como código (IaC). Ele usa AWS CloudFormation, AWS Lambda, e o Amazon Route 53 para simplificar blue/green as implantações. Para melhorar a confiabilidade, ele usa identificadores de transação globais (GTIDs) para replicação. A replicação baseada em GTID fornece melhor consistência de dados e recursos de failover entre ambientes em comparação com a replicação de log binário (binlog).
nota
Este padrão pressupõe que você esteja usando um cluster de banco de dados global do Aurora edição compatível com MySQL do Aurora. Se você estiver usando o Aurora compatível com o PostgreSQL em vez disso, use os equivalentes PostgreSQL dos comandos do MySQL.
Siga as etapas neste padrão para fazer o seguinte:
Provisione um banco de dados global Aurora verde: usando CloudFormation modelos, você cria um ambiente verde que reflete seu ambiente azul existente.
Configurar a replicação baseada em GTID: você configura a replicação GTID para manter os ambientes azul e verde sincronizados.
Alternar o tráfego sem problemas: você usa o Route 53 e o Lambda para alternar automaticamente o tráfego do ambiente azul para o verde após a sincronização completa.
Finalizar a implantação: você valida que o ambiente verde está totalmente operacional como banco de dados primário e, em seguida, interrompe a replicação e limpa todos os recursos temporários.
A abordagem neste padrão fornece os seguintes benefícios:
Reduz o tempo de inatividade durante atualizações ou migrações críticas do banco de dados: a automação garante uma transição suave entre ambientes com o mínimo de interrupção do serviço.
Permite reversões rápidas: se surgir um problema depois que o tráfego for transferido para o ambiente verde, você poderá reverter rapidamente para o ambiente azul e manter a continuidade do serviço.
Melhora os testes e a verificação: o ambiente verde pode ser totalmente testado sem afetar o ambiente azul ativo, o que reduz a probabilidade de erros na produção.
Garante a consistência de dados: a replicação baseada em GTID mantém seus ambientes azul e verde sincronizados, o que evita perda de dados ou inconsistências durante a migração.
Mantém a continuidade dos negócios: automatizar suas blue/green implantações ajuda a evitar longas interrupções e perdas financeiras, mantendo seus serviços disponíveis durante atualizações ou migrações.
Pré-requisitos e limitações
Pré-requisitos
Um ativo Conta da AWS.
Um cluster de banco de dados global de origem do Aurora compatível com MySQL (ambiente azul). Os bancos de dados globais fornecem uma configuração multirregional para alta disponibilidade e recuperação de desastres. Para obter instruções sobre como configurar um cluster de banco de dados global, consulte a documentação do Aurora.
Replicação baseada em GTID habilitada no cluster de origem.
Limitações
Alguns Serviços da AWS não estão disponíveis em todos Regiões da AWS. Para conferir a disponibilidade de uma região, consulte Serviços da AWS by Region
. Para endpoints específicos, consulte a página Cotas e endpoints de serviços e clique no link correspondente ao serviço desejado.
Versões do produto
Aurora compatível com MySQL 8.0 ou posterior
Arquitetura

O diagrama ilustra o seguinte:
Configuração de banco de dados global: um cluster de banco de dados global Aurora é implantado estrategicamente em dois. Regiões da AWS Essa configuração permite distribuição geográfica e redundância regional para recursos aprimorados de recuperação de desastres.
Replicação da região primária para a região secundária: o mecanismo de replicação lógica garante a sincronização perfeita dos dados da região primária para a região secundária. Essa replicação mantém a consistência de dados com latência mínima em distâncias geográficas.
Replicação baseada em GTID entre clusters: a replicação baseada em GTID mantém a consistência transacional e o fluxo de dados ordenado entre o cluster primário azul e o cluster primário verde e garante a sincronização confiável dos dados.
Replicação azul primária para secundária: a replicação lógica estabelece um pipeline de dados robusto entre o cluster principal azul e seu cluster secundário. Essa replicação permite a sincronização contínua de dados e a alta disponibilidade.
Configuração de DNS do Route 53: os registros da zona hospedada do Route 53 gerenciam a resolução de DNS para todos os endpoints do banco de dados de cluster azul e verde. Essa configuração fornece mapeamento contínuo de endpoints e permite o roteamento eficiente do tráfego durante cenários de failover.
Ferramentas
Serviços da AWS
O Amazon Aurora é um mecanismo de banco de dados relacional totalmente gerenciado criado para a nuvem e compatível com o MySQL e o PostgreSQL.
CloudFormationajuda você a modelar e configurar seus AWS recursos para que você possa passar menos tempo gerenciando esses recursos e mais tempo se concentrando nos aplicativos que são executados em AWS. Você cria um modelo que descreve todos os AWS recursos que você deseja e se CloudFormation encarrega de provisionar e configurar esses recursos para você.
O AWS Lambda é um serviço de computação que permite a execução de código sem a necessidade de provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo.
O Amazon Route 53 é um serviço web de DNS altamente disponível e escalável.
Práticas recomendadas
Recomendamos que você analise minuciosamente a AWS documentação para aprofundar sua compreensão da estratégia de implantação azul/verde, da replicação baseada em GTID e das políticas de roteamento ponderado no Route 53. Esse conhecimento é crucial para implementar e gerenciar com eficácia suas migrações de banco de dados, garantindo a consistência de dados e otimizando o roteamento de tráfego. Ao obter uma compreensão abrangente desses AWS recursos e das melhores práticas, você estará mais bem equipado para lidar com futuras atualizações, minimizar o tempo de inatividade e manter um ambiente de banco de dados resiliente e seguro.
Para obter diretrizes sobre como usar o Serviços da AWS para esse padrão, consulte a AWS documentação a seguir:
Épicos
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Crie um backup snapshot do cluster azul. | Em uma blue/green implantação, o ambiente verde representa uma versão nova e idêntica do seu ambiente de banco de dados atual (azul). Você usa o ambiente verde para testar atualizações com segurança, validar alterações e garantir a estabilidade antes de mudar o tráfego de produção. Ele atua como um ponto de partida para a implementação de alterações no banco de dados com o mínimo de interrupção no ambiente ativo. Para criar um ambiente verde, primeiro você cria um snapshot do cluster primário (azul) em seu banco de dados global compatível com o Aurora MySQL. Esse snapshot serve como base para a criação do ambiente verde. Para criar um snapshot:
Como alternativa, você pode usar o AWS Command Line Interface (AWS CLI) para criar o instantâneo:
Certifique-se de que o snapshot tenha concluído com êxito antes de prosseguir para a próxima etapa. | DBA |
Gere o CloudFormation modelo para seu banco de dados global e seus recursos. | O gerador CloudFormation IaC ajuda você a gerar CloudFormation modelos a partir de AWS recursos existentes. Use esse recurso para criar um CloudFormation modelo para seu banco de dados global atual compatível com o Aurora MySQL e seus recursos associados. Esse modelo configura grupos de sub-redes, grupos de segurança, grupos de parâmetros e outras configurações do.
| DBA |
Modifique o CloudFormation modelo para o ambiente verde. | Personalize o CloudFormation modelo para refletir as configurações do ambiente verde. Isso inclui atualizar nomes e identificadores de recursos para garantir que o ambiente verde opere independentemente do cluster azul.
notaSe você usar a propriedade | DBA |
Implante a CloudFormation pilha para criar recursos para o ambiente verde. | Nesta etapa, você implanta o CloudFormation modelo personalizado para criar os recursos para o ambiente verde. Para implantar a CloudFormation pilha:
CloudFormation inicia o processo de criação de recursos ambientais verdes. Esse processo pode levar alguns minutos para ser concluído. | DBA |
Valide a CloudFormation pilha e os recursos. | Quando a implantação da CloudFormation pilha estiver concluída, você precisará verificar se o ambiente ecológico foi criado com sucesso:
Após a verificação, seu ambiente verde está pronto para configuração adicional, incluindo a replicação do ambiente azul. | DBA |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Verifique as configurações do GTID no cluster azul. | GTIDs forneça um método altamente confiável para replicar dados entre seus ambientes azul e verde. A replicação baseada em GTID oferece uma abordagem resiliente e simplificada ao atribuir um identificador exclusivo a cada transação no ambiente azul. Esse método garante que a sincronização de dados entre ambientes seja perfeita, consistente e mais fácil de gerenciar do que a replicação tradicional de binlogs. Antes de configurar a replicação, você precisa garantir que a replicação baseada em GTID esteja habilitada corretamente no cluster azul. Essa etapa garante que cada transação no ambiente azul seja rastreada de forma exclusiva e possa ser replicada no ambiente verde. Para confirmar se o GTID está habilitado:
Essas configurações permitem o rastreamento GTID para todas as transações futuras no ambiente azul. Depois de confirmar essas configurações, é possível começar a configurar a replicação. | DBA |
Crie um usuário de replicação. | Para replicar dados do ambiente azul para o ambiente verde, é necessário criar um usuário de replicação dedicado no cluster azul. Esse usuário será responsável por gerenciar o processo de replicação. Para configurar o usuário de replicação:
Agora, esse usuário tem as permissões necessárias para replicar dados entre os dois ambientes. | DBA |
Configurar a replicação baseada em GTID no cluster verde. | A próxima etapa é configurar o cluster verde para replicação baseada em GTID. Essa configuração garante que o ambiente verde espelhe continuamente todas as transações que acontecem no ambiente azul. Para configurar o cluster verde:
| DBA |
Inicie a replicação no cluster verde. | É possível iniciar o processo de replicação agora. No cluster verde, execute o comando:
Isso permite que o ambiente verde comece a sincronizar dados e a receber e aplicar transações do ambiente azul. | DBA |
Verifique o processo de replicação. | Para verificar se o ambiente verde está replicando com precisão os dados do cluster azul:
Se todos os indicadores estiverem corretos, a replicação baseada em GTID funcionará sem problemas e o ambiente verde estará totalmente sincronizado com o ambiente azul. | DBA |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Configure as políticas de roteamento ponderado do Route 53. | Depois de verificar consistência de dados entre os ambientes azul e verde, é possível alternar o tráfego do cluster azul para o cluster verde. Essa transição deve ser suave, minimizar o tempo de inatividade e garantir a integridade do banco de dados da sua aplicação. Para atender a esses requisitos, você pode usar o Route 53 para roteamento de DNS e o Lambda para automatizar a troca de tráfego. Além disso, um plano de reversão bem definido garante que você possa reverter para o cluster azul em caso de problemas. A primeira etapa é configurar o roteamento ponderado no Route 53. O roteamento ponderado permite controlar a distribuição do tráfego entre os clusters azul e verde e transferir gradualmente o tráfego de um ambiente para outro. Para configurar o roteamento ponderado:
Para obter mais informações sobre políticas de roteamento ponderado, consulte a documentação do Route 53. | AWS DevOps |
Implante uma função do Lambda para monitorar o atraso na replicação. | Para garantir que o ambiente verde esteja totalmente sincronizado com o ambiente azul, implante uma função do Lambda que monitore o atraso na replicação entre os clusters. Essa função pode verificar o status da replicação, especificamente a métrica Seconds_Behind_Master, para determinar se o cluster verde está pronto para lidar com todo o tráfego. Veja abaixo um exemplo da função do Lambda que você pode usar:
Essa função verifica o atraso de replicação e retorna o valor. Se o atraso for zero, o cluster verde estará totalmente sincronizado com o cluster azul. | AWS DevOps |
Automatize o ajuste de peso do DNS usando o Lambda. | Quando o atraso de replicação chegar a zero, é hora de mudar todo o tráfego para o cluster verde. Você pode automatizar essa transição usando outra função do Lambda que ajusta os pesos do DNS no Route 53 para direcionar 100% do tráfego para o cluster verde. Veja abaixo um exemplo de uma função do Lambda que automatiza a troca de tráfego:
Essa função verifica o atraso de replicação e atualiza os pesos do DNS do Route 53 quando o atraso é zero para mudar totalmente o tráfego para o cluster verde. notaDurante o processo de substituição, se o cluster azul tiver tráfego intenso de gravação, considere pausar temporariamente as operações de gravação durante a transição. Isso garante que a replicação seja atualizada e evita inconsistências de dados entre os clusters azul e verde. | AWS DevOps |
Verifique o interruptor de tráfego. | Depois que a função do Lambda ajustar os pesos do DNS, você deve verificar se todo o tráfego foi direcionado para o cluster verde e se a troca foi bem-sucedida. Para verificar:
Se tudo estiver funcionando conforme o esperado, a mudança de tráfego estará concluída. | AWS DevOps |
Se você encontrar algum problema, reverta as alterações. | Ter um plano de reversão é fundamental no caso de surgirem problemas após a mudança de tráfego. Veja como reverter rapidamente para o cluster azul, se necessário:
Ao implementar esse plano de reversão, você pode garantir o mínimo de interrupção para seus usuários no caso de problemas inesperados. | AWS DevOps |
| Tarefa | Description | Habilidades necessárias |
|---|---|---|
Interrompa a replicação baseada em GTID no cluster verde. | Depois de mudar o tráfego do ambiente azul para o ambiente verde, você deve validar o sucesso da transição e garantir que o cluster verde esteja funcionando conforme o esperado. Além disso, a replicação baseada em GTID entre os clusters azul e verde deve ser interrompida, porque o ambiente verde agora serve como banco de dados primário. A conclusão dessas tarefas garante que seu ambiente esteja seguro, simplificado e otimizado para operações contínuas. Para interromper a replicação:
Quando você interrompe a replicação, o cluster verde se torna totalmente independente e funciona como o ambiente do banco de dados primário para suas workloads. | DBA |
Limpe recursos. | A limpeza de todos os recursos temporários ou não utilizados que foram criados durante a migração do cluster azul para o verde garante que seu ambiente permaneça otimizado, seguro e econômico. A limpeza inclui ajustar as configurações de segurança, fazer backups finais e descomissionar recursos desnecessários. Para limpar recursos:
A limpeza dos recursos ajuda a manter um ambiente seguro e simplificado, reduz custos e garante que somente a infraestrutura necessária permaneça. | AWS DevOps |
Recursos relacionados
CloudFormation:
Práticas recomendadas CloudFormation
Gerar modelos a partir de recursos existentes com o gerador de IaC
Importar aplicativos inteiros para CloudFormation
(postagem AWS do blog)
Amazon Aurora:
Estratégia de implantações azul/verde:
Replicação baseada em GTID:
Usar a replicação baseada em GTID (documentação do Amazon RDS)
AWS Lambda:
Amazon Route 53:
Ferramentas de cliente do MySQL: