Saltar al contenido

¿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. Crea una instantánea de base de datos de Amazon RDS.
  2. Protege la instancia de base de datos de RDS contra la eliminación.
  3. Crea un nuevo entorno de Elastic Beanstalk.
  4. Lleva a cabo un despliegue azul-verde.
  5. Actualiza la política de eliminación de bases de datos del entorno antiguo.
  6. Desacopla la instancia de RDS del entorno antiguo.
  7. Finaliza 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 finalizas el entorno, perderás los datos porque el entorno eliminará la instancia de base de datos. Para obtener más información, consulta Uso de Elastic Beanstalk con 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, sigue estos pasos:

  1. Abre la consola de Elastic Beanstalk.
  2. Elige el entorno de Elastic Beanstalk.
  3. Copia el ID del entorno.
  4. Abre la consola de Amazon RDS.
  5. En el panel de navegación, selecciona Bases de datos.
  6. Introduce el ID del entorno en el campo de búsqueda y, a continuación, selecciona la base de datos.
  7. Crea 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, sigue estos pasos:

  1. Abre la consola de Amazon RDS.
  2. En el panel de navegación, selecciona Bases de datos.
  3. Elige la base de datos y, a continuación, selecciona Modificar.
  4. En Protección contra la eliminación, selecciona Habilitar la protección contra la eliminación y, a continuación, selecciona Continuar.
  5. En Programación de modificaciones, elige Aplicar inmediatamente y, a continuación, Modificar clúster.
  6. Actualiza la consola de Amazon RDS y comprueba 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, sigue estos pasos:

  1. Crea un nuevo entorno de Elastic Beanstalk.
  2. Conecta 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, consulta Lanzamiento y conexión a una instancia de Amazon RDS externa en una nube virtual privada (VPC) predeterminada.
  3. Comprueba 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, sigue estos pasos:

  1. Abre la consola de Elastic Beanstalk para el nuevo entorno.
  2. Intercambia las URL del nuevo entorno de Elastic Beanstalk y el antiguo. Para obtener más información, consulta Despliegues azul/verde con Elastic Beanstalk.
  3. Comprueba que la URL del nuevo entorno responda y que la aplicación funcione correctamente.

Importante: No finalices 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 hayas 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, sigue estos pasos:

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

Importante: Sigue 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, sigue estos pasos:

  1. Abre la consola de Elastic Beanstalk para el entorno antiguo.
  2. En el panel de navegación, selecciona Configuración.
  3. En la configuración de Redes y bases de datos, elige Editar.
  4. En Configuración de la base de datos, comprueba 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, elige Desacople de la base de datos.
  6. Selecciona 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, termina 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, sigue estos pasos:

  1. Abre la consola de Elastic Beanstalk para el entorno antiguo.
  2. En el panel de navegación, selecciona Configuración.
  3. En Escalado y tráfico de instancias, anota el nombre del grupo de seguridad de EC2 que aparece en Grupos de seguridad de EC2.
  4. Abre la consola de Amazon EC2.
  5. En el panel de navegación, selecciona Grupo de seguridad.
  6. En la página Grupos de seguridad, introduce el nombre del grupo de seguridad de EC2.
  7. Anota el ID del grupo de seguridad. El formato es similar a «sg-xxxxxxxx».
  8. Abre la consola de Amazon RDS.
  9. En el panel de navegación, elige Bases de datos y, a continuación, elige el nombre de la instancia de base de datos.
  10. En Conectividad y seguridad, anota las subredes, los grupos de seguridad y los puntos de enlace. A continuación, en Seguridad, elige el nombre del grupo de seguridad.
  11. Cuando se abra la página Grupos de seguridad en la consola de EC2, selecciona el grupo de seguridad.
  12. En Reglas de entrada, selecciona Editar reglas de entrada.
  13. Identifica la regla del grupo de seguridad.
  14. Selecciona Eliminar y, a continuación, Guardar reglas.
  15. Abre la consola de Elastic Beanstalk para el entorno antiguo.
  16. Elige 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 AWSActualizada hace 2 años