以前に調査した、GCSの大容量長期アーカイブ向け「Archive」クラスの調査不足によりやらかした
調査不足していたこと
- Archive Storageへのアクセスに対する認識
- ライフサイクルでクラスを変更した場合の料金
- 早期削除
Archive Storageへのアクセスに対する認識
以前調査したとき、以下の記述をみて勝手にget
だけの話と勘違いした
1年以上保存され、1年に1回未満しかアクセスされないデータに最適
実際にはストレージに入れるときのinsert
も課金対象で、クラス A レートのオペレーションに属しているためget
よりもお高い
get
は年1回あるかないかだが、insert
が多いストレージに対してArchive Storageに設定しまい、逆にお高くなってしまった
ライフサイクルでクラスを変更した場合
上の設定を戻した上で、今度はStandard Storageに対して以下のライフサイクルを設定した
作成後90日以上のファイルはArchive Storageに移行する
これも調査不足だったのだが、この場合、変更後のストレージ クラスに関連付けられているクラス A レートが適用される
つまり、90日以上のファイルはArchive Storageにinsert
のオペレーションが適用される
ほとんどのファイルが90日以上であったため、Archive Storageへの移行に際して大量のオペレーションが発生しまい高額な課金額になってしまった
早期削除
今後もこのライフサイクルを適用し続けたら毎回90日後に数ファイルがArchive Storageに移行して課金されてしまうので、上のライフサイクルの設定をやめて、90日後に削除をする検討をした
しかし、Archive Storageにあるものは早期削除が適用されてしまうことを知った
早期削除とは以下のいずれかのストレージ クラスを使用して保存されているデータには「最小保存期間」が適用され、 最小保存期間に達する前にファイルを削除した場合、ファイルが最小期間保存された場合と同じ料金が削除時に請求されるというもの
つまり、削除してもいいけど、365日保持していたのと同じ分だけの金額を削除したときに請求するというもの
削除もままならない状況になってしまった
まとめ
ストレージクラスの変更には注意が必要
- 年に1回のアクセスというのはgetだけでなくinsertの意味もある
- ライフサイクルで変更した場合、変更後のクラスに対するoperationになる
- 最小保存期間よりも早く削除した場合は、最小保存期間分の保存料金が請求される
特にArchive Storageクラスへの変更はこれらが高額になるので慎重に行う
https://cloud.google.com/storage/pricing#operations-by-class