Criar uma implantação azul/verde no Amazon RDS - Amazon Relational Database Service

Criar uma implantação azul/verde no Amazon RDS

Ao criar uma implantação azul/verde, você especifica a instância de banco de dados a ser copiada na implantação. A instância de banco de dados selecionada é a instância de banco de dados de produção e se torna a instância de banco de dados primária no ambiente azul. Essa instância de banco de dados é copiada no ambiente verde, e o RDS configura a replicação da instância de banco de dados no ambiente azul para a instância de banco de dados no ambiente verde.

O RDS copia a topologia e os recursos do ambiente azul para uma área de preparação. Se uma instância de banco de dados azul tiver réplicas de leitura, elas serão copiadas como réplicas da instância verde. O armazenamento alocado de todas as réplicas verdes corresponde à instância primária verde, enquanto outros parâmetros de armazenamento são herdados das réplicas azuis.

Se a instância de banco de dados azul for uma implantação de instância de banco de dados multi-AZ, a instância de banco de dados verde será criada como uma implantação de instância de banco de dados multi-AZ.

Preparação para uma implantação azul/verde

Há algumas etapas que você deve seguir antes de criar uma implantação azul/verde, dependendo do mecanismo que a instância de banco de dados está executando.

Preparação de uma instância de banco de dados do RDS para MySQL ou RDS para MariaDB para uma implantação azul/verde

Antes de criar uma implantação azul/verde para uma instância de banco de dados do RDS para MySQL ou RDS para MariaDB, é necessário habilitar os backups automatizados. Para instruções, consulte Ativar backups automáticos.

Preparação de uma instância de banco de dados do RDS para PostgreSQL para uma implantação azul/verde com replicação física

Antes de criar uma implantação azul/verde do RDS para PostgreSQL que usa replicação física, faça o seguinte: Para obter uma lista de versões que usam replicação física versus replicação lógica, consulte Métodos de replicação do PostgreSQL em implantações azuis/verdes.

Preparação de uma instância de banco de dados do RDS para PostgreSQL para uma implantação azul/verde com replicação lógica

Antes de criar uma implantação azul/verde do RDS para PostgreSQL que usa replicação lógica, faça o seguinte: Para obter uma lista de versões que usam replicação lógica versus replicação física, consulte Métodos de replicação do PostgreSQL em implantações azuis/verdes.

  • Associe a instância a um grupo de parâmetros de banco de dados personalizado com a replicação lógica (rds.logical_replication) ativada. A replicação lógica é necessária para a replicação do ambiente azul no ambiente verde. Para instruções, consulte Modificar parâmetros em um grupo de parâmetros de banco de dados no Amazon RDS.

    Como as implantações azul/verde exigem pelo menos um operador em segundo plano por banco de dados, ajuste as configurações a seguir de acordo com a workload. Para ter instruções sobre como ajustar cada configuração, consulte Configuration Settings na documentação do PostgreSQL.

    • max_replication_slots

    • max_wal_senders

    • max_logical_replication_workers

    • max_worker_processes

    Depois de ativar a replicação lógica e definir todas as opções de configuração, reinicialize a instância de banco de dados para que as alterações tenham efeito. As implantações azul/verde exigem que a instância do banco de dados esteja sincronizada com o grupo de parâmetros do banco de dados; caso contrário, a criação falhará. Para obter mais informações, consulte Reinicializar uma instância de banco de dados .

  • Confirme se a instância de banco de dados não é a origem ou o destino da replicação externa. Para obter mais informações, consulte Limitações para implantações azul/verde.

  • Certifique-se de que todas as tabelas na instância de banco de dados tenham uma chave primária. A replicação lógica do PostgreSQL não permite operações UPDATE ou DELETE em tabelas que não têm uma chave primária.

  • O RDS para PostgreSQL usa a replicação lógica nativa do PostgreSQL, armazenando segmentos do log de gravação antecipada (WAL) na instância azul até que sejam reproduzidos no ambiente verde. Antes de criar uma implantação azul/verde, verifique se a instância azul tem capacidade adequada conferindo as seguintes métricas:

    • FreeStorageSpace

    • TransactionLogsGeneration

    • TransactionLogsDiskUsage

    • OldestReplicationSlotLag

    Para estimar o armazenamento adicional necessário na instância azul, monitore a métrica TransactionLogsGeneration do CloudWatch durante os períodos de pico da workload. Por exemplo, se a workload gerar 100 GB de dados do WAL em 24 horas, tenha pelo menos 100 GB de armazenamento extra para acomodar um dia de segmentos do WAL. Para obter mais informações, consulte Métricas de monitoramento em uma instância do Amazon RDS.

