View a markdown version of this page

Le migliori pratiche per i file 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à.

Le migliori pratiche per i file S3

Questa pagina descrive le best practice consigliate per lavorare con i file system S3.

Ottimizzazione delle prestazioni e dei costi

  • Parallelizza i tuoi carichi di lavoro: S3 Files è progettato per supportare carichi di lavoro altamente paralleli. La distribuzione delle letture su più file e più istanze di calcolo aiuta a massimizzare il throughput aggregato. Puoi anche creare più file system con ambito di diversi prefissi specifici all'interno dello stesso bucket (invece di creare un file system sull'intero bucket) per scalare orizzontalmente e migliorare il throughput aggregato.

  • Assegna il file system al prefisso minimo necessario al carico di lavoro per ridurre al minimo l'impatto delle ridenominazioni: S3 non ha un concetto nativo di directory. Quando si rinomina o si sposta una directory, S3 Files deve scrivere i dati su un nuovo oggetto con la chiave aggiornata ed eliminare l'originale per ogni file in quella directory. La ridenominazione delle directory con decine di milioni di file può aumentare significativamente i costi delle richieste S3 e i tempi di sincronizzazione. Ambina il tuo file system in base al set di dati attivo o struttura i dati in modo che le directory che prevedi di rinominare contengano meno file. Per ulteriori informazioni, consulta Comprendere l'impatto delle operazioni di ridenominazione e spostamento.

  • Utilizzate I/O di grandi dimensioni: S3 Files misura ogni operazione di lettura e scrittura a un minimo di 32 KB. L'utilizzo di I/O di dimensioni maggiori (1 MB o più) ammortizza il sovraccarico operativo ed è più conveniente rispetto a molte letture o scritture di piccole dimensioni. Quando si utilizza il mount helper, le dimensioni predefinite del buffer di lettura e scrittura NFS sono impostate su 1 MB per prestazioni ottimali.

  • Regola il LessThan valore delle dimensioni nella configurazione di importazione in modo che corrisponda alle dimensioni dei file: per impostazione predefinita, S3 Files memorizza nella cache i dati per i file di dimensioni inferiori a 128 KB quando accedi per la prima volta a una directory. I file più grandi di questa soglia vengono letti direttamente da S3. Se il carico di lavoro esegue letture ridotte e sensibili alla latenza su file di grandi dimensioni, aumenta la LessThan soglia di dimensione in modo che corrisponda alle dimensioni dei file necessarie sullo storage ad alte prestazioni del file system per un accesso a bassa latenza. Per ulteriori informazioni, consulta Personalizzazione della sincronizzazione per i file S3.

  • Imposta le finestre di scadenza in base al ciclo di vita del carico di lavoro: i dati che non sono stati letti entro la finestra di scadenza vengono rimossi automaticamente dal file system. Per carichi di lavoro di breve durata, ad esempio processi in batch o cicli di formazione, utilizza una scadenza più breve (1—7 giorni) per ridurre al minimo i costi di archiviazione. Per i carichi di lavoro che rivisitano gli stessi dati per settimane, utilizza una scadenza più lunga (30-90 giorni) per continuare a beneficiare della bassa latenza. Per ulteriori informazioni, consulta Personalizzazione della sincronizzazione per i file S3.

  • Usa regole con ambito di prefisso per carichi di lavoro misti: se il bucket contiene dati a cui si accede di frequente e a cui si accede raramente, crea regole di importazione separate per ogni prefisso. Ciò ti consente di importare i dati in modo aggressivo per i prefissi caldi mantenendo i soli metadati dei prefissi freddi. Per ulteriori informazioni, consulta Personalizzazione della sincronizzazione per i file S3.

  • Crea un target di montaggio in ogni zona di disponibilità: ti consigliamo di creare un target di montaggio in ogni zona di disponibilità in cui operi in modo da ridurre i costi di trasferimento dei dati tra le diverse AZ e migliorare le prestazioni. Ciò garantisce che le risorse di elaborazione dispongano sempre di un percorso di rete locale verso il file system, migliorando sia la disponibilità che la latenza. Quando si crea un file system utilizzando la Console di AWS gestione, S3 Files crea automaticamente una destinazione di montaggio in ogni zona di disponibilità del VPC selezionato.

Sincronizzazione

  • Comprendi il modello di coerenza di S3 Files: quando un file nel file system viene modificato contemporaneamente all'oggetto corrispondente nel bucket S3, S3 Files considera il bucket S3 come fonte di verità e sposta il file nella directory degli oggetti smarriti. Per evitare conflitti, designate un percorso (file system o S3) come autore principale.

  • Monitora lo stato della sincronizzazione: utilizza CloudWatch le metriche per monitorare lo stato della sincronizzazione tra il tuo file system e il bucket S3. Un aumento PendingExports indica che il carico di lavoro sta generando modifiche più velocemente della velocità di sincronizzazione, il che significa che il completamento della sincronizzazione richiederà più tempo. Una ExportFailures CloudWatch metrica diversa da zero indica i file che non possono essere esportati e richiedono un'azione. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi ai file S3.

Controllo accessi

  • Segui il principio del privilegio minimo: concedi solo le autorizzazioni minime richieste per ogni ruolo IAM e policy del file system. Ad esempio, se una risorsa di calcolo deve solo leggere i dati dal file system, allega la policy AmazonS3FilesClientReadOnlyAccess gestita anziché. AmazonS3FilesClientFullAccess Inoltre, valuta la possibilità di creare il tuo file system con un prefisso specifico anziché l'intero bucket, in modo che i client possano accedere ai dati solo all'interno di quel prefisso.

  • Non modificare il ruolo IAM di S3 Files: non modificate o eliminate il ruolo IAM che S3 Files assume per sincronizzare con il bucket S3. La modifica o la rimozione di questo ruolo può interrompere la sincronizzazione tra il file system e il bucket S3.

  • Non modificare la regola S3 Files: S3 Files crea una EventBridge EventBridge regola (preceduta da DO-NOT-DELETE-S3-Files) per rilevare le modifiche nel bucket S3. Non disattivare, modificare o eliminare questa regola. La sua rimozione impedisce a S3 Files di rilevare oggetti nuovi o modificati nel bucket, causando l'obsolescenza del file system.

  • Valuta la possibilità di limitare l'accesso ai log scritti da efs-utils: efs-utils scrive i nomi delle chiavi degli oggetti S3 direttamente nei log che memorizza nella directory. /var/log/amazon/efs Se i nomi delle chiavi S3 contengono informazioni sensibili, è necessario limitare l'accesso a questa directory tramite le autorizzazioni POSIX. Ad esempio, è possibile limitare l'accesso tramite il comando. sudo chmod 700 /var/log/amazon/efs

Monitoraggio

  • Imposta allarmi in caso di errori di sincronizzazione: crea CloudWatch allarmi attivi ImportFailures e ricevi una notifica quando i file non riescono ExportFailures a sincronizzarsi. Le esportazioni non riuscite possono indicare problemi di autorizzazione, problemi con le chiavi di crittografia o limiti di lunghezza del percorso. Per ulteriori informazioni, consulta Risoluzione dei problemi relativi ai file S3.

Migrazione

Per migrare i dati dallo storage locale al bucket S3 per la prima volta, ti consigliamo di utilizzare. AWS DataSync DataSync automatizza e accelera il trasferimento di set di dati di grandi dimensioni e preserva i metadati e le autorizzazioni dei file durante la migrazione. Per ulteriori informazioni, vedi Che cos'è? AWS DataSync .