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 Amazon Relational Database Service (Amazon RDS) conectada ao meu ambiente do AWS Elastic Beanstalk. Quero evitar tempo de inatividade, problemas de sincronização do 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 DB snapshot 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. Execute 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 melhor prática, conecte 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 do banco de dados está vinculado ao ciclo de vida do ambiente da sua aplicação. Portanto, é uma prática recomendada não conectar a instância de banco de dados 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 Como 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 seguintes etapas:

  1. Abra o console do Elastic Beanstalk.
  2. Escolha seu ambiente do Elastic Beanstalk.
  3. Copie o ID do ambiente.
  4. Abra o console do Amazon RDS.
  5. No painel de navegação, escolha Bancos de dados.
  6. Insira a 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 seguintes etapas:

  1. Abra o console do Amazon RDS.
  2. No painel de navegação, escolha Bancos de dados.
  3. Escolha seu banco de dados e depois escolha Modificar.
  4. Em Proteção contra exclusão, selecione Habilitar proteção contra exclusão e escolha Continuar.
  5. Em Programar modificações, escolha Aplicar imediatamente e depois escolha Modificar cluster.
  6. Atualize o console do Amazon 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 seguintes etapas:

  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 Como lançar e conectar-se a uma instância do Amazon RDS externa 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.

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

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

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

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

Importante: encerre o ambiente do Elastic Beanstalk antigo 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 (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 do banco de dados do ambiente antigo, conclua as seguintes etapas:

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

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

Desconecte a instância do RDS do ambiente antigo

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

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

Observação: à medida que o banco de dados se desacopla, ele permanece operacional. 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 do Elastic Beanstalk antigo.

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 conectar à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 o tráfego de entrada na porta 3306 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 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 seguintes etapas:

  1. Abra o console do Elastic Beanstalk do ambiente antigo.
  2. No painel de navegação, escolha Configuração.
  3. Em Tráfego e escalabilidade da instância, observe 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, escolha Grupo de segurança.
  6. Na página Grupos de segurança, insira o nome do grupo de segurança do EC2.
  7. Anote a ID do grupo de segurança. O formato é semelhante a “sg-xxxxxxxx”.
  8. Abra o console do Amazon RDS.
  9. No painel de navegação, escolha Bancos de dados e escolha o nome da instância de banco de dados.
  10. Em Conectividade e segurança, observe as sub-redes, os grupos de segurança e os endpoints. Em seguida, em Segurança, escolha 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, escolha Editar regras de entrada.
  13. Identifique a regra do grupo de segurança.
  14. Escolha Excluir e depois Salvar regras.
  15. Abra o console do Elastic Beanstalk do ambiente antigo.
  16. Escolha 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 do grupo de segurança do RDS que o Elastic Beanstalk criou.
AWS OFICIAL
AWS OFICIALAtualizada há 4 meses