Come faccio a risolvere un errore HTTP 500 o 503 di Amazon S3?

5 minuti di lettura
0

Quando invio una richiesta ad Amazon Simple Storage Service (Amazon S3), Amazon S3 restituisce un errore di stato 5xx. Come posso risolvere questi errori?

Descrizione breve

Amazon S3 può restituire uno dei seguenti errori di stato 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)

Il codice di errore 500 Internal Error (Errore interno) indica che Amazon S3 non è in grado di gestire la richiesta in quel momento. Di solito il codice di errore 503 Slow Down (Rallentamento) indica che il numero di richieste al bucket S3 è molto elevato. Ad esempio, è possibile inviare 3.500 richieste PUT, COPY, POST o DELETE, oppure 5.500 richieste GET/HEAD al secondo per prefisso in un bucket S3. Tuttavia, in alcuni casi, se le richieste superano la larghezza di banda disponibile per la copia in più regioni, Amazon S3 può restituire una risposta 503 Slow Down.

Amazon S3 è un servizio distribuito, quindi è prevista una percentuale di errori 5xx molto bassa durante il normale utilizzo del servizio. Tutte le richieste che restituiscono errori 5xx da Amazon S3 possono essere ritentate. Ciò significa che è buona norma disporre di un meccanismo di tolleranza agli errori o implementare una logica di ripetizione dei tentativi per tutte le applicazioni che effettuano richieste ad Amazon S3. In questo modo, S3 può ripristinare questi errori.

Per risolvere o evitare gli errori di stato 5xx, considera i seguenti approcci:

  • Usa un meccanismo di ripetizione dei tentativi nell'applicazione che effettua le richieste.
  • Configura la tua applicazione per aumentare gradualmente i tassi di richiesta.
  • Distribuisci gli oggetti su più prefissi.
  • Monitora il numero di risposte agli errori 5xx.

Nota: Amazon S3 non assegna risorse aggiuntive per ogni nuovo prefisso. Si ridimensiona automaticamente in base ai modelli di chiamata. Con l'aumentare della frequenza delle richieste, Amazon S3 ottimizza dinamicamente la nuova percentuale di richieste.

Risoluzione

Usa un meccanismo di ripetizione dei tentativi nell'applicazione che effettua le richieste

A causa della natura distribuita di Amazon S3, le richieste che restituiscono errori 500 o 503 possono essere ritentate. È consigliabile integrare una logica di ripetizione dei tentativi nelle applicazioni che inviano richieste ad Amazon S3.

Tutti gli SDK AWS dispongono di un meccanismo di ripetizione integrato con un algoritmo che utilizza un backoff esponenziale. Questo algoritmo implementa tempi di attesa sempre più lunghi tra i tentativi per le risposte di errore consecutive. La maggior parte degli algoritmi di backoff esponenziale utilizza il jitter (ritardo casuale) per prevenire collisioni successive. Per ulteriori informazioni, consulta Nuovi tentativi in caso di errore e backoff esponenziale in AWS.

Configura la tua applicazione per aumentare i tassi di richiesta gradualmente

Per evitare l'errore 503 Slow Down, configura l'applicazione in modo che inizi con una frequenza di richieste inferiore (transazioni al secondo). Quindi, aumenta in modo esponenziale il tasso di richieste dell'applicazione. Amazon S3 si ridimensiona automaticamente per gestire una frequenza di richieste più elevata.

Distribuisci gli oggetti su più prefissi

Le frequenze delle richieste descritte nelle linee guida sulle prestazioni e nei modelli di progettazione si applicano per prefisso in un bucket S3. Per configurare il bucket in modo da gestire tassi di richiesta complessivamente più elevati ed evitare errori 503 Slow Down, puoi distribuire gli oggetti su più prefissi. Ad esempio, se utilizzi il bucket S3 per archiviare immagini e video, puoi distribuire i file in due prefissi simili ai seguenti:

  • mybucket/images
  • mybucket/videos

Se la frequenza delle richieste sui prefissi aumenta gradualmente, Amazon S3 aumenta le proprie risorse in modo da gestire le richieste per ciascuno dei due prefissi. S3 aumenterà le proprie risorse per gestire 3.500 richieste PUT/POST/DELETE o 5.500 richieste GET al secondo. Di conseguenza, il tasso complessivo di richieste gestite dal bucket raddoppia.

Monitora il numero di risposte agli errori di stato 5xx

Per monitorare il numero di risposte agli errori di stato 5xx che ricevi, puoi utilizzare una delle seguenti opzioni:

Risoluzione dei problemi aggiuntiva

Se continui a riscontrare un tasso di errore di stato 5xx elevato, contatta il Supporto AWS. Includi le coppie di ID di richiesta Amazon S3 per le richieste non riuscite con un codice di errore di stato 5xx.


Informazioni correlate

Risoluzione dei problemi di Amazon S3

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa