Solución de problemas de Equilibrador de carga de aplicación - Elastic Load Balancing

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas de Equilibrador de carga de aplicación

La siguiente información puede ayudarle a solucionar problemas del Equilibrador de carga de aplicación.

Un destino registrado no está operativo

Si un destino está tardando más de lo previsto en pasar al estado InService, es posible que no esté superando las comprobaciones de estado. El destino no estará operativo hasta que supere la comprobación de estado. Para obtener más información, consulte Comprobaciones de estado de los grupos de destinos del equilibrador de carga de aplicación..

Examine la instancia para ver si hay algún error en las comprobaciones de estado y revise lo siguiente:

Hay un grupo de seguridad que no permite el tráfico

El grupo de seguridad asociado a una instancia debe permitir el tráfico del equilibrador de carga a través del puerto de comprobación de estado y el protocolo de comprobación de estado. Puede agregar una regla a la instancia del grupo de seguridad que permita todo el tráfico procedente del grupo de seguridad del equilibrador de carga. Además, el grupo de seguridad del equilibrador de carga debe permitir el tráfico dirigido a las instancias.

Hay una lista de control de acceso (ACL) de red que no permite el tráfico

Las ACL de red asociadas a las subredes de las instancias deben permitir el tráfico entrante en el puerto de comprobación de estado y el tráfico saliente en los puertos efímeros (1024-65535). Las ACL de red asociadas a las subredes de los nodos del equilibrador de carga deben permitir el tráfico entrante en los puertos efímeros y el tráfico saliente en los puertos de comprobación de estado y los puertos efímeros.

La ruta de ping no existe

Cree una página de destino para la comprobación de estado y especifique su ruta como la ruta de ping.

Se ha agotado el tiempo de espera de conexión

En primer lugar, asegúrese de que puede conectarse directamente al destino desde la red a través de la dirección IP privada del destino y el protocolo de comprobación de estado. Si no puede establecer la conexión, asegúrese de que la instancia no está sobrecargada y agregue más destinos al grupo si tarda demasiado en responder. Si puede establecer conexión, es posible que la página de destino no responda antes de que se agote el período de espera de la comprobación de estado. Elija una página de destino más sencilla o ajuste la configuración de la comprobación de estado.

El destino no devuelve un código de respuesta correcto

De forma predeterminada, el código de éxito es 200, pero, si lo desea, puede especificar otros códigos de éxito cuando configure las comprobaciones de estado. Confirme los códigos de éxito que el equilibrador de carga está esperando y asegúrese de que la aplicación está configurada para devolver estos códigos de éxito.

El código de respuesta del destino tenía un formato incorrecto o se produjo un error al conectarse al destino

Comprueba que tu aplicación responde a las solicitudes de comprobación de estado del equilibrador de carga. Algunas aplicaciones requieren una configuración adicional para responder a las comprobaciones de estado, como una configuración de host virtual para responder al encabezado de host HTTP enviado por el equilibrador de carga. El valor del encabezado del host contiene la dirección IP privada del destino, seguida del puerto de comprobación de estado cuando no se usa el puerto predeterminado. Si el destino usa un puerto de comprobación de estado, el valor del encabezado del host únicamente contiene la dirección IP privada del destino. Por ejemplo, si la dirección IP privada del destino es 10.0.0.10 y el puerto de comprobación de estado es 8080, el encabezado del host HTTP que envía el equilibrador de carga en las comprobaciones de estado es Host: 10.0.0.10:8080. Si la dirección IP privada del destino es 10.0.0.10 y el puerto de comprobación de estado es 80, el encabezado del host HTTP que envía el equilibrador de carga en las comprobaciones de estado es Host: 10.0.0.10. Es posible que se necesite una configuración de host virtual para responder a ese host, o una configuración predeterminada, para comprobar correctamente el estado de la aplicación. Las solicitudes de comprobación de estado tienen los siguientes atributos: User-Agent se establece en ELB-HealthChecker/2.0, el terminador de línea de los campos del encabezado del mensaje es la secuencia CRLF y el encabezado termina en la primera línea vacía seguida de un CRLF.

Los clientes no pueden conectarse a un equilibrador de carga orientado a Internet

Si el equilibrador de carga no responde a las solicitudes, compruebe lo siguiente:

El equilibrador de carga expuesto a Internet está conectado a una subred privada

