ざっくりいうと
awsのDeep Archiveを見つけて「もうHDDなんて卒業だ!」と大量に大きいファイルのアップロードを仕掛けたら謎の料金請求が止まらず焦って調べたら、マルチパートアップロードが途中で止まった場合、アップロード途中のデータ分がS3料金で請求されるとわかった話。
対策もあるので、以下をご覧ください。
ことのはじめ
2019年のGWは10連休でした。
普通の連休ではできないようなことができましたね!
私は…バックアップ体制の見直しをしました。
…って個人のファイルなんですけど。でも重要でしょ?
これまでは500GBの外付けハードディスクに保存してました。
でも…もう7年以上(!)使ってましたし、なんともセキュリティ確保のために毎度暗号化するのも面倒だなぁと思ってました。
もう少しGlacierの料金が下がらないかなぁ…と思っていたら!!
これいいじゃない!
$0.00099 per GB-Month
0.00099USD/GBって、1TB使っても$0.99って月100円!
バックアップのためにHDD買うなんてもうやめた!っていう料金に喜んで手を出しました。
大量にデータをアップロード
HDDに入っていた200GBぐらいのデータを昼夜問わず複数のセッションで一気に上げました。
途中で失敗しても、再度やり直せばいいんでしょ?ぐらいの気持ちで。
で、実際に何回か失敗したんですけど、まぁ平成の内にやり切ったわけですわ。
でもここに落とし穴が…
安いはずなのに…
令和になって、毎日のように請求料金を見ていたわけです。
すると…
Amazon Simple Storage Service USW2-TimedStorage-GDA-Staging $0.06
はぁ?
$0.021 per GB-Month of storage used in GlacierStagingStorage 2.955 GB-Mo
開始5日で3GB弱ってことは実際のところ18GBぐらいがどこかにあるってか?
GlacierStagingStorage?ステージングストレージって何?
何これ!レートこれ高いだろ!高すぎ!
ネットでこれ!ということがググってもなかなか出てこない。
で、いろいろ詮索しているうちに…
ここにたどり着きました。
マルチパートアップロードを開始すると、
アップロードを完了または中止するまで
すべてのパートが AmazonS3 によって保持されます。
はぁ
マルチパートアップロードを開始したら、パートをアップロードし始めます。
(中略)
マルチパートアップロードの完了リクエストが正常に送信されなかった場合、
Amazon S3 はパートを組み立てず、オブジェクトを作成しません。
したがって、パートは Amazon S3 に残るため、
Amazon S3 に保存されたパートに対して支払いが発生します。
ベストプラクティスとして、ストレージコストを最小限に抑えるため、
ライフサイクルルールを設定することをお勧めします
つまり…
- アップロードに失敗したらS3に残骸が残りっぱなしになるからね
- それがいやならライフサイクルに設定しなさいよ
そういうこと??
残骸を確認するすべは請求を見て「-Staging」というキーワードが含まれているか確認するしかないという…(S3の実態ファイルとして見えない)
ここをみてもわかるけどたどり着けるかどうか…
#終わりに
やっぱり新サービスを使ったら料金を確認しないと何が起きているかわからない。
私はこれに3日使いました。
救われた方はイイネ!してね。
ではでは。