====== 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