Especificar as alterações ao criar uma implantação azul/verde

Você pode fazer as seguintes alterações na instância de banco de dados no ambiente verde ao criar a implantação azul/verde:

Você pode fazer outras modificações na instância de banco de dados no ambiente verde após sua implantação. Por exemplo, você pode especificar uma versão posterior do mecanismo ou um grupo de parâmetros diferente.

Para ter mais informações sobre como modificar uma instância de banco de dados , consulte Modificar uma instância de banco de dados do Amazon RDS.

Especifique uma versão de mecanismo superior

Você poderá especificar uma versão superior do mecanismo se quiser testar uma atualização do mecanismo de banco de dados. Após a transição, o banco de dados é atualizado para a versão principal ou secundária do mecanismo de banco de dados que você especificar.

Especificar outro grupo de parâmetros de banco de dados

É possível testar como as alterações de parâmetros afetam as instâncias de banco de dados no ambiente verde ou especificar um grupo de parâmetros para uma nova versão principal do mecanismo de banco de dados no caso de uma atualização.

Se você especificar um grupo de parâmetros de banco de dados diferente, o grupo de parâmetros de banco de dados especificado será associado a todas as instâncias de banco de dados no ambiente verde. Se você não especificar um grupo de parâmetros diferente, cada instância de banco de dados no ambiente verde será associada ao grupo de parâmetros de sua instância de banco de dados azul correspondente.

Modificar as configurações de armazenamento e desempenho

Ajuste as configurações de armazenamento e desempenho no ambiente verde para otimizar a alocação de recursos. Essas configurações incluem armazenamento alocado, IOPS provisionadas, tipo de armazenamento e throughput de armazenamento (para armazenamento gp3).

É possível alterar o tipo de armazenamento da instância de banco de dados verde para gp2, gp3, io1 ou io2. Para armazenamento gp3, você também pode ajustar o throughput de armazenamento para melhorar o desempenho da transferência de dados para workloads de alta demanda ou para reduzir os custos de aplicações menos intensivas. Para obter mais informações, consulte Armazenamento de instâncias de banco de dados do Amazon RDS.

Você também pode optar por aumentar ou diminuir o armazenamento alocado no ambiente verde. No entanto, uma redução de armazenamento só ocorrerá se o armazenamento alocado de destino for pelo menos 20% maior do que o uso atual do armazenamento. Se você diminuir o armazenamento alocado, o Amazon RDS iniciará uma atualização da configuração de armazenamento. Para obter mais informações, consulte Atualizar a configuração do armazenamento.

Se a instância de banco de dados azul usar armazenamento magnético, você deverá alterar a instância de banco de dados verde para um tipo de armazenamento de uso geral ou de IOPS provisionadas para aumentar ou diminuir o armazenamento alocado.

Utilizar gravações otimizadas pelo RDS

Você pode usar implantação azul/verde para fazer a atualização para uma classe de instância de banco de dados compatível com gravações otimizadas para RDS. Você só pode habilitar gravações otimizadas para RDS em um banco de dados criado com uma classe de instância de banco de dados compatível. Portanto, essa opção cria um banco de dados verde que usa uma classe de instância de banco de dados compatível, o que permite ativar gravações otimizadas para RDS na instância de banco de dados verde.

Se você estiver fazendo uma atualização de uma classe de instância de banco de dados que não seja compatível com gravações otimizadas para RDS para uma que seja, você também deverá atualizar a configuração de armazenamento da instância de banco de dados verde. Para obter mais informações, consulte Atualizar a configuração do armazenamento.

Você só pode atualizar a classe de instância de banco de dados da instância de banco de dados verde primária. Por padrão, as réplicas de leitura no ambiente verde herdam as configurações da instância de banco de dados do ambiente azul. Depois que o ambiente verde for criado com sucesso, você deverá modificar manualmente a classe de instância de banco de dados das réplicas de leitura no ambiente verde.

Algumas atualizações de classe de instância não são suportadas, dependendo da versão do mecanismo e da classe da instância de banco de dados azul. Para ter mais informações sobre classes de instância de banco de dados, consulte Classes de instâncias de banco de dados .

