¿Cómo puedo solucionar un error HTTP 500 o 503 de Amazon S3?

5 minutos de lectura
0

Cuando hago una solicitud a Amazon Simple Storage Service (Amazon S3), Amazon S3 devuelve un error de estado 5xx. ¿Cómo puedo solucionar estos errores?

Breve descripción

Amazon S3 puede devolver uno de los siguientes errores de estado 5xx:

  • AmazonS3Exception: Internal Error (Service: Amazon S3; Status Code: 500; Error Code: 500 Internal Error; Request ID: A4DBBEXAMPLE2C4D)
  • AmazonS3Exception: Slow Down (Service: Amazon S3; Status Code: 503; Error Code: 503 Slow Down; Request ID: A4DBBEXAMPLE2C4D)

El código de error 500 Internal Error indica que Amazon S3 no puede gestionar la solicitud en ese momento. El código de error 503 Slow Down suele indicar que el número de solicitudes al bucket de S3 es muy alto. Por ejemplo, puede enviar 3500 solicitudes PUT/COPY/POST/DELETE o 5500 solicitudes GET/HEAD por segundo por prefijo en un bucket de S3. Sin embargo, en algunos casos, Amazon S3 puede devolver una respuesta 503 Slow Down si sus solicitudes superan la cantidad de ancho de banda disponible para la copia entre regiones.

Dado que Amazon S3 es un servicio distribuido, se espera un porcentaje muy pequeño de errores 5xx durante el uso normal del servicio. Se pueden repetir todas las solicitudes de Amazon S3 que devuelvan errores 5xx. Esto significa que se recomienda disponer de un mecanismo de tolerancia a errores o implementar una lógica de reintento para cualquier aplicación que realice solicitudes a Amazon S3. De este modo, S3 puede recuperarse de estos errores.

Para resolver o evitar los errores de estado 5xx, puede hacer lo siguiente:

  • Utilizar un mecanismo de reintento en la aplicación para realizar solicitudes.
  • Configurar la aplicación para aumentar las tasas de solicitudes de forma gradual.
  • Distribuir los objetos entre varios prefijos.
  • Supervisar el número de respuestas de error 5xx.

Nota: Amazon S3 no asigna recursos adicionales para cada prefijo nuevo. Se escala automáticamente en función de los patrones de llamada. A medida que aumenta la tasa de solicitudes, Amazon S3 se optimiza dinámicamente para la nueva tasa de solicitudes.

Resolución

Uso de un mecanismo de reintento en la aplicación para realizar solicitudes

Debido a la naturaleza distribuida de Amazon S3, se pueden volver a intentar las solicitudes que devuelven los errores 500 o 503. Se recomienda crear una lógica de reintento en las aplicaciones que realizan solicitudes a Amazon S3.

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. La mayoría de los algoritmos de retroceso exponencial utilizan la fluctuación (retraso aleatorio) para evitar colisiones sucesivas. Para obtener más información, consulte Reintentos de errores y retroceso exponencial en AWS.

Configuración de la aplicación para aumentar las tasas de solicitudes de forma gradual

Para evitar el error 503 Slow Down, configure la aplicación para que comience con una tasa de solicitudes (transacciones por segundo) más baja. A continuación, aumente exponencialmente la tasa de solicitudes de la aplicación. Amazon S3 escala automáticamente para gestionar una tasa de solicitudes más alta.

Distribución de los objetos entre varios prefijos

Las tasas de solicitud descritas en las directrices de rendimiento y los patrones de diseño se aplican por prefijo en un bucket de S3. Para configurar su bucket de manera que gestione tasas generales de solicitudes más altas y evitar los errores 503 Slow Down, puede distribuir los objetos entre varios prefijos. Por ejemplo, si utiliza el bucket de S3 para almacenar imágenes y vídeos, puede distribuir los archivos en dos prefijos similares a los siguientes:

  • mybucket/images
  • mybucket/videos

Si la tasa de solicitudes de los prefijos aumenta gradualmente, Amazon S3 se escala para gestionar las solicitudes de cada uno de los dos prefijos. S3 escalará para gestionar 3500 solicitudes PUT/POST/DELETE o 5500 solicitudes GET por segundo. Como resultado, la tasa general de solicitudes gestionada por el bucket se duplica.

Supervisión del número de respuestas de error de estado 5xx

Para controlar el número de respuestas de error de estado 5xx que recibe, puede usar una de estas opciones:

Solución de problemas adicionales

Si sigue registrando tasas de error de estado 5xx altas, póngase en contacto con AWS Support. Incluya los pares de ID de solicitud de Amazon S3 para las solicitudes que fallaron con un código de error de estado 5xx.


Información relacionada

Solución de problemas de Amazon S3

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año