¿Cómo puedo desacoplar una instancia de Amazon RDS de un entorno de Elastic Beanstalk sin tiempo de inactividad, problemas de sincronización de bases de datos ni pérdida de datos?

8 minutos de lectura
0

Tengo una instancia de base de datos de Amazon Relational Database Service (Amazon RDS) asociada a mi entorno de AWS Elastic Beanstalk. Quiero evitar el tiempo de inactividad, los problemas de sincronización de las bases de datos y la pérdida de datos al eliminar las dependencias entre la instancia y el entorno.

Breve descripción

El siguiente procedimiento desacopla la base de datos de un entorno de Elastic Beanstalk sin afectar al estado del entorno:

  1. Cree una instantánea de base de datos de Amazon RDS.
  2. Proteja la instancia de base de datos de RDS contra la eliminación.
  3. Cree un nuevo entorno de Elastic Beanstalk.
  4. Lleve a cabo un despliegue azul-verde.
  5. Actualice la política de eliminación de bases de datos del entorno antiguo.
  6. Desacople la instancia de RDS del entorno antiguo.
  7. Termine el entorno antiguo.

Importante: Se recomienda asociar una instancia de base de datos de RDS a un entorno de Elastic Beanstalk solo en entornos de desarrollo y prueba. En el entorno de producción, el ciclo de vida de la instancia de base de datos está vinculado al ciclo de vida del entorno de la aplicación. Por lo tanto, se recomienda no asociar la instancia de base de datos de RDS a un entorno de Elastic Beanstalk en un entorno de producción. Si termina el entorno, perderá los datos porque el entorno eliminará la instancia de base de datos. Para obtener más información, consulte Using Elastic Beanstalk with Amazon RDS.

Solución

Creación de una instantánea de base de datos de la instancia

Para crear una instantánea de base de datos de la instancia, siga estos pasos:

  1. Abra la consola de Elastic Beanstalk.
  2. Elija el entorno de Elastic Beanstalk.
  3. Copie el ID del entorno.
  4. Abra la consola de Amazon RDS.
  5. En el panel de navegación, seleccione Bases de datos.
  6. Introduzca el ID del entorno en el campo de búsqueda y, a continuación, seleccione la base de datos.
  7. Cree una instantánea de base de datos.

Protección de la instancia de base de datos contra la eliminación

Para proteger la instancia de base de datos contra la eliminación, siga estos pasos:

  1. Abra la consola de Amazon RDS.
  2. En el panel de navegación, seleccione Bases de datos.
  3. Elija la base de datos y, a continuación, seleccione Modificar.
  4. En Protección contra la eliminación, seleccione Habilitar la protección contra la eliminación y, a continuación, seleccione Continuar.
  5. En Programación de modificaciones, elija Aplicar inmediatamente y, a continuación, Modificar clúster.
  6. Actualice la consola de Amazon RDS y compruebe que la protección contra la eliminación esté activada.

Creación de un nuevo entorno de Elastic Beanstalk

Nota: El nuevo entorno de Elastic Beanstalk no puede incluir una instancia de base de datos.

Para crear un nuevo entorno de Elastic Beanstalk, siga estos pasos:

  1. Cree un nuevo entorno de Elastic Beanstalk.
  2. Conecte el nuevo entorno de Elastic Beanstalk a la instancia de base de datos existente del antiguo entorno de Elastic Beanstalk. Para obtener más información, consulte Launching and connecting to an external Amazon RDS instance in a default virtual private cloud (VPC).
  3. Compruebe que el nuevo entorno se conecte a la instancia de base de datos existente y que la aplicación funcione correctamente.

Realización de un despliegue azul-verde para evitar el tiempo de inactividad

Nota: Para llevar a cabo un despliegue azul-verde o un intercambio de CNAME más adelante, ambos entornos de Elastic Beanstalk deben formar parte de la misma aplicación.

Para realizar un despliegue azul-verde, siga estos pasos:

  1. Abra la consola de Elastic Beanstalk para el nuevo entorno.
  2. Intercambie las URL del nuevo entorno de Elastic Beanstalk y el antiguo. Para obtener más información, consulte Blue/green deployments with Elastic Beanstalk.
  3. Compruebe que la URL del nuevo entorno responda y que la aplicación funcione correctamente.

Importante: No termine el entorno antiguo de Elastic Beanstalk hasta que se hayan propagado los cambios de DNS y hayan vencido los registros de DNS antiguos. Los registros de DNS pueden tardar hasta 48 horas en caducar. Los servidores DNS no borran los registros antiguos de la caché en función del tiempo de vida (TTL) que haya establecido en los registros de DNS.

