Amazon Glacier 刪除檔案的計費方式

這幾天終於有空寫 S3 刪除檔案的功能了
因為主機業務蒸蒸日上(?)

要備份的檔案也越來越多
目前的策略是一週內的檔案放S3
超過一週的就進 Glacier
三個月以上就砍掉

本來 S3 是有個功能
可以設定經過某個期限的檔案就刪除
但是因為我已經設定 經過某個期限就進Glacier的功能
只能二擇一
所以刪檔就要自己寫程式判斷

首先是用 API get_object_list 把 bucket 的物件資料抓回來
(這會計費/依次計費)

然後判斷檔案是否超過三個月
因為我的備份檔案命名 都有日期
所以還滿好判斷的
很快的寫好這個程式
也驗證無誤

隔天打開 S3 的費用清單
想說看看 Glacier 有沒有少一些存放費用

結果發現多了一個計費項目

$0.030 per GB – Glacier Early Delete (US)

這是三小?
後來查了一下 Amazon 的說明
Amazon 的意思是
Glacier 因為是長期存放檔案的機制
所以他希望你放越久越好 (這樣他才能賺更多錢啊)

所以如果存放在Glacier三個月內(嚴格說是90天)
你就把檔案刪除掉
那他會收你 0.03USD/GB 的費用

所以1G的資料 放在Glacier90天
會被收 0.03USD
在第90天的時候砍掉
又被收 0.03USD
真是得不償失啊

所以如果你真的想在最短的時間
把 Glacier 內的檔案刪掉
但是又不想被收這懲罰性的 0.03USD/G

建議是在91天把檔案刪除
(或是比較保險的話設定成100天)

所以我乾脆把主機備份策略延長成半年好了(?!)