Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Linee guida sulle prestazioni per Amazon S3
Per sviluppare applicazioni che caricano e recuperano oggetti da Amazon S3, segui le nostre linee guida sulle best practice per ottimizzare le prestazioni. Offriamo anche Modelli di progettazione delle prestazioni per Amazon S3 più dettagliati.
Per ottenere prestazioni ottimali per le applicazioni su Amazon S3, consigliamo di adottare le linee guida seguenti.
Argomenti
- Misurare le prestazioni
- Ridimensiona le connessioni di storage orizzontalmente
- Usa il recupero di intervalli di byte
- Nuovi tentativi di richieste per applicazioni sensibili alla latenza
- Combina Amazon S3 (storage) e Amazon EC2 (elaborazione) nello stesso Regione AWS
- Usa Amazon S3 Transfer Acceleration per ridurre al minimo la latenza causata dalla distanza
- Usa la versione più recente di AWS SDKs
Misurare le prestazioni
Quando ottimizzi le prestazioni, prendi in considerazione la velocità di trasmissione e DRAM i requisiti CPU della rete. A seconda della combinazione di richieste per queste diverse risorse, potrebbe valere la pena valutare diversi tipi di EC2 istanze Amazon. Per ulteriori informazioni sui tipi di istanza, consulta Instance Types nella Amazon EC2 User Guide.
È anche utile esaminare il tempo di DNS ricerca, la latenza e la velocità di trasferimento dei dati utilizzando strumenti di HTTP analisi per misurare le prestazioni.
Per comprendere i requisiti relativi alle prestazioni e ottimizzare le prestazioni dell'applicazione, puoi anche monitorare le risposte di errore 503 che ricevi. Il monitoraggio di determinate metriche delle prestazioni può comportare spese aggiuntive. Per ulteriori informazioni, consulta i Prezzi di Amazon S3
Monitoraggio del numero di risposte all'errore di stato 503 (Rallentamento)
Per monitorare il numero di risposte all'errore di stato 503 che ricevi, puoi utilizzare una delle seguenti opzioni:
Usa i parametri delle CloudWatch richieste di Amazon per Amazon S3. Le metriche della CloudWatch richiesta includono una metrica per 5xx risposte allo stato. Per ulteriori informazioni sulle metriche delle CloudWatch richieste, consulta. Monitoraggio delle metriche con Amazon CloudWatch
Utilizza il conteggio dell'errore 503 (Servizio non disponibile) disponibile nella sezione delle metriche avanzate di Amazon S3 Storage Lens. Per ulteriori informazioni, consulta Utilizzo dei parametri di S3 Storage Lens per migliorare le prestazioni.
Utilizza la registrazione degli accessi al server Amazon S3 Con la registrazione degli accessi al server, puoi filtrare ed esaminare tutte le richieste che ricevono risposte 503 (Errore interno). Puoi anche utilizzare Amazon Athena per analizzare i log. Per ulteriori informazioni sulla registrazione degli accessi al server, consulta Registrazione delle richieste con registrazione dell'accesso al server.
Monitorando il numero di codici di errore di stato HTTP 503, è spesso possibile ottenere informazioni preziose su quali prefissi, chiavi o bucket ricevono il maggior numero di richieste.
Ridimensiona le connessioni di storage orizzontalmente
Distribuire le richieste su più connessioni è uno schema di progettazione comune per scalare orizzontalmente le prestazioni. Se devi creare applicazioni ad alte prestazioni, pensa ad Amazon S3 come un sistema distribuito di dimensioni molto grandi, non un singolo endpoint di rete come un server di storage tradizionale. Puoi ottenere prestazioni ottimali inviando più richieste simultanee ad Amazon S3. Distribuisci queste richieste su connessioni separate per massimizzare la larghezza di banda accessibile da Amazon S3. Amazon S3 non impone limiti al numero di connessioni effettuate al bucket.
Usa il recupero di intervalli di byte
Utilizzando l'Range
HTTPintestazione in una richiesta GETObject, è possibile recuperare un intervallo di byte da un oggetto, trasferendo solo la parte specificata. Puoi utilizzare connessioni simultanee ad Amazon S3 per recuperare diversi intervalli di byte all'interno dello stesso oggetto. Questa operazione ti permette di ottenere un throughput aggregato superiore rispetto a una singola richiesta whole-object. Recuperare range minori da oggetti più grandi permette inoltre alla tua applicazione di migliorare i tempi di ripetizione quando le richieste sono interrotte. Per ulteriori informazioni, consulta Download di oggetti.
Le dimensioni tipiche per le richieste byte-range sono di 8 o 16 MB. Se gli oggetti PUT utilizzano un caricamento in più parti, è consigliabile GET inserirli nelle stesse dimensioni delle parti (o almeno allineati ai limiti delle parti) per ottenere prestazioni ottimali. GETle richieste possono riguardare direttamente le singole parti; ad esempio, GET ?partNumber=N.
Nuovi tentativi di richieste per applicazioni sensibili alla latenza
I timeout e i tentativi aggressivi aiutano a mantenere la latenza uniforme. Poiché Amazon S3 opera su vasta scala, se la prima richiesta è lenta, un nuovo tentativo di richiesta adotterà un percorso diverso e riuscirà rapidamente. AWS SDKsDispongono di valori di timeout e riprova configurabili che è possibile regolare in base alle tolleranze dell'applicazione specifica.
Combina Amazon S3 (storage) e Amazon EC2 (elaborazione) nello stesso Regione AWS
Sebbene i nomi dei bucket S3 siano univoci a livello globale, ogni bucket viene archiviato in una regione che sceglierai durante la creazione del bucket stesso. Per ulteriori informazioni sulle linee guida per la denominazione dei bucket, consulta Panoramica dei bucket e Regole di denominazione dei bucket. Per ottimizzare le prestazioni, ti consigliamo di accedere al bucket dalle EC2 istanze Amazon nello stesso modo, Regione AWS quando possibile. Questa operazione permette di ridurre la latenza e i costi di trasferimento dei dati.
Per ulteriori informazioni sui costi dl trasferimento dei dati, consulta Prezzi di Amazon S3
Usa Amazon S3 Transfer Acceleration per ridurre al minimo la latenza causata dalla distanza
Configurazione di trasferimenti veloci e sicuri di file con Amazon S3 Transfer Acceleration gestisce trasferimenti di file veloci, facili e sicuri su vaste distanze geografiche tra il client e un bucket S3. Transfer Acceleration sfrutta le edge location distribuite a livello globale di Amazon CloudFront. Quando arrivano in una edge location, i dati vengono instradati ad Amazon S3 attraverso un percorso di rete ottimizzato. Transfer Acceleration è ideale per il trasferimento regolare di gigabyte e terabyte di dati sui diversi continenti. È inoltre utile per i clienti che effettuano il caricamento in un bucket centralizzato da tutto il mondo.
Puoi utilizzare lo strumento di confronto della velocità di trasferimento di Amazon S3 per confrontare le velocità di caricamento accelerate
Usa la versione più recente di AWS SDKs
AWS SDKsForniscono supporto integrato per molte delle linee guida consigliate per l'ottimizzazione delle prestazioni di Amazon S3. SDKsForniscono un modo più semplice API per sfruttare Amazon S3 dall'interno di un'applicazione e vengono regolarmente aggiornati per seguire le best practice più recenti. Ad esempio, SDKs includono la logica che consente di riprovare automaticamente le richieste relative agli errori HTTP 503 e stanno investendo in codice per rispondere e adattarsi alle connessioni lente.
Forniscono SDKs anche il Transfer Manager, che automatizza le connessioni a scalabilità orizzontale per soddisfare migliaia di richieste al secondo, utilizzando richieste con intervallo di byte, ove appropriato. È importante utilizzare la versione più recente di per ottenere le più recenti funzionalità di ottimizzazione delle AWS SDKs prestazioni.
È inoltre possibile ottimizzare le prestazioni quando si utilizzano HTTP REST API le richieste. Quando si utilizza il RESTAPI, è necessario seguire le stesse best practice che fanno parte diSDKs. Consenti i timeout e i tentativi sulle richieste lente e le connessioni multiple per permettere il recupero dei dati degli oggetti in parallelo. Per informazioni sull'utilizzo di RESTAPI, consulta Amazon Simple Storage Service API Reference.