Atualizar a configuração do armazenamento

Se seu banco de dados azul não estiver na configuração de armazenamento mais recente, o RDS poderá migrar a instância de banco de dados verde da configuração de armazenamento mais antiga (sistema de arquivos de 32 bits) para a configuração preferencial. Você pode usar a implantação azul/verde do RDS para superar as limitações de escalabilidade no armazenamento e no tamanho do arquivo para sistemas de arquivos mais antigos de 32 bits. Além disso, essa configuração alterará a configuração de armazenamento para ser compatível com gravações otimizadas para RDS se a classe de instância de banco de dados especificada for compatível com as gravações otimizadas.

nota

A atualização da configuração de armazenamento é uma operação intensiva de E/S e leva a tempos de criação mais longos para implantações azul/verdes. O processo de atualização de armazenamento é mais rápido se a instância de banco de dados azul usar armazenamento SSD de IOPS provisionadas (io1 ou io2 Block Express) e se você provisionou o ambiente verde com um tamanho de instância de 4xlarge ou maior. As atualizações de armazenamento que envolvem armazenamento SSD de uso geral (gp2) podem esgotar seu saldo de créditos de E/S, resultando em tempos de upgrade mais longos. Para obter mais informações, consulte Armazenamento de instâncias de banco de dados do Amazon RDS.

Durante a atualização do armazenamento, a instância de banco de dados verde fica temporariamente indisponível, enquanto a instância de banco de dados azul permanece disponível. A replicação permanece pausada por enquanto. Monitore o armazenamento na instância azul e pense em escalar se o armazenamento atingir 90%, pois a instância verde aumenta automaticamente em 10% após a atualização.

Essa opção só estará disponível se o banco de dados azul não estiver na configuração de armazenamento mais recente ou se você estiver alterando a classe da instância de banco de dados na mesma solicitação. Só é possível atualizar a configuração de armazenamento ao criar inicialmente uma implantação azul/verde.

Carregamento lento e inicialização de armazenamento para implantações azuis/verdes

Quando você cria uma implantação azul/verde, o Amazon RDS cria a instância de banco de dados primária no ambiente verde realizando a restauração a partir de um snapshot de banco de dados. Depois de criada, a instância de banco de dados verde e as réplicas de leitura continuam carregando dados em segundo plano em um processo conhecido como carregamento lento.

O carregamento lento carrega blocos de dados apenas quando as aplicações os solicitam. Se você tentar acessar dados que ainda não foram carregados, o Amazon EBS os recuperará imediatamente do Amazon S3, enquanto os dados restantes continuarão sendo carregados em segundo plano. Para ter mais informações, consulte Snapshots do Amazon EBS.

Para acelerar o desempenho total do volume, o Amazon RDS fornece inicialização de armazenamento, que lê todos os blocos no volume do ambiente verde. O Amazon EBS baixa proativamente blocos do Amazon S3, fornecendo desempenho máximo do volume desde o primeiro uso. A inicialização do armazenamento ocorre inteiramente em segundo plano, garantindo que não haja impacto na disponibilidade da instância de banco de dados ou nas atividades contínuas, como patches ou atualizações.

A inicialização do armazenamento está disponível somente para instâncias em implantações azuis/verdes com tipos de volume gp2, gp3, io1 e io2. Ela é compatível com todas as classes de instância, exceto as famílias t3 e t4. Se você modificar uma instância de banco de dados verde em uma implantação single-AZ para uma implantação de instância de banco de dados multi-AZ, a inicialização do armazenamento incluirá o nó secundário na configuração multi-AZ.

Durante a inicialização do armazenamento, a instância permanece totalmente disponível e utilizável para operações de banco de dados, embora o armazenamento possa não atingir o desempenho total até que a inicialização seja concluída. Enquanto a inicialização do armazenamento está em andamento, o status geral da instância muda para Storage-initialization, e o indicador de progresso reflete o nível mínimo de inicialização em todos os volumes da instância de banco de dados.

Use o console, a AWS CLI ou a API do Amazon RDS para monitorar a inicialização do armazenamento.

Console

No AWS Management Console, você vê o progresso da inicialização do armazenamento com o status da instância de banco de dados.

Indicador de progresso da inicialização de armazenamento para uma implantação azul/verde
AWS CLI

