Linee guida sulle prestazioni per Amazon S3 - Amazon Simple Storage Service

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.

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:

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'RangeHTTPintestazione 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 e non accelerate tra le regioni Amazon S3. Questo strumento utilizza caricamenti in più parti per trasferire un file dal browser in uso a diverse regioni Amazon S3 con e senza l'utilizzo di Amazon S3 Transfer Acceleration.

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.