Debe especificar las subredes públicas para el equilibrador de carga. Una subred pública tiene una ruta hacia la puerta de enlace de Internet de la nube privada virtual (VPC).

Hay un grupo de seguridad o una ACL de red que no permite el tráfico

Tanto el grupo de seguridad del equilibrador de carga como las ACL de red de las subredes del equilibrador de carga deben permitir el tráfico entrante procedente de los clientes y el tráfico saliente dirigido a los clientes en los puertos de escucha.

El equilibrador de carga no recibe las solicitudes enviadas a un dominio personalizado

Si el equilibrador de carga no recibe las solicitudes enviadas a un dominio personalizado, compruebe lo siguiente:

El nombre de dominio personalizado no se resuelve en la dirección IP del equilibrador de carga
  • Confirme en qué dirección IP se resuelve el nombre de dominio personalizado mediante una interfaz de línea de comandos.

    • Linux, macOS o Unix: puede utilizar el comando dig dentro de Terminal. Ej.dig example.com

    • Windows: puede utilizar el comando nslookup dentro del símbolo del sistema. Ej.nslookup example.com

  • Confirme en qué dirección IP se resuelve el nombre de DNS del equilibrador de carga mediante una interfaz de línea de comandos.

  • Compare ambos resultados. Las direcciones IP deben coincidir.

Si utiliza Route 53 para alojar su dominio personalizado, consulte Mi dominio no está disponible en Internet en la Guía para desarrolladores de Amazon Route 53.

Las solicitudes HTTPS que se envían al equilibrador de carga devuelven “NET: :ERR_CERT_COMMON_NAME_INVALID”

Si las solicitudes HTTPS reciben NET::ERR_CERT_COMMON_NAME_INVALID del equilibrador de carga, compruebe las siguientes causas posibles:

  • El nombre de dominio utilizado en la solicitud HTTPS no coincide con el nombre alternativo especificado en el certificado ACM asociado a los oyentes.

  • Se utiliza el nombre de DNS predeterminado del equilibrador de carga. El nombre de DNS predeterminado no se puede utilizar para realizar solicitudes HTTPS, ya que no se puede solicitar un certificado público para el dominio *.amazonaws.com.

El equilibrador de carga muestra tiempos de procesamiento elevados

El equilibrador de carga cuenta los tiempos de procesamiento de forma diferente según la configuración.

  • Si AWS WAF está asociado a su Equilibrador de carga de aplicación y un cliente envía una solicitud HTTP POST, el tiempo de envío de los datos de las solicitudes POST se refleja en el campo request_processing_time de los registros de acceso al equilibrador de carga. Este comportamiento se espera para solicitudes HTTP POST.

  • Si AWS WAF no está asociado a su Equilibrador de carga de aplicación y un cliente envía una solicitud HTTP POST, el tiempo de envío de los datos de las solicitudes POST se refleja en el campo target_processing_time de los registros de acceso al equilibrador de carga. Este comportamiento se espera para solicitudes HTTP POST.

El equilibrador de carga envía un código de respuesta 000

Con las conexiones HTTP/2, si la longitud comprimida de cualquiera de los encabezados supera los 8 KB o si la cantidad de solicitudes enviadas mediante una conexión superan las 10,000, el equilibrador de carga envía un marco GOAWAY y cierra la conexión con un TCP FIN.

El equilibrador de carga genera un error HTTP

El equilibrador de carga genera los siguientes errores HTTP. El equilibrador de carga envía el código HTTP al cliente, guarda la solicitud en el registro de acceso e incrementa la métrica HTTPCode_ELB_4XX_Count o HTTPCode_ELB_5XX_Count.

HTTP 400: Solicitud errónea

Causas posibles:

  • El cliente envió una solicitud incorrecta que no se ajusta a la especificación de HTTP.

  • El encabezado de la solicitud supera los 16 KB por línea de solicitud, los 16 KB por línea de encabezado o los 64 KB en el conjunto del encabezado.

  • El cliente cerró la conexión antes de enviar el cuerpo completo de la solicitud.

HTTP 401: No autorizado

