我要如何降低 Amazon S3 意外產生的高額成本?
我 AWS 帳單上的 Amazon Simple Storage Service (Amazon S3) 使用量比預期的高。我想降低成本。
簡短描述
若要確定您產生的 Amazon S3 費用類型,請查看您目前的 Amazon S3 帳單和使用情況。您也可以使用 AWS 使用報告查看產生費用的 S3 儲存貯體。
根據使用類型,請使用下列方法來協助您了解帳單:
- 使用 Amazon S3 Storage Lens 來查看 S3 儲存空間的使用情況和活動。預設儀表板會每天更新您 AWS 帳戶中所有 S3 儲存貯體的儲存指標。
- 使用伺服器存取記錄或 AWS CloudTrail 資料事件來監控對 S3 儲存貯體的請求。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
若要降低 Amazon S3 帳單成本,請執行下列動作。
刪除不完整的分段上傳
啟動分段上傳後,Amazon S3 即會保留所有的檔案上傳部分,直到您完成或結束分段上傳。如果您未完成分段上傳,Amazon S3 即會繼續儲存上傳的部分,並且您需要支付儲存費用。
當您執行 abort-multipart-upload AWS CLI 命令來結束分段上傳時,該命令會刪除未完成的上傳部分。但是,當您結束分段上傳時,其他工具可能會保留不完整上傳的部分。
若要刪除不完整的分段上傳,請使用下列最佳實務:
- 建立生命週期政策,以在指定天數後刪除不完整的分段上傳。
- 使用 ListMultipartUploads Amazon S3 API 呼叫列出您的分段上傳。然後,使用 AbortMultipartUpload 結束失敗或想要取消的分段上傳。
- 使用 Amazon S3 Storage Lens 來判斷您帳戶中各個儲存貯體不完整分段上傳的數量和大小。
- 使用 Amazon S3 Storage Lens 識別哪些 S3 儲存貯體包含分段上傳。
刪除物件的先前版本
**重要:**Amazon S3 無法還原您從儲存貯體刪除的資料。
如果您在儲存貯體上啟用了 S3 版本控制功能,那麼每個物件可能會有多個版本,這些版本都會增加您的儲存成本。
若要檢閱您的物件版本,請使用 Amazon S3 主控台或執行 ListObjectVersions API 呼叫。然後,刪除您不需要的物件版本。
在啟用版本的儲存貯體中,您必須指定物件版本 ID 才能永久刪除物件版本。如果您對物件執行刪除請求,則 Amazon S3 會向該物件新增刪除標記。刪除標記會變成目前的物件版本,而物件則會變成上一個版本。但是,Amazon S3 不會刪除該物件及其版本。
若要管理物件版本,請執行下列動作:
- 建立生命週期規則。
**重要:**在 Amazon S3 中,永久刪除無法復原。請務必檢查生命週期規則的參數。 - 使用 Amazon S3 Storage Lens 指標來判斷目前版本和先前版本的數量,並刪除帳戶中儲存貯體的標記。
檢閱儲存類別變更成本
當您將物件從一個儲存類別變更為另一個儲存類別時,可能會產生費用。
此外,AWS 還會對您在 Amazon S3 Glacier flexible Retrieval 和 Amazon S3 Glacier Deep Archive 中儲存的每個封存物件收取 40 KB 的額外中繼資料費用。依照 S3 標準費率向您收取 8 KB 的費用,依照 S3 Glacier Flexible Retrieval 或 S3 Deep Archive 費率向您收取 32 KB 的費用。
如需詳細資訊,請參閱使用 Amazon S3 生命週期轉換物件。
最佳實務是將多個小型物件彙整成少量的大型物件,以減少開銷成本。
當您設定了將整個儲存貯體的物件轉換至另一個儲存類別的生命週期組態規則時,就會產生 Amazon S3 費用。若要確定生命週期規則是否導致成本增加,請查看 AWS CloudTrail 事件歷史記錄和 Amazon S3 伺服器存取日誌中的 PutBucketLifecycleConfiguration 呼叫。此外,請檢查 S3 生命週期動作的日誌。
為了最佳化儲存成本,最佳實務是使用 S3 Intelligent-Tiering 儲存類別,該儲存類別會根據您的存取需求自動移動資料。
您也可以使用 S3 儲存類別分析來判斷每個儲存類別中有多少資料。
**注意:**您必須為每個儲存貯體設定 S3 儲存類別分析。
檢閱您的資料擷取成本
您儲存在下列儲存類別中的物件會產生資料擷取成本:
- S3 標準 – IA
- S3 單區域-IA
- S3 Glacier Flexible Retrieval
- S3 Glacier Deep Archive 儲存類別
例如,若您從 S3 Glacier Flexible Retrieval 儲存類別擷取物件,則擷取成本取決於您的大量擷取選項。標準擷取的總成本低於加速擷取的總成本。
對於儲存在 S3 Glacier Flexible Retrieval 中的物件,大量截取不會產生費用。若要有助於監控不同的儲存請求和資料使用情況,請使用 S3 Storage Lens 儀表板。
監控儲存貯體的請求
使用下列方法來監控對您的儲存貯體提出的請求,並檢閱因大量請求而產生的費用:
- AWS 不會向您收取開啟伺服器存取記錄的費用。不過,您仍需支付此功能傳送給您日誌檔案所佔用的標準儲存空間費用。
- 使用 AWS CloudTrail 物件層級記錄會產生費用。
- 使用 Amazon CloudWatch 指標會產生費用。
若要減少資料傳出費用的成本,您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體存取儲存貯體。Amazon EC2 執行個體必須位於 Amazon Virtual Private Cloud (Amazon VPC),其位置與儲存貯體的 AWS 區域相同。
查看儲存貯體大小的變化
您可以使用 S3 主控台、AWS CLI 命令或 CloudWatch 來檢閱儲存貯體大小的變更。
若要在主控台中比較儲存貯體目前與先前的大小,請完成下列步驟:
- 開啟 Amazon S3 console (Amazon S3 主控台)。
- 選擇 Buckets (儲存貯體),然後選取您的儲存貯體。
- 選擇 Management (管理) 索引標籤。
- 選擇 Metrics (指標)。
或者,執行以下 ls AWS CLI 命令:
aws s3 ls --summarize --human-readable --recursive s3:///bucket-name
**注意:**將 bucket-name 替換為您儲存貯體的名稱。
輸出範例:
2021-10-07 21:32:57 452 Bytes foo/bar/car/petrol 2021-10-07 21:32:57 896 Bytes foo/bar/truck/diesel 2021-10-07 21:32:57 189 Bytes foo/bar/hybrid/battery 2021-10-07 21:32:57 398 Bytes vehicles.txt Total Objects: 4 Total Size: 2.9 MiB
您也可以使用 CloudWatch 來監控您的儲存指標。若要監控每日、每週及每月的儲存貯體大小變化,請使用 S3 Storage Lens。
檢閱個別儲存貯體的成本
若要識別哪個儲存貯體產生較高的成本,請在您的儲存貯體上啟用成本配置標籤。然後,使用 AWS Cost Explorer 檢查您的儲存貯體。如需詳細資訊,請參閱如何尋找 Amazon S3 儲存貯體的成本?
了解您的使用量與費用的關係
您的使用量報告會以每小時位元記錄儲存使用量,而您的帳單報告則以每月 GB (GB-months) 記錄儲存使用量。若要了解您的儲存使用量與儲存費用的關係,請將每小時位元轉換為每月 GB。若要查看範例轉換,請參閱 Amazon S3 常見問題集中的使用 Amazon S3 時如何收費和計費?
您可以從 AWS 帳單與成本管理儀表板下載 Amazon S3 使用量報告。或者,建立 S3 Storage Lens 儀表板以取得詳細的儲存空間和計費指標。
相關資訊
相關內容
- 已提問 2 年前
- 已提問 1 年前
- 已提問 1 年前
AWS 官方已更新 3 年前