Com a AWS CLI, você pode monitorar a inicialização do armazenamento com o comando describe-db-instances. O campo PercentProgress na resposta mostra qual porcentagem de dados foi recuperada do Amazon S3.

aws rds describe-db-instances --db-instance-identifier my-db-instance { "DBInstances": [ { "DBInstanceIdentifier": "my-db-instance", "DBInstanceClass": "db.m5.2xlarge", "Engine": "postgres", "DBInstanceStatus": "storage-initialization", ... "PercentProgress": "34" } ] }
Amazon RDS API

Com a API do Amazon RDS, você recupera o status da inicialização do armazenamento chamando a ação DescribeDBInstances.

O indicador de progresso é atualizado à medida que a tarefa de inicialização em segundo plano avança, permitindo que você acompanhe a prontidão do armazenamento antes que a inicialização completa do armazenamento seja concluída. A inicialização do armazenamento permite um desempenho otimizado à medida que sua instância de banco de dados verde se torna totalmente operacional.

Criar uma implantação azul/verde

Você pode criar a implantação azul/verde usando o AWS Management Console, a AWS CLI ou a API do RDS.

Como criar uma implantação azul/verde
  1. Faça login no AWS Management Console e abra o console do Amazon RDS em https://console.aws.amazon.com/rds/.

  2. No painel de navegação, selecione Databases (Bancos de dados) e, depois, a instância de banco de dados que você deseja copiar em um ambiente verde.

  3. Selecione Ações, Criar implantação azul/verde.

    A página Criar implantação azul/verde é exibida.

    Criar uma implantação azul/verde
  4. Analise os identificadores azuis do banco de dados. Eles devem corresponder às instâncias de banco de dados que você espera no ambiente azul. Caso contrário, selecione Cancel (Cancelar).

  5. Em Nome da implantação azul/verde, insira um nome para sua implantação azul/verde.

  6. Nas seções restantes, especifique as configurações do ambiente verde. Para obter informações sobre cada configuração, consulte Configurações para criar implantações azuis/verdes.

    Você pode fazer outras modificações nos bancos de dados no ambiente verde após sua implantação.

  7. Escolha Criar.

Para criar uma implantação azul/verde usando a AWS CLI, utilize o comando create-blue-green-deployment. Para obter informações sobre todas as opções disponíveis, consulte Configurações para criar implantações azuis/verdes.

Para Linux, macOS ou Unix:

aws rds create-blue-green-deployment \ --blue-green-deployment-name my-blue-green-deployment \ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 \ --target-engine-version 8.0.31 \ --target-db-parameter-group-name mydbparametergroup

Para Windows:

aws rds create-blue-green-deployment ^ --blue-green-deployment-name my-blue-green-deployment ^ --source arn:aws:rds:us-east-2:123456789012:db:mydb1 ^ --target-engine-version 8.0.31 ^ --target-db-parameter-group-name mydbparametergroup

Para criar uma implantação azul/verde usando a API do Amazon RDS, use a operação CreateBlueGreenDeployment. Para ter mais informações sobre cada opção, consulte Configurações para criar implantações azuis/verdes.

Configurações para criar implantações azuis/verdes

A tabela a seguir explica as configurações que você pode escolher ao criar uma implantação azul/verde. Consulte mais informações sobre as opções da AWS CLI em create-blue-green-deployment. Consulte mais informações sobre os parâmetros da API do RDS em CreateBlueGreenDeployment.

Configuração do console Descrição da configuração Opção da CLI e parâmetro da API do RDS

Armazenamento alocado

O valor de armazenamento a ser alocado para a sua instância de banco de dados verde (em gigabytes). Você pode optar por aumentar ou diminuir o armazenamento alocado.

Se a instância de banco de dados azul usar armazenamento magnético (standard), você deverá alterar a instância de banco de dados verde para um tipo de armazenamento de uso geral ou de IOPS provisionadas para modificar o armazenamento alocado no ambiente verde.

Para obter mais informações, consulte Armazenamento de instâncias de banco de dados do Amazon RDS.

Opção da CLI:

--target-allocated-storage

Parâmetro da API:

TargetAllocatedStorage

Identificador de implantação azul/verde

Um nome para a implantação azul/verde.

Opção da CLI:

--blue-green-deployment-name

Parâmetro da API:

BlueGreenDeploymentName

Identificador de banco de dados azul

O identificador da instância que você deseja copiar no ambiente verde. Ao usar a CLI ou a API, especifique o nome do recurso da Amazon (ARN) da instância.

