Saltar al contenido

¿Cómo soluciono los errores "503 Service Unavailable" de CloudFront?

3 minutos de lectura
0

Mi distribución de Amazon CloudFront recibió un error "503 Service Unavailable".

Resolución

Para resolver un código de estado HTTP 503 (servicio no disponible), realiza las siguientes acciones para corregir el error.

Errores HTTP 503 de tu servidor de origen

Si tienes problemas de rendimiento en el servidor de origen o el servidor no está disponible, es posible que recibas el error "503 Service Unavailable".

Para solucionar este problema, consulta el artículo El servidor de origen no tiene capacidad suficiente para gestionar la velocidad de las solicitudes.

Errores HTTP 503 con Lambda@Edge o la función CloudFront

Si hay excepciones sin controlar en la función de AWS Lambda o errores en el código, es posible que veas el error "503 Service Unavailable".

Para corregir el código, añade instrucciones de registro a las funciones de Lambda. Revisa los registros de Lambda@Edge y los registros de CloudFront Functions para comprobar que CloudFront funciona correctamente. Para más información, consulta Solucionar problemas de invocación en Lambda y Solucionar problemas de ejecución en Lambda.

Si superas la cuota de Lambda@Edge, Lambda bloquea la ejecución de la función de Lambda y CloudFront devuelve un error HTTP 503. Para resolver un error HTTP 503 provocado por el exceso de cuotas, consulta ¿Cómo se solucionan los errores 502 y 503 que provocan las funciones de Lambda@Edge en CloudFront?

Errores HTTP 503 con Amazon S3

Si tienes aplicaciones integradas o los orígenes son de Amazon Simple Storage Service (Amazon S3), es posible que veas un error HTTP 500 o 503. Para resolver estos errores, consulta ¿Cómo soluciono un error HTTP 500 o 503 de Amazon S3?

Impedir que CloudFront almacene en la caché errores HTTP 503

CloudFront reenvía de forma predeterminada las respuestas de error desde el origen al cliente. Además, CloudFront almacena en caché la respuesta de error durante 10 segundos.

Si la respuesta de error del origen contiene un encabezado Cache-Control, CloudFront almacena el error en caché con el valor Período de vida (TTL) correspondiente en lugar de los 10 segundos predeterminados. CloudFront no almacena en caché sus propias respuestas de error, a menos que se especifique lo contrario en una respuesta de error personalizada. Puedes crear una respuesta de error personalizada para los errores HTTP 503 con un TTL de 0 segundos para evitar que CloudFront almacene el error en la caché.

Para optimizar la eficiencia de la caché, usa la política CachingOptimized. Esta política establece un TTL mínimo inferior de 1 segundo para las respuestas de error en lugar del valor predeterminado de 10 segundos. Para obtener más información, consulta Usar políticas de caché administradas.

Se recomienda incorporar una lógica de reintentos en las aplicaciones para volver a enviar las solicitudes que devuelven un error HTTP 503. Todos los SDK de AWS tienen un mecanismo de reintento integrado con un algoritmo que utiliza un retroceso exponencial. Este algoritmo implementa tiempos de espera cada vez más prolongados entre reintentos para las respuestas de error consecutivas. Muchos de los algoritmos de retroceso exponencial utilizan la fluctuación (retraso aleatorio) para evitar colisiones sucesivas. Para más información, consulta Comportamiento de reintento.

OFICIAL DE AWSActualizada hace un año