Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk paso a paso

Si quieres aprender a dar de alta una Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk, pero no sabes por dónde empezar, este artículo es para ti. Este artículo esta diseñado para aquellos que se están integrando al mundo de herramientas y servicios que ofrece Amazon Web Services y que requieren una arquitectura de Alta Disponibilidad.

Para este artículo, voy a asumir que estas familiarizado con Elastic Beanstalk y la consola de AWS. De no ser así, te recomiendo leas primero este artículo: Aprende a Instalar Laravel + Base de datos con Amazon Web Services paso a paso

Qué es una Arquitectura de Alta Disponibilidad y como funciona?

Una Arquitectura de Alta Disponibilidad (o High Availability) es un diseño de infraestructura para sistemas que permite dar servicio continuo. Lo anterior es posible mediante la creación de diversas instancias con la misma copia del sistema en cuestión.

Imagina que tienes 4 instancias del mismo sistema y todas están “sanas”; en el momento en el que un cliente quiere acceder al sistema, el Balanceador de Cargas decidirá cual es la mejor opción en ese momento y redireccionará la petición del cliente hacia la instancia que le haga más sentido.

En esta decisión del Balanceador de Cargas influyen diversos factores, algunos podrían ser los siguientes:

  • Basado en el tráfico basado en la carga de cada una de las instancias.
  • El estado de salud de las instancias, las cuales se elegirán las no tengan errores que impidan la ejecución.
  • Distribuir el tráfico basado en el lugar de origen de la petición del cliente. Es decir, selecciona aquella que esté más cerca de ti, permitiendo cargar más rápido.
  • Distribuye el tráfico basado en las IP’s desde las cuales se reciben la peticiones.
  • Entre otras…

Cómo crear y configurar una Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk paso a paso

En este apartado, te mostraré paso a paso a configurar una Arquitectura de Alta Disponibilidad en AWS con Elastic Beanstalk paso a paso, contemplando los siguientes aspectos:

  • Crear y configurar una instancia para el lenguaje de tu selección en Elastic Beanstalk
  • Configurar el Balanceador de Cargas utilizando el servicio de AWS Application Load Balancer
  • Configurar una instancia de RDS compartida

Paso #1: Crear y configurar una instancia para el lenguaje de tu selección en Elastic Beanstalk

  1. Comencemos por posicionarnos en la Consola de administración de Elastic Beanstalk.
  2. Una vez ahí, da clic en Create Application, acción que te llevará al siguiente apartado, en donde podrás nombrar tu aplicación como prefieras:
Escribe el nombre que prefieras para identificar tu Aplicación de Elastic Beanstalk. Esta aplicación, agrupará todas las instancias que manejará el Balanceador de Cargas.

3. En mi caso, voy a omitir el definir etiquetas en el apartado de “Etiquetas de la aplicación”, aun que, tu puedes definir las que prefieras.

4. Continuando en el apartado de “Plataforma”, selecciona la que prefieras. Seleccionala basada en la aplicación que vas a utilizar. En mi caso, será una aplicación de Laravel, entonces seleccionaré PHP con Ubuntu.

Esta selección puede ser modificada más adelante, si lo deseas, pero si debe ser definida para continuar.

5. En el apartado de “Código de aplicación” vamos a seleccionar “Aplicación de muestra” para verificar que configuremos bien la arquitectura de Alta Disponibilidad sin que interfiera la configuración del sistema que deseamos publicar. Posteriormente, da clic en “Configurar más opciones”.

Da clic en la opción “Configurar más opciones” para continuar con el objetivo de este artículo.

6. Es importante que en apartado “Elementos preestablecidos” selecciones la opción “Alta disponibilidad”, como se muestra en la siguiente imagen:

Algo a tomar en cuenta, es que este esquema no es gratuito. El esquema de alta disponibilidad puede ser barato si se manejan bien los recursos.

Paso #2: Configurar el Balanceador de Cargas utilizando el servicio de AWS Application Load Balancer

7. Vamos a dar clic en “Editar” bajo el apartado “Balanceador de carga” que se muestra más abajo de la sección anterior, para hacer nuestras modificaciones:

El Balanceador de Cargas es el encargado de distribuir el trafico proveniente entre las instancias.

8. Ahora que ya estamos en la sección “Modificar el balanceador de carga”, vamos a seleccionar el “Tipo de balanceador de carga” que vamos a usar. Selecciona “Balanceador de carga de aplicaciones” como se muestra a continuación:

Este tipo de balanceador de carga es el indicado para la distribución de tráfico basado en instancias.

9. En la parte inferior de esta sección, da clic en “Guardar” para continuar para configurar la Base de Datos.

Paso #3: Configurar una instancia de RDS compartida

10. Ya que estamos de regreso en la configuración de nuestra aplicación, da clic en el botón “Editar” bajo la sección “Base de datos”.

Es importante hacer la configuración de bases de datos en este punto, pues aquí se crearán automáticamente los grupos de seguridad necesarios.

11. Una vez en el apartado de “Modificar la base de datos”, selecciona la configuración de base de datos de tu preferencia.

En la última opción “Disponibilidad” puedes seleccionar tener solo una instancia de base de datos (Baja (una AZ)) o varias instancias (Alta (Multi-AZ)). Yo siempre escojo Baja (una AZ) puesto que en lo personal, me interesa tener solo una instancia de RDS para todas mis instancias de EC2, por el tema de la disponibilidad de datos de forma simultánea.

En mi caso la configuración quedará así:

Guarda la información de acceso a tu base de datos en un lugar seguro.

12. Da clic en Guardar para continuar.

13. Ahora ya hemos terminado de configurar nuestra aplicación de Elastic Beanstalk. Así que, da clic en el botón “Crear una aplicación” en la parte inferior de la página.

14. Al dar clic en Crear una aplicación en el paso anterior, Elastic Beanstalk comenzará a crear la arquitectura de Alta Disponibilidad. Este proceso suele durar varios minutos… y listo, ya tenemos nuestra aplicación lista.

A partir de este punto puedes subir el código fuente de tu aplicación, la cual ya estará incluida en un esquema de alta disponibilidad. Si tienes dudas sobre como cargar el código fuente de tu aplicación, te recomiendo sigas el artículo: Aprende a Instalar Laravel + Base de datos con Amazon Web Services paso a paso.

Ahora ya sabes como crear una Arquitectura de Alta Disponibilidad en AWS, subscríbete para seguir aprendiendo sobre tecnología. No dudes en dejar tus comentarios, recomendaciones y/o dudas en este artículo.

Antes de programar un bot de trading con el API de KuCoin Configurar dominio en Route 53 Forzar HTTPS en Elastic Beanstalk con Nginx
View Comments
There are currently no comments.