Actualización de la política de eliminación de bases de datos del entorno antiguo

Para actualizar la política de eliminación de bases de datos del entorno antiguo, siga estos pasos:

  1. Abra la consola de Elastic Beanstalk para el entorno antiguo.
  2. En el panel de navegación, seleccione Configuración.
  3. En Redes y base de datos, elija Editar.
  4. En Configuración de la base de datos, defina la Política de eliminación de bases de datos Retener.
  5. Seleccione Aplicar. Guardar el cambio de configuración puede tardar unos minutos.

Importante: Continúe con el siguiente paso solo después de que el cambio en la Política de eliminación de bases de datos se haya aplicado al entorno antiguo.

Desacoplamiento de la instancia de RDS del entorno antiguo

Para desacoplar la instancia de RDS del entorno antiguo, siga estos pasos:

  1. Abra la consola de Elastic Beanstalk para el entorno antiguo.
  2. En el panel de navegación, seleccione Configuración.
  3. En la configuración de Redes y bases de datos, elija Editar.
  4. En Configuración de la base de datos, compruebe que se haya definido la Política de eliminación de bases de datos Retener.
  5. En la sección Conexión a la base de datos, elija Desacople de la base de datos.
  6. Seleccione Aplicar.

Nota: La base de datos sigue estando operativa mientas se desacopla. Por lo general, se tarda menos de 5 minutos en desacoplar una base de datos.

Terminación del entorno antiguo

Tras validar la funcionalidad del nuevo entorno, termine el entorno antiguo de Elastic Beanstalk.

Al terminar el entorno, se eliminan todos los recursos de Elastic Beanstalk, excepto la instancia de base de datos y el grupo de seguridad de RDS que creó Elastic Beanstalk. Al crear una instancia de RDS como parte del entorno de Elastic Beanstalk con equilibrio de carga, Elastic Beanstalk crea un grupo de seguridad de Elastic Load Balancing (ELB). Elastic Beanstalk también crea un grupo de seguridad de Amazon Elastic Compute Cloud (Amazon EC2) para asociarlo a las instancias de EC2 del entorno. Además, Elastic Beanstalk crea un grupo de seguridad de RDS para asociarlo a la instancia de RDS. Para permitir el tráfico de entrada en el puerto 3306 desde el grupo de seguridad de EC2, Elastic Beanstalk añade una regla de entrada del grupo de seguridad al grupo de seguridad de RDS.

Cuando se desacopla la base de datos, Elastic Beanstalk no elimina la regla de entrada del grupo de seguridad. Esta regla de entrada del grupo de seguridad hace referencia al grupo de seguridad de EC2 desde el grupo de seguridad de RDS que creó Elastic Beanstalk. Cuando se intenta terminar el entorno, Elastic Beanstalk no puede hacerlo porque el grupo de seguridad de RDS desacoplado sigue haciendo referencia al grupo de seguridad de EC2.

Para terminar el entorno de Elastic Beanstalk, siga estos pasos:

  1. Abra la consola de Elastic Beanstalk para el entorno antiguo.
  2. En el panel de navegación, seleccione Configuración.
  3. En Escalado y tráfico de instancias, anote el nombre del grupo de seguridad de EC2 que aparece en Grupos de seguridad de EC2.
  4. Abra la consola de Amazon EC2.
  5. En el panel de navegación, seleccione Grupo de seguridad.
  6. En la página Grupos de seguridad, introduzca el nombre del grupo de seguridad de EC2.
  7. Anote el ID del grupo de seguridad. El formato es similar a «sg-xxxxxxxx».
  8. Abra la consola de Amazon RDS.
  9. En el panel de navegación, elija Bases de datos y, a continuación, elija el nombre de la instancia de base de datos.
  10. En Conectividad y seguridad, anote las subredes, los grupos de seguridad y los puntos de enlace. A continuación, en Seguridad, elija el nombre del grupo de seguridad.
  11. Cuando se abra la página Grupos de seguridad en la consola de EC2, seleccione el grupo de seguridad.
  12. En Reglas de entrada, seleccione Editar reglas de entrada.
  13. Identifique la regla del grupo de seguridad.
  14. Seleccione Eliminar y, a continuación, Guardar reglas.
  15. Abra la consola de Elastic Beanstalk para el entorno antiguo.
  16. Elija Acciones y, a continuación, Terminar el entorno. Cuando se desacopla la base de datos, Elastic Beanstalk no elimina la regla de entrada del grupo de seguridad. La regla de entrada del grupo de seguridad hace referencia al grupo de seguridad de EC2 desde el grupo de seguridad de RDS que creó Elastic Beanstalk.
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 meses