Ha configurado una regla del oyente para autenticar a los usuarios, pero se cumple alguna de las condiciones siguientes:

  • Configuró OnUnauthenticatedRequest para denegar el acceso a los usuarios no autenticados o el IdP denegó el acceso.

  • El tamaño de las notificaciones devueltas por el IdP supera el tamaño máximo admitido por el equilibrador de carga.

  • Un cliente ha enviado una solicitud HTTP/1.0 sin encabezado de host y el equilibrador de carga no pudo generar una URL de redirección.

  • El ámbito de la solicitud no devuelve un token de ID.

  • No se finaliza el proceso de inicio de sesión antes de que caduque el tiempo de espera para iniciar sesión del cliente. Para obtener más información, consulte Tiempo de espera para iniciar sesión en el cliente.

HTTP 403: Prohibido

Configuró una lista de control de acceso web (ACL web) de AWS WAF para monitorear las solicitudes a su Equilibrador de carga de aplicación y esta bloqueó una solicitud.

HTTP 405: Método no permitido

El cliente utilizó el método TRACE, que no es compatible con el Equilibrador de carga de aplicación.

HTTP 408: Request timeout

El cliente no envió datos antes de que transcurriera el período de tiempo de espera de inactividad. El envío de una instrucción keep-alive TCP no invalida este tiempo de espera. Envíe al menos 1 byte de datos antes de que finalice el periodo de tiempo de espera de inactividad. Aumente la duración del periodo de tiempo de espera de inactividad según sea necesario.

HTTP 413: Carga demasiado grande

Causas posibles:

  • El destino es una función de Lambda y el cuerpo de la solicitud supera 1 MB.

  • El encabezado de la solicitud supera los 16 KB por línea de solicitud, los 16 KB por línea de encabezado o los 64 KB en el conjunto del encabezado.

HTTP 414: URI demasiado largo

La URL de la solicitud o los parámetros de la cadena de consulta son demasiado largos.

HTTP 460

El equilibrador de carga recibió una solicitud de un cliente, pero el cliente cerró la conexión con el equilibrador de carga antes de que transcurriera el período de inactividad.

Compruebe si el período de inactividad del cliente es mayor que el período de inactividad del equilibrador de carga. Asegúrese de que el destino proporciona una respuesta al cliente antes de que se agote el tiempo de inactividad del cliente. Si el cliente lo permite, también puede aumentar el tiempo de espera del cliente para que coincida con el período de inactividad del equilibrador de carga.

HTTP 463

El equilibrador de carga recibió un encabezado de solicitud X-Forwarded-For con demasiadas direcciones IP. El límite máximo de direcciones IP es de 30.

HTTP 464

El equilibrador de carga recibió un protocolo de solicitudes entrantes que no es compatible con la configuración de versiones del protocolo del grupo de destino.

Causas posibles:

  • El protocolo de solicitud es HTTP/1.1, mientras que la versión del protocolo del grupo de destino es gRPC o HTTP/2.

  • El protocolo de solicitud es un gRPC, mientras que la versión del protocolo del grupo de destino es un HTTP/1.1.

  • El protocolo de solicitud es HTTP/2 y la solicitud no es POST, mientras que la versión del protocolo del grupo de destino es un gRPC.

HTTP 500: Error interno del servidor

Causas posibles:

  • Configuró una lista de control de acceso web (ACL web) AWS WAF y se ha producido un error al ejecutar las reglas de ACL web.

  • El equilibrador de carga no puede comunicarse con el punto de conexión del token de IdP o el punto de conexión de información de usuario de IdP.

    • Compruebe que el DNS del IdP se pueda resolver públicamente.

    • Verifique que los grupos de seguridad de su equilibrador de carga y las ACL de red de su VPC permiten el acceso saliente a estos puntos de enlace.

    • Compruebe que la VPC tiene acceso a Internet. Si hay un equilibrador de carga interno, utilice una puerta de enlace NAT para permitirle que obtenga acceso a Internet.

  • La reclamación del usuario recibida del IdP tiene un tamaño superior a 11 KB.

HTTP 501: No implementado

El equilibrador de carga recibió un encabezado Transfer-Encoding con un valor no admitido. Los valores admitidos para Transfer-Encoding son chunked e identity. Como alternativa, puede utilizar el encabezado Content-Encoding.

HTTP 502: Bad puerta de enlace