Opção da CLI:

--source

Parâmetro da API:

Source

Grupo de parâmetros do de banco de dados para bancos de dados verdes Um grupo de parâmetros para associar aos bancos de dados no ambiente verde.

Opção da CLI:

--target-db-parameter-group-name

--target-db-cluster-parameter-group-name

Parâmetro da API:

TargetDBParameterGroupName

TargetDBClusterParameterGroupName

Habilitar Gravações otimizadas para banco de dados verdes

Habilite as Gravações otimizadas pelo RDS na instância de banco de dados primária verde. Para obter mais informações, consulte Utilizar gravações otimizadas pelo RDS.

Se você estiver mudando de uma classe de instância de banco de dados que não suporta gravações otimizadas para uma que oferece, você também precisa realizar uma atualização da configuração de armazenamento. Para obter mais informações, consulte Atualizar a configuração do armazenamento.

Para a CLI e a API, quando se especifica uma classe de instância de banco de dados de destino que permita Gravações otimizadas pelo RDS, ela é habilitada automaticamente na instância de banco de dados primária verde.

Versão do mecanismo para bancos de dados verdes

Faça upgrade dos bancos de dados no ambiente verde para a versão especificada do mecanismo de banco de dados.

Se não for especificada, cada banco de dados no ambiente verde será criado com a mesma versão do mecanismo da instância de banco de dados correspondente no ambiente azul.

Se você escolher um uma instância de banco de dados do RDS para PostgreSQL para uma instância que usa replicação lógica, analise e reconheça as limitações da replicação lógica. Para obter mais informações, consulte Limitações específicas de replicação lógica para implantações azuis/verdes.

Opção da CLI:

--target-engine-version

Parâmetro da API do RDS:

TargetEngineVersion

Classe de instância de banco de dados verde

A capacidade de computação e memória de cada instância de banco de dados no ambiente verde; por exemplo, db.m5d.xlarge.

Essa opção só fica visível quando você habilita as Gravações otimizadas pelo RDS para o banco de dados verde.

Opção da CLI:

--target-db-instance-class

Parâmetro da API do RDS:

TargetDBInstanceClass

IOPS provisionadas

A quantidade de operações de entrada e saída por segundo (IOPS) provisionadas a serem inicialmente alocadas ao banco de dados verde.

Esse valor se aplica somente à instância de banco de dados primária verde, não às réplicas verdes.

Opção da CLI:

--target-iops

Parâmetro da API do RDS:

TargetIops

Upgrade da configuração de armazenamento

Escolha se deseja fazer upgrade da configuração do sistema de arquivos de armazenamento. Se você habilitar essa definição, o RDS migrará o banco de dados verde do antigo sistema de arquivos de armazenamento para a configuração preferencial.

Essa opção só estará disponível se o banco de dados azul não estiver na configuração de armazenamento mais recente ou se você estiver ativando gravações otimizadas para RDS na mesma solicitação. Só é possível atualizar a configuração de armazenamento ao criar inicialmente uma implantação azul/verde.

Para obter mais informações, consulte Atualizando o sistema de arquivos de armazenamento para uma instância de banco de dados.

Opção da CLI:

--upgrade-target-storage-config

Parâmetro da API do RDS:

UpgradeTargetStorageConfig

Storage throughput (Throughput de armazenamento)

O valor do throughput de armazenamento para o banco de dados verde. Essa configuração ficará visível somente se você escolher o SSD de uso geral (gp3) como o tipo de armazenamento.

Esse valor se aplica somente à instância de banco de dados primária verde, não às réplicas verdes.

Para obter mais informações, consulte Armazenamento gp3 (recomendado).

Opção da CLI:

--target-storage-throughput

Parâmetro da API do RDS:

TargetStorageThroughput

Tipo de armazenamento

O tipo de armazenamento para o banco de dados verde. Somente os seguintes tipos de armazenamento são compatíveis:

  • SSD de uso geral (gp2)

  • SSD de uso geral (gp3)

  • IOPS provisionadas (io1)

  • SSD de IOPS provisionadas (io2)

Esse valor se aplica somente à instância de banco de dados primária verde, não às réplicas verdes.

Para obter mais informações, consulte Tipos de armazenamento do Amazon RDS.

Opção da CLI:

--target-storage-type

Parâmetro da API do RDS:

TargetStorageType