Balanceador de Carga en Amazon Web Services
Un Balanceador de Carga en Amazon Web Services (AWS) con soporte para HTTPS distribuye automáticamente el tráfico cifrado de aplicaciones entre múltiples destinos, como instancias EC2, contenedores y direcciones IP, en una o varias zonas de disponibilidad. Además de los beneficios de alta disponibilidad, escalabilidad y tolerancia a fallos, un balanceador de carga HTTPS ofrece una capa adicional de seguridad al cifrar el tráfico entre los clientes y el balanceador de carga.
Prerrequisitos
- Cuenta de AWS
- Al menos dos instancias EC2 en ejecución que actuarán como destinos para el balanceador de carga.
- Una VPC configurada con subredes públicas o privadas según el caso.
- Certificado SSL/TLS
Procedimiento
A continuación, se detallan los pasos para configurar un Application Load Balancer con soporte para HTTPS en AWS.
A. Instalación básica
- Acceder a la Consola de AWS
Iniciar sesión en la Consola de Administración de AWS
- Navegar al Servicio de EC2
En la consola, buscar y seleccionar EC2.
- Preparar las Instancias EC2
Verificar que tus instancias EC2 estén en ejecución y correctamente configuradas para manejar solicitudes HTTPS. Asegúrar de que las instancias estén en las subredes correctas y preferiblemente en distintos segmentos
- Crear un Target Group
En el panel de navegación izquierdo, selecciona Grupos de Destino. Haz clic en Create target group.
- Configura el grupo de destino:
- tipo de destino: Instances.
- nombre del grupo
- Protocolo: Selecciona HTTPS.
- Puerto: 443
- VPC: Seleccionar la VPC donde estan las instancias.
- Health check protocol: HTTPS.
- Register targets: Seleccionar las instancias que deseas agregar al grupo y el puerto correspondiente.
- Clic en Include as pending below.
- Clic en Create target group.
B. Configuración
- Crear el Application Load Balancer
En el panel de navegación izquierdo, seleccionar Load Balancers. Clic en Create Load Balancer. Selecciona Application Load Balancer.
- Configurar el Application Load Balancer
- Nombre del Load Balancer.
- Esquema: Seleccionar Internet-facing si deseas que el balanceador sea accesible desde internet. Seleccionar Internal si el balanceador solo será accesible dentro de la VPC.
- Listeners: Agregar Listener HTTPS
- Protocol: HTTPS.
- Port: 443.
- SSL Certificate: Selecciona un certificado o carga un certificado externo.
- VPC: Selecciona la VPC correcta.
- Availability Zones: Selecciona las subredes en diferentes zonas de disponibilidad donde el balanceador de carga operará.
- Security Groups: Selecciona o crea un grupo de seguridad que permita el tráfico entrante de HTTPS (puerto 443).
- Target group: Selecciona el grupo de destino que creaste anteriormente (my-target-group-https).
- Clic en Create load balancer.
- Verificar la Configuración
Una vez creado, selecciona el balanceador de carga y verifica que su estado sea Active.
- Prueba el balanceador de carga: Copia la DNS name del balanceador de carga y pégalo en tu navegador web para verificar que las solicitudes se enrutan correctamente a las instancias backend.
- Monitorea las Health Checks: En el grupo de destino, verifica que las instancias estén marcadas como Healthy.
C. Configuraciones especiales
- Redirección de HTTP a HTTPS
Para asegurar que todo el tráfico se maneje de manera segura, puedes redirigir automáticamente las solicitudes HTTP a HTTPS:
- Agregar Listener HTTP: En la configuración del balanceador de carga, agrega un nuevo listener:
- Protocol: HTTP.
- Port: 80.
- Configura una regla para redirigir todo el tráfico HTTP a HTTPS:
- Acción: Redirect.
- Protocol: HTTPS.
- Port: 443.
- Especifica el código de estado HTTP (por ejemplo, 301 Moved Permanently).
- Guarda los cambios.
Problemas
1. Error 503 - Service Temporarily Unavailable
- Descripción: Este error indica que el balanceador de carga no puede encontrar ninguna instancia backend disponible para manejar las solicitudes.
- Solución:
- Verifica el estado de las instancias en el grupo de destino: Asegúrate de que al menos una instancia esté marcada como Healthy.
- Revisa las reglas de seguridad: Asegúrate de que los grupos de seguridad y las listas de control de acceso (ACL) de red permitan el tráfico necesario entre el balanceador de carga y las instancias. Ajusta las verificaciones de salud: Si las verificaciones de salud son demasiado estrictas o incorrectamente configuradas, podrían marcar las instancias como unhealthy (no saludables) incluso si están funcionando correctamente.
2. Problemas de Certificado SSL/TLS
- Descripción: Pueden surgir errores relacionados con la validez del certificado SSL/TLS, como advertencias de certificado no confiable en el navegador.
- Solución:
- Verifica el certificado: Asegúrate de que el certificado SSL/TLS esté correctamente configurado en AWS Certificate Manager (ACM) y asignado al listener HTTPS.
- Revisa la cadena de certificados: Asegúrate de que todos los certificados intermedios estén presentes y correctamente instalados.
- Renueva el certificado: Si el certificado ha caducado, renueva o reemplaza el certificado y actualiza el balanceador de carga con el nuevo.
3. Instancias Marcadas como "Unused"
- Descripción: Las instancias en el grupo de destino podrían aparecer como “Unused” si no están recibiendo tráfico.
- Solución:
- Revisa la configuración del grupo de destino: Asegúrate de que las instancias estén correctamente asociadas al grupo de destino y que el tráfico esté balanceado entre ellas.
4. Problemas de Configuración de Firewall/Seguridad
- Descripción: Los grupos de seguridad o las listas de control de acceso de red (NACL) mal configurados pueden bloquear el tráfico necesario.
- Solución:
- Verifica los grupos de seguridad: Asegúrate de que los grupos de seguridad del balanceador de carga y las instancias EC2 permitan el tráfico en los puertos y protocolos necesarios (HTTP, HTTPS).
FIN
Advertencia
Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra la ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal.
-Agosto-2024 Paola Utrera v1.0 Primera version