View a markdown version of this page

S3 檔案最佳實務 - Amazon Simple Storage Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

S3 檔案最佳實務

此頁面說明使用 S3 檔案系統的建議最佳實務。

效能和成本最佳化

  • 平行處理工作負載 – S3 檔案旨在支援高度平行工作負載。將讀取分散到多個檔案和多個運算執行個體,有助於將彙總輸送量最大化。您也可以在相同儲存貯體中建立多個範圍為不同特定字首的檔案系統 (而不是在整個儲存貯體上建立一個檔案系統),以水平擴展並改善彙總輸送量。

  • 將您的檔案系統範圍限定為工作負載所需的最小字首,以將重新命名的影響降至最低 – S3 沒有目錄的原生概念。當您重新命名或移動目錄時,S3 檔案必須使用更新的金鑰將資料寫入新物件,並刪除該目錄中每個檔案的原始檔案。使用數百萬個檔案重新命名目錄可以大幅增加 S3 請求成本和同步時間。將您的檔案系統範圍限定在您的作用中資料集,或建構您的資料,以便您預期重新命名的目錄包含較少的檔案。如需詳細資訊,請參閱了解重新命名和移動操作的影響

  • 使用大型 IO 大小 – S3 Files 會測量每個至少 32 KB 的讀取和寫入操作。使用較大的 IO 大小 (1 MB 或更多) 可攤銷每個操作的額外負荷,而且比許多小型讀取或寫入更具成本效益。使用掛載協助程式時,預設的 NFS 讀取和寫入緩衝區大小會設定為 1 MB,以獲得最佳效能。

  • 調校匯入組態中的 sizeLessThan 值以符合您的檔案大小 – 根據預設,S3 檔案會在您第一次存取目錄時快取小於 128 KB 的檔案資料。大於此閾值的檔案會直接從 S3 讀取。如果您的工作負載對較大的檔案執行小型延遲敏感讀取,請增加 sizeLessThan 閾值,以符合檔案系統的高效能儲存體上所需的檔案大小,以實現低延遲存取。如需詳細資訊,請參閱自訂 S3 檔案的同步

  • 設定過期時段以符合工作負載生命週期 – 尚未在過期時段內讀取的資料會自動從檔案系統中移除。對於批次任務或訓練執行等短期工作負載,請使用較短的過期時間 (1-7 天) 將儲存成本降至最低。對於在幾週內重新檢視相同資料的工作負載,請使用較長的過期時間 (30–90 天) 來繼續受益於低延遲。如需詳細資訊,請參閱自訂 S3 檔案的同步

  • 針對混合工作負載使用字首範圍規則 – 如果您的儲存貯體同時包含經常存取和不常存取的資料,請為每個字首建立個別的匯入規則。這可讓您積極匯入熱字首的資料,同時保留僅限中繼資料的冷字首。如需詳細資訊,請參閱自訂 S3 檔案的同步

  • 在每個可用區域中建立掛載目標 – 我們建議您在您操作的每個可用區域中建立一個掛載目標,以便您可以降低跨可用區域資料傳輸成本並改善效能。這可確保您的運算資源一律具有檔案系統的本機網路路徑,同時改善可用性和延遲。當您使用 AWS 管理主控台建立檔案系統時,S3 檔案會自動在所選 VPC 的每個可用區域中建立一個掛載目標。

同步

  • 了解 S3 檔案一致性模型 – 當檔案系統中的檔案與 S3 儲存貯體中的對應物件同時修改時,S3 檔案會將 S3 儲存貯體視為事實來源,並將檔案移至失物清單。若要避免衝突,請指定一個路徑 (檔案系統或 S3) 做為主要寫入器。

  • 監控同步運作狀態 – 使用 CloudWatch 指標來追蹤檔案系統和 S3 儲存貯體之間的同步狀態。不斷增長PendingExports表示您的工作負載產生的變更比同步速率快,這表示同步需要更長的時間才能完成。非零 ExportFailures CloudWatch 指標表示無法匯出且需要動作的檔案。如需詳細資訊,請參閱對 S3 檔案進行故障診斷

存取控制

  • 遵循最低權限原則 – 僅授予每個 IAM 角色和檔案系統政策所需的最低許可。例如,如果運算資源只需要從檔案系統讀取資料,請連接 AmazonS3FilesClientReadOnlyAccess受管政策,而非 AmazonS3FilesClientFullAccess。此外,請考慮建立範圍限定於特定字首而非整個儲存貯體的檔案系統,以便用戶端只能存取該字首內的資料。

  • 請勿修改 S3 檔案 IAM 角色 – 請勿修改或刪除 S3 檔案擔任的 IAM 角色,以與您的 S3 儲存貯體同步。變更或移除此角色可能會中斷檔案系統和 S3 儲存貯體之間的同步。

  • 請勿修改 S3 檔案 EventBridge 規則 – S3 檔案會建立 EventBridge 規則 (字首為 DO-NOT-DELETE-S3-Files),以偵測 S3 儲存貯體中的變更。請勿停用、修改或刪除此規則。移除它可防止 S3 檔案偵測儲存貯體中新的或變更的物件,導致您的檔案系統過時。

  • 考慮限制對 所寫入日誌的存取 efs-utils – 會將 S3 物件金鑰名稱直接efs-utils寫入其存放在目錄 的日誌中/var/log/amazon/efs。如果您的 S3 金鑰名稱包含敏感資訊,您應該透過 POSIX 許可限制對此目錄的存取。例如,您可以透過命令 限制存取sudo chmod 700 /var/log/amazon/efs

監控

  • 同步失敗時設定警示 – 在 上建立 CloudWatch 警示ExportFailuresImportFailures並在檔案無法同步時收到通知。失敗的匯出可能表示許可問題、加密金鑰問題或路徑長度限制。如需詳細資訊,請參閱對 S3 檔案進行故障診斷