¡Esta es una revisión vieja del documento!


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. Errores 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. Problemas de Redirección HTTP a HTTPS Descripción: La redirección de HTTP a HTTPS podría no funcionar correctamente, resultando en errores o tráfico no seguro. Solución: Revisa las reglas del listener: Asegúrate de que la redirección esté correctamente configurada en el listener HTTP. Prueba las redirecciones: Verifica manualmente en un navegador que las solicitudes HTTP se redirigen a HTTPS como se espera. 4. Timeout en Conexiones Descripción: Los usuarios pueden experimentar tiempos de espera (timeout) al intentar conectarse a través del balanceador de carga. Solución: Ajusta el tiempo de inactividad (Idle Timeout): Configura un tiempo de inactividad adecuado en el balanceador de carga para evitar desconexiones prematuras. Verifica las instancias backend: Asegúrate de que las instancias EC2 no estén sobrecargadas o experimentando problemas de rendimiento que puedan causar demoras en las respuestas. 5. 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. Monitorea el tráfico: Utiliza CloudWatch para verificar que el tráfico se distribuya correctamente entre las instancias. Escalado Automático: Si el tráfico varía, considera configurar políticas de escalado automático para añadir o remover instancias según la demanda. 6. Problemas de Rendimiento Descripción: Pueden surgir problemas de rendimiento si el balanceador de carga o las instancias backend no están correctamente dimensionadas. Solución: Ajusta la capacidad del balanceador de carga: Asegúrate de que el tipo de balanceador de carga (ALB o NLB) y su configuración sean adecuados para el volumen de tráfico. Monitorea el rendimiento de las instancias: Utiliza CloudWatch para monitorear el rendimiento de las instancias backend y ajusta los recursos según sea necesario (por ejemplo, aumentando el tipo de instancia o escalando horizontalmente). 7. 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). Revisa las NACLs: Confirma que las NACLs asociadas a las sub


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

Volver arriba