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 per le prestazioni di 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
Quando ottimizzi le prestazioni, devi verificare i requisiti che riguardano il throughput della rete, la CPU e la DRAM. 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.
Durante la misurazione delle prestazioni, è utile anche verificare i tempi, la latenza e la velocità del trasferimento dei dati DNS utilizzando strumenti di analisi HTTP.
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 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 sui parametri di richiesta di CloudWatch , 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 del codice di errore di stato HTTP 503, spesso puoi ottenere informazioni dettagliate preziose su quali prefissi, chiavi o bucket ricevono il maggior numero di richieste di limitazione (della larghezza di banda della rete).
Scalare orizzontalmente le connessioni di archiviazione
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.
Utilizza i recuperi con intervallo di byte
Utilizzando l'intestazione HTTP Range
in una richiesta GET Object, puoi 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 sono oggetti PUT che utilizzano un caricamento in più parti, è buona pratica trasformarli in oggetti GET nelle stesse dimensioni della parte (o almeno allineati ai limiti della parte) per ottenere le prestazioni migliori. Le richieste GET possono rivolgersi direttamente alle 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 SDKs Dispongono di valori di timeout e tentativi 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 saperne di più sulle linee guida per la denominazione dei bucket, consulta Panoramica sui 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
Utilizza 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.
È possibile utilizzare lo strumento di confronto della velocità di accelerazione dei trasferimenti di Amazon S3
Utilizza la versione più recente di AWS SDKs
AWS SDKs Forniscono supporto integrato per molte delle linee guida consigliate per l'ottimizzazione delle prestazioni di Amazon S3. SDKs Forniscono un'API più semplice per sfruttare Amazon S3 dall'interno di un'applicazione e vengono regolarmente aggiornate per seguire le best practice più recenti. Ad esempio, SDKs includono la logica di inclusione che consente di riprovare automaticamente le richieste relative agli errori HTTP 503 e investono 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.
Puoi inoltre ottimizzare le prestazioni quando utilizzi le richieste dell'API REST HTTP. Quando si utilizza l'API REST, è necessario seguire le stesse best practice che fanno parte di SDKs. 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 della REST API, consulta la Documentazione di riferimento delle API di Amazon Simple Storage Service.