Causas posibles:

  • El equilibrador de carga recibió un TCP RST desde el destino cuando intentó establecer una conexión.

  • El equilibrador de carga recibió una respuesta inesperada del destino, como, por ejemplo, "ICMP Destination unreachable (Host unreachable) (Destino de ICMP inaccesible (Host de destino inaccesible))", al intentar establecer una conexión. Compruebe si se permite el tráfico desde las subredes del equilibrador de carga a los destinos del puerto de destino.

  • El destino cerró las conexiones con un TCP RST o un TCP FIN mientras que el equilibrador de carga tenía una solicitud pendiente en el destino. Compruebe si la duración de keep-alive del destino es inferior al valor del tiempo de inactividad del equilibrador de carga.

  • La respuesta del destino es incorrecta o contiene encabezados HTTP que no son válidos.

  • El encabezado de respuesta destino superó los 32 K para todo el encabezado de respuesta.

  • El período de retardo de anulación del registro para una solicitud que se maneja mediante un destino cuyo registro se ha anulado. Aumente el periodo de retraso de manera que las operaciones largas puedan completarse.

  • El destino es una función de Lambda y el cuerpo de la respuesta supera 1 MB.

  • El destino es una función de Lambda que no respondió antes de que se agotara el tiempo de espera configurado.

  • El destino es una función de Lambda que ha devuelto un error o el servicio de Lambda ha limitado la función.

  • El equilibrador de carga ha detectado un error de protocolo de enlace SSL al conectarse a un destino.

Para obtener más información, consulte Cómo solucionar los errores HTTP 502 del Equilibrador de carga de aplicación en el Centro de conocimientos de AWS Support.

HTTP 503: Service unavailable

Los grupos de destino del equilibrador de carga no tienen destinos registrados.

HTTP 504: Gateway timeout

Causas posibles:

  • El equilibrador de carga ha establecido una conexión con el destino antes de que se agotara el tiempo de espera de conexión (10 segundos).

  • El equilibrador de carga estableció una conexión con el destino, pero el destino no respondió antes de que transcurriera el período de inactividad.

  • La ACL de red o las políticas del grupo de seguridad no permiten el tráfico desde los destinos hasta los nodos del equilibrador de carga en los puertos efímeros (1024-65535).

  • El destino devuelve un encabezado de longitud de contenido que es mayor que el cuerpo de la entidad. El equilibrador de carga agotó el tiempo de espera con los bytes restantes.

  • El destino es una función de Lambda y el servicio Lambda no respondió antes de que expirara el tiempo de espera de conexión.

  • El equilibrador de carga ha detectado un error de tiempo de espera del protocolo de enlace SSL (10 segundos) al conectarse a un destino.

HTTP 505: Versión no compatible

El equilibrador de carga recibió una solicitud de versión HTTP inesperada. Por ejemplo, el equilibrador de carga estableció una conexión HTTP/1 pero recibió una solicitud HTTP/2.

HTTP 507: almacenamiento insuficiente

La URL de redirección es demasiado larga.

HTTP 561: No autorizado

Configuró una regla de oyente para autenticar a los usuarios, pero el IdP devolvió un código de error al autenticar al usuario. Compruebe en sus registros de acceso el código de motivo de error correspondiente.

Hay un destino que genera un error HTTP

El equilibrador de carga reenvía respuestas HTTP válidas desde los destinos al cliente, incluidos los errores HTTP. Los errores HTTP generados por un destino se registran en las métricas HTTPCode_Target_4XX_Count y HTTPCode_Target_5XX_Count.

No hay ningún certificado AWS Certificate Manager disponible para su uso

Si decide utilizar un oyente HTTPS con su Equilibrador de carga de aplicación, AWS Certificate Manager le exige validar la propiedad del dominio antes de emitir un certificado. Si se omite este paso durante la configuración, el certificado permanece en el estado Pending Validation y no estará disponible para su uso hasta que se valide.

  • Si utiliza la validación por correo electrónico, consulte Validación por correo electrónico en la Guía del usuario de AWS Certificate Manager.

  • Si utiliza la validación por correo electrónico, consulte Validación DNS en la Guía del usuario de AWS Certificate Manager.

No se admiten encabezados de varias líneas

Los equilibradores de carga de aplicaciones no admiten encabezados multilínea, incluido el encabezado de tipo de medio message/http. Cuando se proporciona un encabezado multilínea, el Equilibrador de carga de aplicación añade un carácter de dos puntos, “:”, antes de pasarlo al destino.

Solución de problemas de destinos en mal estado mediante el mapa de recursos

