¿Para que nos sirve una EC2 + Load Balancer?
La combinación de Amazon EC2 con un Load Balancer (Balanceador de Carga) proporciona una solución poderosa y flexible para desplegar aplicaciones web y servicios en la nube con alta disponibilidad, escalabilidad y tolerancia a fallos. Te proporcionare una lista sobre cosas que podemos aprovechar de esto;
- Alta Disponibilidad: Distribuye el tráfico entrante entre múltiples instancias EC2 en diferentes zonas de disponibilidad, lo que ayuda a asegurar que la aplicación permanezca accesible incluso si una o más instancias fallan o una zona de disponibilidad se ve afectada.
- Escalabilidad: Ajusta dinámicamente la capacidad de computación en respuesta a las variaciones en el tráfico, añadiendo o eliminando instancias EC2 según la demanda
- Rendimiento: Reduce la latencia al ofrecer características como el balanceo de carga basado en la ubicación geográfica, asegurando que las solicitudes de los usuarios se dirijan al centro de datos más cercano.
- Tolerancia a Fallos: Mejora la confiabilidad al detectar instancias EC2 insalubres y reenrutar el tráfico a instancias saludables, minimizando así el tiempo de inactividad y la interrupción del servicio.
- Seguridad: Centraliza la gestión de seguridad al actuar como un punto de control para el tráfico entrante, permitiendo aplicar políticas de seguridad
¿Cuántas maneras hay de utilizar el balanceador de carga?
AWS ofrece tres tipos principales de balanceadores de carga, cada uno diseñado para diferentes necesidades:
- Application Load Balancer (ALB): Ideal para aplicaciones HTTP/HTTPS, facilita el enrutamiento avanzado a nivel de solicitud, perfecto para aplicaciones web modernas y microservicios.
- Network Load Balancer (NLB): Opera a nivel de conexión (TCP/UDP), ofreciendo alto rendimiento y baja latencia, adecuado para tráfico de red intenso.
- Classic Load Balancer (CLB): La opción heredada que proporciona balanceo de carga básico tanto a nivel de aplicación como de red, recomendado para aplicaciones tradicionales.
Cada tipo se integra con servicios AWS para escalar automáticamente con el tráfico, garantizando alta disponibilidad y rendimiento optimizado para diferentes tipos de aplicaciones.
¿Quieres aprender sobre Balanceadores de carga?
Visita nuestro post en el que explicamos una guía sobre unicamente balanceadores de carga, te será de ayuda para seguir este tutorial. Ir al post
Como configurar la EC2, vamos a orientarlo a HTTP/HTTPS
Configurar instancias EC2 para trabajar con HTTP/HTTPS y un Load Balancer en AWS involucra varios pasos, desde la configuración de las instancias EC2 hasta el establecimiento de un Load Balancer que distribuya el tráfico entrante. Aquí tienes una guía paso a paso:
Lanzar Instancias EC2 | Paso 1
- Ir a la Consola de AWS y selecciona el servicio EC2.
- Haz clic en “Launch Instance” para crear una nueva instancia EC2.
- Elige una AMI (Amazon Machine Image) que soporte aplicaciones web, como una imagen de Amazon Linux o Ubuntu Server con las herramientas necesarias para tu stack web.
- Selecciona el tipo de instancia adecuado para tu carga de trabajo.
- Configura los detalles de la instancia, asegurándote de lanzarla dentro de una VPC que permita tráfico HTTP/HTTPS.
- Configura el almacenamiento según las necesidades de tu aplicación.
- Añade etiquetas si es necesario, para organizar y administrar tus recursos.
- Configura el grupo de seguridad:
- Crea un nuevo grupo de seguridad o selecciona uno existente.
- Asegúrate de abrir los puertos 80 (HTTP) y 443 (HTTPS) para el tráfico entrante.
- Revisa y lanza la instancia, seleccionando un par de claves existente o creando uno nuevo para el acceso SSH.
Debería de dar el siguiente resultado;
Configurar el servidor web en EC2 | Paso 2
- Conéctate a tu instancia EC2 mediante SSH.
- Instala un servidor web (como Apache o Nginx):
- Para Apache en Amazon Linux:
sudo yum install -y httpd
- Para Nginx en Amazon Linux:
sudo amazon-linux-extras install nginx1
- Para Apache en Amazon Linux:
- Configura tu servidor web para servir tu sitio o aplicación web.
- Inicia y habilita el servicio para que se ejecute al iniciar la instancia:
- Para Apache:
sudo systemctl start httpd
ysudo systemctl enable httpd
- Para Nginx:
sudo systemctl start nginx
ysudo systemctl enable nginx
- Para Apache:
El resultado debería ser el siguiente;
Revisamos con la IP de la EC2
Crear un Load Balancer | Paso 3:
- En la Consola de AWS, ve al servicio EC2 y selecciona Load Balancers en el panel de navegación.
- Haz clic en “Create Load Balancer”.
- Selecciona el tipo de Load Balancer que deseas crear (para HTTP/HTTPS, un Application Load Balancer es una buena elección).
- Configura el Load Balancer:
- Asigna un nombre.
- Selecciona la VPC correcta y las subredes en las que operará (preferiblemente en diferentes zonas de disponibilidad).
- Configura el listener para HTTP (puerto 80) y, si tienes un certificado SSL/TLS, también configura HTTPS (puerto 443).
- Configura el grupo de seguridad para tu Load Balancer, asegurándote de permitir el tráfico en los puertos 80 y 443.
- Configura el grupo de destino:
- Asigna un nombre al grupo.
- Selecciona las instancias EC2 que has configurado como servidores web y asígnalas al grupo de destino.
- Revisa y crea el Load Balancer.
Después del grupo de destino el balanceador de carga debería de quedarte de la siguiente forma, yo solo he añadido una instancia ya que es un simple tutorial tu imagino que agregaras mas para que funcione;
Verificar la Configuración | Paso 4
- Una vez que el Load Balancer esté activo, utiliza su DNS para acceder a tu aplicación o sitio web a través de un navegador.
- Si configuraste HTTPS, asegúrate de haber asociado el certificado SSL/TLS correctamente y de redirigir el tráfico de HTTP a HTTPS si es necesario.
Siguiendo estos pasos, habrás configurado instancias EC2 para servir contenido HTTP/HTTP
Propuesta de laboratorio para verificar conocimientos
En caso de que no consigas hacerlo por ti mismo voy a proporcionarte las instrucciones necesarias para lograr realizarlo;
Laboratorio: Configuración de una Infraestructura Web con EC2 y Load Balancer
Objetivo: Configurar una VPC con dos instancias EC2 en zonas de disponibilidad separadas y un Application Load Balancer que distribuya el tráfico HTTP entre ambas instancias.
Preparar la VPC y Subredes
- Crear VPC:
- Navega a la consola de VPC y crea una nueva VPC con el CIDR
192.168.10.0/24
.
- Navega a la consola de VPC y crea una nueva VPC con el CIDR
- Crear Subredes:
- Crea dos subredes públicas:
- Subnet A:
192.168.10.0/26
en Availability Zone 1. - Subnet B:
192.168.10.64/26
en Availability Zone 2.
- Subnet A:
- Crea dos subredes públicas:
- Configurar Internet Gateway:
- Crea y adjunta un Internet Gateway a tu VPC para permitir la comunicación con internet.
- Actualizar las Tablas de Ruteo:
- Asegúrate de que las rutas para las subredes públicas apunten al Internet Gateway para tráfico saliente a internet.
Desplegar las Instancias EC2
- Lanzar Instancias EC2:
- Lanza dos instancias EC2, una en cada subred pública, utilizando una AMI adecuada para un servidor web (como Amazon Linux 2).
- Configura los grupos de seguridad para permitir el tráfico HTTP (puerto 80) y SSH (puerto 22) entrante.
Configurar el Load Balancer
- Crear Application Load Balancer (ALB):
- En la consola de EC2, selecciona «Load Balancers» y luego «Create Load Balancer».
- Elige «Application Load Balancer», configúralo para escuchar en el puerto 80, y asegúrate de que cubra ambas subredes públicas.
- Configurar Grupos de Seguridad para el ALB:
- Crea un grupo de seguridad para tu ALB que permita el tráfico HTTP entrante.
- Establecer Grupo de Destino:
- Configura un grupo de destino que incluya ambas instancias EC2 para el tráfico HTTP.
- Revisar y Crear:
- Revisa todas las configuraciones y crea el Load Balancer.
Verificación y Pruebas
- Probar la Configuración:
- Una vez que el ALB esté activo, navega a su DNS público y verifica que puedas ver el contenido servido por las instancias EC2.
- Para asegurarte de que el balanceo de carga está funcionando, puedes apagar una instancia y observar si el tráfico se redirige automáticamente a la otra instancia.
En caso de que tampoco puedas realizarlo con las instrucciones estamos trabajando en un apartado de consulta para que puedas consultarnos cualquier pregunta;
Muchas gracias por seguir este tutorial, hasta la próxima!!