sql >> Base de Datos >  >> RDS >> Mysql

Cómo migrar MySQL desde Amazon EC2 a su centro de datos local sin tiempo de inactividad

Desde sus inicios, ha habido un número creciente de migraciones a un entorno basado en la nube. Después de todo, la computación en la nube puede brindar muchos beneficios a las empresas, especialmente a aquellas que trabajan con macrodatos.

Sin embargo, a medida que crece la demanda, también lo hacen los costos, y es posible que se encuentre en una situación en la que los gastos mensuales de la nube sean demasiado altos y los aspectos negativos pronto superen los beneficios de operar en la nube. O tal vez tenga requisitos de seguridad o cumplimiento que le exijan tener un control más directo de sus sistemas. En última instancia, esto puede hacer que usted migre de nuevo a un entorno local.

AWS proporciona herramientas de supervisión y administración para ejecutar nuestro sistema en la nube mientras se tiene visibilidad y control para la optimización. Sin embargo, cuando nos encontramos listos para una solución local, puede ser un desafío migrar nuestros datos y recrear todas las herramientas para administrar nuestros sistemas correctamente.

En este blog, analizaremos cómo puede migrar sus sistemas de AWS a un centro de datos local y cómo ClusterControl puede ayudar a agilizar el proceso.

Conceptos

Antes de comenzar, cubramos algunos conceptos básicos sobre Amazon Cloud y ClusterControl.

AWS

Amazon Web Services (AWS) es una plataforma de infraestructura como servicio compuesta por una gran cantidad de servicios independientes y semiindependientes. El propósito de la plataforma Infraestructura como servicio es ofrecer, sobre la base de productos básicos, servicios que anteriormente requerían la compra de componentes de infraestructura de capital intensivo, como servidores de gama alta, enrutadores de red y conmutadores, y para empresas más grandes, incluso sus propios centros de datos.

RDS

Amazon Relational Database Service (RDS) facilita la configuración, el funcionamiento y el escalado de una base de datos relacional en la nube. Proporciona capacidad rentable y redimensionable al mismo tiempo que automatiza las tareas de administración que consumen mucho tiempo, como el aprovisionamiento de hardware, la configuración de la base de datos, la aplicación de parches y las copias de seguridad.

Amazon RDS está disponible en varios tipos de instancias de bases de datos y le brinda seis sistemas de administración de bases de datos familiares para elegir, incluidos Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database y SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) es un servicio que proporciona capacidad informática segura y redimensionable en la nube. Está diseñado para hacer que la informática en la nube a escala web sea más fácil para los desarrolladores.

La sencilla interfaz web de Amazon EC2 le permite obtener y configurar la capacidad con una fricción mínima. Le proporciona un control completo de sus recursos informáticos y le permite ejecutar en el entorno informático comprobado de Amazon.

Control de clúster

ClusterControl es un sistema de gestión integral para bases de datos de código abierto que automatiza la implementación, las funciones de gestión y la supervisión del estado y el rendimiento desde un único panel.

ClusterControl admite la implementación, administración, supervisión y escalado de diferentes tecnologías de bases de datos en cualquier entorno.

¿Por qué migrar a las instalaciones?

Como mencionamos anteriormente, las razones más comunes para migrar de AWS a un entorno local son los costos, la seguridad, el cumplimiento o la ejecución de aplicaciones locales. En AWS, no sabe lo que sucede bajo el capó de la infraestructura. Solo sabes si todo está funcionando. Si experimenta un rendimiento deficiente o anomalías, la única solución es ponerse en contacto con el soporte de Amazon.

Ejemplo de escenario de migración

En AWS, tiene dos productos diferentes relacionados con este blog:EC2 y RDS.

La principal diferencia entre ellos es que en EC2, tiene acceso SSH al servidor y debe administrar la base de datos usted mismo. RDS es un servicio de base de datos alojado y solo tiene acceso a la instancia de la base de datos.

En RDS, como no tiene acceso SSH, debe crear un volcado e importarlo al nuevo servidor, o configurar la replicación y promocionar la réplica al nuevo servidor principal. Para ambas opciones, el proceso es manual. También puede agregar un balanceador de carga para mejorar este proceso. Cubrimos esta tarea en estos blogs:Parte 1 y Parte 2.

Entonces, concentrémonos en la migración desde EC2.

En nuestro ejemplo, veamos cómo migrar MySQL de AWS EC2 a un centro de datos local. Usaremos un entorno de replicación de MySQL, pero estos pasos deberían funcionar para otras tecnologías como PostgreSQL.

Supondremos que tiene su base de datos MySQL principal ejecutándose en una instancia EC2. En el centro de datos local, también supondremos que tiene instalado ClusterControl y un servidor de base de datos nuevo al que migrar.

En la consola de administración de AWS, debería tener algo como esto en EC2 sección de instancias:

Primero, deberá importar su nodo principal actual que se ejecuta en EC2 a ClusterControl. Para este proceso de importación, debe abrir el puerto 3306 editando el grupo de seguridad asociado con la instancia EC2.

Después de esto, dentro de ClusterControl, vaya a la sección Importar:

Allí, puede elegir la tecnología de la base de datos, en este ejemplo MySQL Replication, y debe especificar el Usuario, la Clave o la Contraseña y el puerto para conectarse a su servidor a través de SSH. También debe proporcionar el nombre de su nuevo clúster.

 

Después de configurar la información de acceso SSH, debe definir cierta información de la base de datos como las credenciales de administrador de la base de datos, el puerto y el directorio base. Además, puede habilitar las funciones de recuperación automática del nodo ClusterControl y recuperación automática del clúster para el nuevo clúster.

Luego, debe agregar su servidor utilizando la dirección IP o el nombre de host y presionar Importar.

Una vez hecho esto, puede monitorear el estado del trabajo de importación desde el Monitor de actividad de ClusterControl.

Una vez completada la tarea, verá el nodo de su base de datos en la pantalla principal Pantalla ClusterControl:

Asegúrese de habilitar la generación de binlog en su base de datos maestra actual.

Ahora, puede agregar su nuevo nodo principal futuro como una nueva réplica de su base de datos principal actual. Para esto, vaya a ClusterControl -> Seleccionar clúster -> Acciones de clúster -> Agregar esclavo de replicación.

Aquí, debe agregar el nombre de host o la dirección IP de la nueva réplica servidor y si desea que ClusterControl instale el software por usted.

Asegúrese de tener conectividad de AWS a los puertos 3306 y 9999 en el servidor local.

ClusterControl organiza la réplica con datos realizando una copia de seguridad en caliente de la principal, transmitiéndola a la réplica y restaurándola allí. Una vez restaurado, el nodo de réplica se conecta al nodo principal para que pueda ponerse al día con los eventos y sincronizarse. Tenga en cuenta que para bases de datos grandes que se ejecutan con algo de carga, es posible que desee evitar la carga adicional de esta operación en el nodo principal. En ese caso, es posible construir el nodo de réplica primero a partir de una copia de seguridad existente y luego conectar la réplica para que alcance al nodo principal.

Después de esta tarea, debería tener algo como esto:

También puede verificar su topología en la sección Topología de ClusterControl.

Luego, debe promocionar la réplica a primaria (ClusterControl -> Seleccionar Clúster -> Acciones de nodo -> Promover esclavo) y cambie el punto final en su aplicación.

Para mejorar esta topología, puede agregar un balanceador de carga para administrar el tráfico del servidor de aplicaciones a la base de datos. Al usar un balanceador de carga, no necesitará cambiar el punto final de su aplicación durante la migración; el equilibrador de carga cambiará el nodo principal de forma transparente.

Hay muchas formas de realizar esta tarea y debería poder adopte una estrategia como esta para su entorno, dependiendo de su infraestructura, seguridad, etc.

Por razones de seguridad, debería considerar usar una VPN entre AWS y el entorno local.

En el caso de una topología multimaestro como Galera Cluster, solo necesita agregar los nodos que desea en las instalaciones, pero tenga cuidado con la latencia. Puede usar, por ejemplo, diferentes segmentos de Galera para disminuir el uso de la red.

Consideraciones para la migración

Finalmente, aquí hay algunas consideraciones a tener en cuenta si desea dejar AWS y comenzar a utilizar su propio entorno:

  • Monitoreo:No olvide usar un sistema de monitoreo. ¡Necesita saber lo que está sucediendo en su sistema todo el tiempo!
  • Estrategia de recuperación ante desastres:debe considerar un buen DRP. En general, debe tener la información en tres lugares físicos diferentes:principal, réplica y respaldo.
  • Alta disponibilidad:hoy en día, la alta disponibilidad es imprescindible en la mayoría de los entornos de producción, por lo que debe pensar en la mejor solución de alta disponibilidad según su infraestructura.
  • Escalado:debería poder escalar si es necesario en el futuro o para un evento específico.
  • Reversión:si desea migrar de AWS a un entorno local, tenga en cuenta que algo podría salir mal (como en cualquier tipo de migración), por lo que debe tener un plan de reversión.
  • Suponga que busca algún tipo de entorno híbrido, con instancias que se ejecutan en AWS y en las instalaciones. En ese caso, ClusterControl es una excelente opción para monitorear, administrar la disponibilidad, copias de seguridad, escalar y más. ¡Pruébalo!

Conclusión

A veces, operar en la nube simplemente no es la mejor opción y es posible que necesite volver a migrar a una solución local. Esperamos que este blog le haya brindado información útil sobre cómo migrar sus datos basados ​​en MySQL a su centro de datos local desde AWS y cómo ClusterControl le brinda las herramientas que necesita para administrar sus sistemas correctamente.

Una vez que haya completado con éxito su migración, mejore su sistema de monitoreo con estrategias proactivas como alertas predictivas. Consulte nuestra publicación actualizada recientemente sobre Monitoreo de bases de datos con ClusterControl para obtener más información.

Para obtener más actualizaciones sobre consejos y mejores prácticas de administración de bases de datos, asegúrese de suscribirse a nuestro blog, fuente RSS y síganos en LinkedIn y Twitter.