Ir para o conteúdo

Como desacoplar uma instância do Amazon RDS de um ambiente do Elastic Beanstalk sem tempo de inatividade, problemas de sincronização com o banco de dados ou perda de dados?

8 minuto de leitura
0

Tenho uma instância de banco de dados do Amazon Relational Database Service (Amazon RDS) anexada ao meu ambiente do AWS Elastic Beanstalk. Quero evitar tempo de inatividade, problemas de sincronização com o banco de dados e perda de dados ao remover as dependências entre a instância e o ambiente.

Breve descrição

O procedimento a seguir desacopla seu banco de dados de um ambiente do Elastic Beanstalk e não afeta a integridade do ambiente:

  1. Crie um snapshot de banco de dados do Amazon RDS.
  2. Proteja sua instância de banco de dados do RDS contra exclusão.
  3. Crie um novo ambiente do Elastic Beanstalk.
  4. Realize uma implantação azul/verde.
  5. Atualize a política de exclusão do banco de dados do ambiente antigo.
  6. Desacople a instância do RDS do ambiente antigo.
  7. Encerre o ambiente antigo.

Importante: como prática recomendada, anexe uma instância de banco de dados do RDS a um ambiente do Elastic Beanstalk somente em ambientes de desenvolvimento e teste. No ambiente de produção, o ciclo de vida da instância de banco de dados está vinculado ao ciclo de vida do ambiente da sua aplicação. Portanto, é uma prática recomendada não anexar a instância de banco de dados do RDS a um ambiente do Elastic Beanstalk em um ambiente de produção. Se você encerrar o ambiente, perderá seus dados, pois o ambiente exclui a instância de banco de dados. Para obter mais informações, consulte Usar o Elastic Beanstalk com o Amazon RDS.

Resolução

Crie um snapshot de banco de dados da sua instância

Para criar um snapshot de banco de dados da sua instância, conclua as etapas a seguir:

  1. Abra o console do Elastic Beanstalk.
  2. Selecione seu ambiente do Elastic Beanstalk.
  3. Copie o ID do ambiente.
  4. Abra o console do Aurora e do RDS.
  5. No painel de navegação, clique em Bancos de dados.
  6. Insira o ID do ambiente no campo de pesquisa e selecione o banco de dados.
  7. Crie um snapshot de banco de dados.

Proteja sua instância de banco de dados contra exclusão

Para proteger sua instância de banco de dados contra exclusão, conclua as etapas a seguir:

  1. Abra o console do Aurora e do RDS.
  2. No painel de navegação, clique em Bancos de dados.
  3. Selecione seu banco de dados e depois clique em Modificar.
  4. Em Proteção contra exclusão, selecione Habilitar a proteção contra exclusão e clique em Continuar.
  5. Em Programar modificações, selecione Aplicar imediatamente e depois clique em Modificar cluster.
  6. Atualize o console do Aurora e do RDS e verifique se a proteção contra exclusão está ativada.

Crie um novo ambiente do Elastic Beanstalk

Observação: seu novo ambiente do Elastic Beanstalk não pode incluir uma instância de banco de dados.

Para criar um novo ambiente do Elastic Beanstalk, conclua as etapas a seguir:

  1. Crie um novo ambiente do Elastic Beanstalk.
  2. Conecte o novo ambiente do Elastic Beanstalk à instância de banco de dados existente do antigo ambiente do Elastic Beanstalk. Para obter mais informações, consulte Iniciar e conectar-se a uma instância externa do Amazon RDS em uma nuvem privada virtual (VPC) padrão.
  3. Verifique se o novo ambiente se conecta à instância de banco de dados existente e se a sua aplicação funciona corretamente.

Realize uma implantação azul/verde para evitar tempo de inatividade

Observação: para realizar uma implantação azul/verde ou uma troca de CNAME posteriormente, os dois ambientes do Elastic Beanstalk devem fazer parte da mesma aplicação.

Para realizar uma implantação azul/verde, conclua as etapas a seguir:

  1. Abra o console do Elastic Beanstalk no novo ambiente.
  2. Troque os URLs de ambiente dos ambientes antigo e novo do Elastic Beanstalk. Para obter mais informações, consulte Implantações azuis/verdes com o Elastic Beanstalk.
  3. Verifique se o URL do novo ambiente responde e se a sua aplicação funciona corretamente.

Importante: encerre o ambiente antigo do Elastic Beanstalk somente depois que as alterações de DNS forem propagadas e seus registros DNS antigos expirarem. Os registros DNS podem levar até 48 horas para expirar. Os servidores DNS não limpam registros antigos do cache com base no tempo de vida (time to live, TTL) definido nos seus registros DNS.

Atualize a política de exclusão do banco de dados do ambiente antigo

Para atualizar a política de exclusão de banco de dados do ambiente antigo, conclua as etapas a seguir:

  1. Abra o console do Elastic Beanstalk no ambiente antigo.
  2. No painel de navegação, clique em Configuração.
  3. Em Rede e banco de dados, selecione Editar.
  4. Em Configurações do banco de dados, defina a Política de exclusão de banco de dados como Reter.
  5. Clique em Aplicar. Pode levar alguns minutos para salvar a alteração da configuração.

Importante: prossiga para a próxima etapa somente depois que a alteração da Política de exclusão de banco de dados for aplicada ao ambiente antigo.

Desacople a instância do RDS do ambiente antigo

Para desacoplar a instância do RDS do ambiente antigo, conclua as etapas a seguir:

  1. Abra o console do Elastic Beanstalk no ambiente antigo.
  2. No painel de navegação, clique em Configuração.
  3. Em configuração de Rede e banco de dados, selecione Editar.
  4. Em Configurações do banco de dados, verifique se a Política de exclusão de banco de dados está definida como Reter.
  5. Na seção Conexão do banco de dados, clique em Desacoplar banco de dados.
  6. Clique em Aplicar.

Observação: à medida que o banco de dados se desacopla, ele permanece em funcionamento. Geralmente, leva menos de 5 minutos para desacoplar um banco de dados.

Encerre o ambiente antigo

Depois de validar a funcionalidade do novo ambiente, encerre o ambiente antigo do Elastic Beanstalk.

Quando você encerra o ambiente, todos os recursos do Elastic Beanstalk são excluídos, exceto a instância de banco de dados e o grupo de segurança do RDS que o Elastic Beanstalk criou. Quando você cria uma instância do RDS como parte do ambiente de balanceamento de carga do Elastic Beanstalk, o Elastic Beanstalk cria um grupo de segurança do Elastic Load Balancing (ELB). O Elastic Beanstalk também cria um grupo de segurança do Amazon Elastic Compute Cloud (Amazon EC2) para se anexar às instâncias do EC2 no ambiente. Além disso, o Elastic Beanstalk cria um grupo de segurança do RDS para anexar à instância do RDS. Para permitir tráfego de entrada na porta 3306 a partir do grupo de segurança do EC2, o Elastic Beanstalk adiciona uma regra de entrada de grupo de segurança ao grupo de segurança do RDS.

Quando você desacopla o banco de dados, o Elastic Beanstalk não remove a regra de entrada do grupo de segurança. Essa regra de entrada de grupo de segurança faz referência ao grupo de segurança do EC2 a partir do grupo de segurança do RDS que o Elastic Beanstalk criou. Quando você encerra o ambiente, o Elastic Beanstalk não pode encerrá-lo porque o grupo de segurança do RDS desacoplado ainda faz referência ao grupo de segurança do EC2.

Para encerrar o ambiente do Elastic Beanstalk, conclua as etapas a seguir:

  1. Abra o console do Elastic Beanstalk no ambiente antigo.
  2. No painel de navegação, clique em Configuração.
  3. Em Tráfego e escalabilidade da instância, anote o nome do grupo de segurança do EC2 que está em Grupos de segurança do EC2.
  4. Abra o console do Amazon EC2.
  5. No painel de navegação, clique em Grupo de segurança.
  6. Na página Grupos de segurança, insira o nome do grupo de segurança do EC2.
  7. Anote o ID do grupo de segurança. O formato é semelhante a "sg-xxxxxxxx".
  8. Abra o console do Aurora e do RDS.
  9. No painel de navegação, clique em Bancos de dados e selecione o nome da sua instância de banco de dados.
  10. Em Conectividade e segurança, anote as sub-redes, os grupos de segurança e os endpoints. Em seguida, em Segurança, selecione o nome do grupo de segurança.
  11. Depois que a página Grupos de segurança for aberta no console do EC2, selecione o grupo de segurança.
  12. Em Regras de entrada, clique em Editar regras de entrada.
  13. Identifique a regra do grupo de segurança.
  14. Clique em Excluir e depois em Salvar regras.
  15. Abra o console do Elastic Beanstalk no ambiente antigo.
  16. Selecione Ações e, em seguida, Encerrar ambiente. Quando você desacopla o banco de dados, o Elastic Beanstalk não remove a regra de entrada do grupo de segurança. A regra de entrada de grupo de segurança faz referência ao grupo de segurança do EC2 a partir do grupo de segurança do RDS que o Elastic Beanstalk criou.
AWS OFICIALAtualizada há 3 anos