Si los destinos del Equilibrador de carga de aplicación no superan las comprobaciones de estado, puede utilizar el mapa de recursos para buscar destinos en mal estado y tomar medidas en función del código del motivo del error. Para obtener más información, consulte Visualización del mapa de recursos del Equilibrador de carga de aplicación.

El mapa de recursos ofrece dos vistas: Información general y Mapa de destinos en mal estado. La información general se selecciona de forma predeterminada y muestra todos los recursos del equilibrador de carga. Si selecciona la vista Mapa de destinos en mal estado, solo se mostrarán los destinos en mal estado de cada grupo de destino asociado al Equilibrador de carga de aplicación.

nota

La opción Mostrar detalles del recurso debe estar habilitada para ver el resumen de la comprobación de estado y los mensajes de error de todos los recursos aplicables del mapa de recursos. Si no está habilitada, debe seleccionar cada recurso para ver sus detalles.

La columna Grupos de destino muestra un resumen de los destinos en buen y mal estado de cada grupo de destino. Esto puede ayudar a determinar si ninguno de los destinos está superando las comprobaciones de estado, o si son solo destinos concretos los que no las superan. Si ninguno de los destinos de un grupo de destino supera las comprobaciones de estado, revise la configuración del grupo de destino. Seleccione el nombre de un grupo de destino para abrir su página de detalles en una pestaña nueva.

La columna Destinos muestra el ID de destino y el estado actual de la comprobación de estado de cada destino. Cuando un destino no está en buen estado, se muestra el código del motivo del error de la comprobación de estado. Cuando sea un único destino el que no supera una comprobación de estado, verifique que el destino tiene recursos suficientes y confirme que las aplicaciones que se ejecutan en el destino estén disponibles. Seleccione el ID de un destino para abrir su página de detalles en una pestaña nueva.

Al seleccionar Exportar, tiene la opción de exportar la vista actual del mapa de recursos de su Equilibrador de carga de aplicación en formato PDF.

Verifique que la instancia no está superando las comprobaciones de estado y luego, en función del código del motivo del error, revise lo siguiente:

  • Mal estado: la respuesta de HTTP no coincide

    • Compruebe que la aplicación que se ejecuta en el destino envíe la respuesta de HTTP correcta a las solicitudes de comprobación de estado del Equilibrador de carga de aplicación.

    • Como alternativa, puede actualizar la solicitud de comprobación de estado del Equilibrador de carga de aplicación para que coincida con la respuesta de la aplicación que se ejecuta en el destino.

  • Mal estado: tiempo de espera de la solicitud agotado

    • Compruebe que los grupos de seguridad y las listas de control de acceso (ACL) de la red asociados a los destinos y al Equilibrador de carga de aplicación no están bloqueando la conectividad.

    • Compruebe que el destino tenga suficientes recursos disponibles para aceptar conexiones desde Equilibrador de carga de aplicación.

    • Compruebe el estado de todas las aplicaciones que se ejecuten en el destino.

    • Las respuestas a las comprobaciones de estado del Equilibrador de carga de aplicación se pueden ver en los registros de aplicaciones de cada destino. Para obtener más información, consulte Códigos de motivo de comprobación de estado.

  • Mal estado: comprobaciones de estado no superadas

    • Compruebe el estado de todas las aplicaciones que se ejecuten en el destino.

    • Compruebe que el destino esté escuchando el tráfico en el puerto de la comprobación de estado.

      Cuando se utiliza un oyente HTTPS

      Puede seleccionar qué política de seguridad se utiliza para las conexiones frontend. La política de seguridad utilizada para las conexiones backend se selecciona automáticamente en función de la política de seguridad frontend que se utilice.

      • Si el oyente HTTPS utiliza una política de seguridad de TLS 1.3 para las conexiones frontend, se utiliza la política de seguridad ELBSecurityPolicy-TLS13-1-0-2021-06 para las conexiones de back-end.

      • Si el oyente HTTPS no utiliza una política de seguridad de TLS 1.3 para las conexiones frontend, se utiliza la política de seguridad ELBSecurityPolicy-2016-08 para las conexiones de back-end.

      Para obtener más información, consulte Políticas de seguridad.

    • Compruebe que el destino proporciona un certificado de servidor y una clave con el formato correcto especificado en la política de seguridad.

    • Compruebe que el destino admite uno o varios cifrados coincidentes y un protocolo que proporciona el Equilibrador de carga de aplicación para establecer protocolos de enlace TLS.