為什麼 Amazon S3 主控台與 Amazon CloudWatch 之間存在儲存和大小指標差異?
上次更新日期:2021 年 12 月 3 日
我發現 Amazon Simple Storage Service (Amazon S3) 主控台中的「計算總大小」數字與 Amazon CloudWatch 每日儲存指標之間存在差異。為什麼兩個來源之間報告的指標中存在差異?
簡短描述
如果您的 CloudWatch 儲存指標與 Amazon S3 主控台中的計算總大小數字之間存在差異,請檢查以下項目是否正確:
- 已啟用物件版本控制。
注意:Amazon S3 中的物件版本控制功能會在您的儲存貯體中保留物件的多個版本。預設情況下,Amazon S3 物件版本控制在儲存貯體上被停用,您必須明確啟用此功能。 - 存在不完整的分段上傳。
注意:不完整的分段上傳在 Amazon S3 主控台中不可見,但在 CloudWatch 指標中會計為儲存的一部分。
若要確定報告差異存在的原因,請檢查是否啟用了物件版本控制,並查找儲存貯體中是否存在分段上傳。這兩個因素可能會導致 CloudWatch 中算出的儲存貯體大小值增大。如需詳細資訊,請參閲儲存貯體的 Amazon S3 CloudWatch 每日儲存指標。
提示:如果 Amazon S3 中有不完整的分段上傳,請考慮建立生命週期組態規則。此生命週期組態規則可以自動清理任何不完整的元件,從而降低資料儲存成本。請注意,生命週期規則以異步方式運作,因此操作可能會有延遲。但是,一旦物件標記為刪除,您將無需再支付儲存費用 (即使物件尚未刪除)。
此外,Amazon S3 監控指標每天記錄一次,因此顯示的可能不是最新資訊。同時,CloudWatch 會即時監控您的 AWS 資源和應用程式。
解決方案
CloudWatch 中的每日儲存指標
在 CloudWatch 中,BucketSizeBytes 指標會擷取所有 Amazon S3 和 Amazon S3 Glacier 儲存類型、物件版本和任何不完整的分段上傳。此值的計算方法是將所有物件大小、儲存貯體中的中繼資料 (目前和非目前物件) 以及所有不完整的分段上傳大小加總。例如,BucketSizeBytes 指標計算儲存於 Amazon S3 儲存貯體中的以下所有物件儲存類別的資料量 (以位元組為單位):
- S3 標準
- S3 智慧型分層
- S3 標準 – IA
- S3 單區域 – IA
- S3 低冗餘儲存
- S3 Glacier Deep Archive
- S3 Glacier
此外,CloudWatch 中的 NumberOfObjects 指標包含儲存於儲存貯體中的所有儲存類別的物件總數。此值計算儲存貯體中的所有物件 (包括目前和非目前物件),以及任何不完整分段上傳的元件總數。NumberOfObjects 指標還會計算儲存貯體中所有版本物件的總數。例如,如果您有同一物件的兩個版本,則這兩個版本將被計為兩個單獨的物件。如需詳細資訊,請參閲指標和維度。
Amazon S3 主控台中的「計算總大小」
若要從 Amazon S3 主控台計算儲存貯體的大小,您可以使用計算總大小動作。然後,Amazon S3 會計算儲存貯體的儲存大小。但請注意,分段上傳以及早期或非目前版本不計入總儲存貯體大小。Amazon S3 僅計算儲存在儲存貯體中的每個物件的目前或最新版本的總數。例如,如果您的儲存貯體中有兩個版本的物件,則 Amazon S3 的儲存計算器只會將它們計為一個物件。因此,在 Amazon S3 主控台中算出的數字小於 CloudWatch 報告的數字。
不完整的分段上傳
若要檢閱不完整的分段上傳清單,請執行 list-multipart-uploads 命令:
aws s3api list-multipart-uploads --bucket <bucket-example>
然後,使用 list-parts 命令和 UploadId 值列出分段上傳中的所有物件:
aws s3api list-parts --bucket <bucket-example> --key large_test_file --upload-id <examplevalue>
建立生命週期規則
若要自動刪除分段上傳,可以建立生命週期組態規則。請按照以下步驟操作:
1. 開啟 Amazon S3 主控台。
2. 選擇 Management (管理) 標籤。
3. 選擇 Create new policy (建立新政策)。
4. 新增政策的名稱。
5. 選擇 Select - Delete expired delete markers or incomplete multipart uploads (選擇 – 刪除過期的刪除標記或不完整的分段上傳)。
6. (可選) 如果您的儲存貯體未經版本控制,則選擇 Delete incomplete multipart uploads (刪除不完整的分段上傳)。
物件版本控制
若要檢閱和稽核您的 Amazon S3 儲存貯體以檢視不同版本的物件,請使用 Amazon S3 庫存清單。Amazon S3 庫存清單檔案包含源儲存貯體中的物件清單以及每個物件的中繼資料。庫存清單檔案會擷取中繼資料,如儲存貯體名稱、物件大小、儲存類別和版本 ID。