Práticas recomendadas para implantações azul/verde do Amazon RDS
Veja as práticas recomendadas para implantações azul/verde.
Tópicos
Práticas recomendadas gerais para implantações azuis/verdes
Considere as seguintes práticas recomendadas gerais ao criar uma implantação azul/verde.
-
Teste minuciosamente as instâncias de banco de dados no ambiente verde antes da transição.
-
Mantenha seus bancos de dados no ambiente verde somente leitura. Recomendamos que você habilite as operações de gravação no ambiente verde com cuidado, pois elas podem causar conflitos de replicação. Elas também podem ocasionar dados não intencionais nos bancos de dados de produção após a transição.
-
Se você usar uma implantação azul/verde para implementar alterações de esquema, faça somente alterações compatíveis com a replicação.
Por exemplo, é possível adicionar novas colunas ao final de uma tabela sem interromper a replicação da implantação azul para a implantação verde. No entanto, alterações de esquema, como renomear colunas ou renomear tabelas, transformam a replicação na implantação verde.
Para ter mais informações sobre alterações compatíveis com replicação, consulte Replicação com diferentes definições de tabela na origem e na réplica
na documentação do MySQL e Restrições na documentação de replicação lógica do PostgreSQL. nota
Essa limitação não se aplica às implantações azuis/verdes do RDS para PostgreSQL que usam replicação física. Para ter mais informações, consulte Limitações do RDS para PostgreSQL para implantações azuis/verdes com replicação física.
-
Depois de criar a implantação azul/verde, manipule o carregamento lento, se necessário. O carregamento de dados deve ser concluído antes da transição. Para ter mais informações, consulte Carregamento lento e inicialização de armazenamento para implantações azuis/verdes.
-
Ao realizar a transição de uma implantação azul/verde, siga as práticas recomendadas de transição. Para ter mais informações, consulte Práticas recomendadas de transição.
Práticas recomendadas do RDS para MySQL para implantações azuis/verdes
Considere as seguintes práticas recomendadas ao criar uma implantação azul/verde em uma instância de banco de dados do RDS para MySQL.
-
Evite usar mecanismos de armazenamento não transacionais, como o MyISAM, que não são otimizados para replicação.
-
Otimize as réplicas de leitura e o ambiente verde para replicação de logs binários. Se compatível com o mecanismo de banco de dados, habilite as replicações GTID, paralela e à prova de falhas para garantir consistência e durabilidade dos dados antes de criar a implantação azul/verde. Para ter mais informações, consulte Usar a replicação baseada em GTID.
-
Se o ambiente verde apresentar atraso na réplica, pense no seguinte:
-
Defina o parâmetro
innodb_flush_log_at_trx_commit
temporariamente como2
no grupo de parâmetros verde do banco de dados. Depois de atualizar a replicação, faça a reversão para o valor padrão de1
antes da transição. Se ocorrer um desligamento inesperado ou uma falha com os valores dos parâmetros temporários, compile o ambiente verde novamente para evitar que nenhuma corrupção de dados passe despercebida. -
Para reduzir a latência de gravação e melhorar o throughput da replicação, altere temporariamente as instâncias verdes de banco de dados multi-AZ para instâncias de banco de dados single-AZ. Reabilite a multi-AZ logo antes da transição.
-
Práticas recomendadas do RDS para PostgreSQL para implantações azuis/verdes
Considere as seguintes práticas recomendadas ao criar uma implantação azul/verde em uma instância de banco de dados do RDS para PostgreSQL.
Tópicos
Práticas recomendadas gerais do RDS para PostgreSQL para implantações azuis/verdes
Considere as seguintes práticas recomendadas gerais ao criar uma implantação azul/verde em uma instância de banco de dados do RDS para PostgreSQL.
-
Atualize todas as extensões do PostgreSQL para a versão mais recente antes de criar uma implantação azul/verde. Para ter mais informações, consulte Atualizar extensões do PostgreSQL em bancos de dados do RDS para PostgreSQL.
-
Transações de longa duração podem causar um atraso significativo na réplica. Para reduzir o atraso na réplica, pense no seguinte:
-
Reduza as transações de longa duração que podem ser adiadas até que o ambiente verde alcance o ambiente azul.
-
Reduza as operações em massa no ambiente azul até que o ambiente verde alcance o ambiente azul.
-
Inicie uma operação manual de congelamento de vacuum em tabelas ocupadas antes de criar a implantação azul/verde.
-
Em relação ao PostgreSQL versão 12 e posterior, desabilite o parâmetro
index_cleanup
em tabelas grandes ou ocupadas para aumentar a taxa de manutenção normal em bancos de dados azuis. Para ter mais informações, consulte Aspirar uma tabela o mais rápido possível.nota
Ignorar regularmente a limpeza do índice durante a aspiração pode causar inchaço no índice, o que pode prejudicar o desempenho da limpeza. Como prática recomendada, utilize essa abordagem somente ao usar uma implantação azul/verde. Depois que a implantação estiver concluída, recomendamos retomar a manutenção e a limpeza regulares do índice.
-
-
A replicação lenta pode fazer com que remetentes e destinatários sejam reiniciados com frequência, o que atrasa a sincronização. Para garantir que eles permaneçam ativos, desabilite os tempos limite definindo o parâmetro
wal_sender_timeout
como0
no ambiente azul e o parâmetrowal_receiver_timeout
como0
no ambiente verde. -
Para evitar que segmentos de log de gravação antecipada (WAL) sejam removidos do ambiente azul, defina o parâmetro
wal_keep_segments
como 15625 para o PostgreSQL versão 13 e anterior. Para a versão 14 e posterior, defina o parâmetrowal_keep_size
como 1 TiB, se houver espaço de armazenamento livre suficiente.
Práticas recomendadas do RDS para PostgreSQL para implantações azuis/verdes com replicação física
Com a replicação física, o Amazon RDS cria uma réplica de leitura da instância de banco de dados de origem. Para parâmetros relacionados, monitoramento, ajuste e solução de problemas, consulte Trabalhar com réplicas de leitura do Amazon RDS para PostgreSQL.
Para obter uma explicação de quando as implantações azuis/verdes usam a replicação física em vez da replicação lógica, consulte Métodos de replicação do PostgreSQL em implantações azuis/verdes.
Práticas recomendadas do RDS para PostgreSQL para implantações azuis/verdes com replicação lógica
Considere as seguintes práticas recomendadas ao criar uma implantação azul/verde que usa replicação lógica. Para obter uma explicação de quando as implantações azuis/verdes usam a replicação lógica em vez da replicação física, consulte Métodos de replicação do PostgreSQL em implantações azuis/verdes.
-
Se o banco de dados tiver memória livre suficiente, aumente o valor do parâmetro de banco de dados
logical_decoding_work_mem
no ambiente azul. Isso permite menos decodificação no disco e uso da memória. Para obter mais informações, consulte a Documentação do PostgreSQL. -
É possível monitorar o estouro de transações que está sendo gravado em disco usando a métrica
ReplicationSlotDiskUsage
do CloudWatch. Essa métrica oferece insights sobre o uso do espaço em disco por slots de replicação, ajudando a identificar quando os dados da transação excedem a capacidade de memória e são armazenados em disco. Você pode monitorar a memória livre com a métrica doFreeableMemory
do CloudWatch. Para ter mais informações, consulte Métricas específicas da instância do Amazon CloudWatch para Amazon RDS. -
No RDS para PostgreSQL versão 14 e posterior, é possível monitorar o tamanho dos arquivos de estouro lógico usando a visualização
pg_stat_replication_slots
do sistema.
-
-
Se você estiver usando a extensão
aws_s3
, conceda à instância de banco de dados verde acesso ao Amazon S3 por meio de um perfil do IAM após a criação do ambiente verde. Isso permite que os comandos de importação e exportação continuem funcionando após a transição. Para instruções, consulte Configurar o acesso a um bucket do Amazon S3. -
Analise o desempenho das instruções UPDATE e DELETE e avalie se a criação de um índice na coluna utilizada na cláusula WHERE pode otimizar essas consultas. Isso pode melhorar o desempenho quando as operações são repetidas no ambiente verde.
-
Se você estiver usando gatilhos, garanta que eles não interfiram na criação, atualização e eliminação de objetos
pg_catalog.pg_publication
,pg_catalog.pg_subscription
epg_catalog.pg_replication_slots
cujos nomes comecem com “rds”. -
Se você especificar uma versão posterior do mecanismo para o ambiente verde, execute a operação
ANALYZE
em todos os bancos de dados para atualizar a tabelapg_statistic
. As estatísticas do otimizador não são transferidas durante uma atualização de versão principal, portanto, é necessário gerar novamente todas as estatísticas para evitar problemas de performance. Para conhecer práticas recomendadas adicionais durante as principais atualizações de versões, consulte Como atualizar a versão principal do RDS para PostgreSQL. -
Evite configurar gatilhos como
ENABLE REPLICA
ouENABLE ALWAYS
se o gatilho for usado na origem para manipular dados. Caso contrário, o sistema de replicação propagará as alterações e executará o gatilho, o que ocasiona duplicação.