要約

  • バージョニングが有効な S3 でバージョンを指定せず削除すると、削除マーカーが作られ、データのバージョンは永久には消えない。通常の読み出しが404でも、旧データは保管され得る。
  • 期限切れ削除マーカーは、データのバージョンが既に消えた後の残りである。その清掃と非現行バージョンの期限切れ処理は別で、後者には独自の条件がある。
  • 本当に期限切れとなって非同期の除去を待つオブジェクトには AWS が明記する料金上の例外がある。見えない旧バージョンやクラス別の最低保管期間と混同してはならない。

表示の終わりと保管の終わり

使わなくなった項目を削除し、アプリケーションがそれを返さなくなれば、利用側の作業は完了しているかもしれない。だが保管側には履歴が残る。この二つは同じ完了ではない。

AWS のバージョン削除ガイドは、バージョニングが有効な場合、特定バージョンを指定しない通常の削除ではマーカーを追加し、データを永久に除去しないと説明する。マーカーが現行となり、以前のデータは非現行として残る。

削除マーカーの説明によれば、現行がマーカーのキーをバージョン指定なしで読むと404が返る。通常のオブジェクト一覧にも、そのキーは出てこない。これは普段の閲覧方法での消失を示すが、全バージョンの保管状況を示してはいない。

アプリケーション担当と保管担当が違う完了を報告しても、直ちにどちらかが誤っているわけではない。問題は前者の報告が、そのまま予算上の保管終了の証拠になることだ。本稿は顧客の請求書を調べておらず、隠れた料金や請求ミスを発見したという記事ではない。供給者が公開する仕組みの意味を読み分けている。

小さなマーカーと残るデータは別会計

AWS は非現行を含む保管・転送される各バージョンに通常の料金が適用されると説明する。日常の一覧から外れたことだけでは、保管されるデータの課金単位は消えない。見えるキーの数が減っても、残るデータのバイト数が同じ割合で減ったとは推定できない。

マーカー自体にはデータ内容がない。S3 Standard に置かれ、UTF-8 で符号化したキー名に相当する小さな保管量を持つ。この量を旧データの保管量と取り違えると、費用調査が小さな残留物だけに向かう。

一方、旧バージョンは無駄とは限らない。誤った削除や上書きから戻るための選択肢として、意図的に買っている機能かもしれない。必要なのは、誰がその回復可能性をまだ必要とし、誰が継続を承認するかという説明だ。本稿はその価値や削減額を測っておらず、古いものを一律に消す提案もしない。

マーカーの期限切れが意味する順序

マーカー管理の説明では、期限切れオブジェクト削除マーカーとは、すべてのバージョンが消えた後に単独で残るマーカーを指す。最後の残りを掃除することは、旧データを期限切れにすることではない。定義は旧データが既にない状態を前提にしている。

通常の削除をもう一度送ることにも、別の意味がある。マーカーが現行のときにそのバージョンを指定しなければ、別のマーカーが追加される。反対に現行マーカーを除くと、前のデータが再び現行となり通常の読み出しに戻る場合がある。これらを全部「削除」として同じ費用効果にまとめることはできない。

この記事はどの削除も実行せず、実行手順も示さない。受入報告で知りたいのは、見えなくなったキー、除去したマーカー、永久に取り除いたデータのどれを数えたのかである。「削除済み」という見出しだけでは移行した状態が分からない。

古さの時計と個数の条件

オブジェクトの期限切れガイドは現行と非現行を分ける。有効なバケットでは現行データの期限切れがマーカーを作り、データを非現行にすることがある。それによって他の非現行バージョンが全部期限切れになるわけではない。

ライフサイクル構成要素の説明では、非現行になってからの日数と、より新しい非現行バージョンの個数を両方設定した場合、両方のしきい値を超える必要がある。作成からの経過時間と非現行としての時間も同じではない。

したがって「何日保存する」という短い説明には、一定個数を残す条件が隠れている可能性がある。永続的な非現行バージョンの除去はこの仕組みでは元に戻せない。条件を承認することは保管量だけでなく、回復可能性を承認することでもある。

Object Lock の注意事項はもう一つの限界を示す。ライフサイクルはマーカー作成やクラス移行を続けられるが、保護されたバージョンを期限切れポリシーで削除できない。マーカー自体は WORM 保護を受けない。普通の画面からの消失と保護データの存続は、設計どおり同居し得る。データの破壊や保護失敗の証明ではない。

非同期除去の遅れを請求問題にしない

保管費用の議論には反例も必要だ。AWS は、本当に期限切れとなったオブジェクトが非同期の物理除去を待つ場合、期限切れ処理やその期限切れオブジェクトに関連する保管時間には課金しないと説明する。物理的にまだ除去されていないことだけで継続課金を主張できない。

ただし、この例外をマーカーの背後にあるすべての旧データへ広げてはいけない。それぞれが適用条件を満たしたかを先に確認する必要がある。ガイドには複製が保留または失敗している状態で該当処理を行わないという条件もある。本稿は顧客のルールやバージョンを確認していない。

S3 料金ページが述べる最低保管期間は別の約束である。Standard-IA と One Zone-IA は30日、Glacier Instant Retrieval と Flexible Retrieval は90日、Deep Archive は180日。早い削除、上書き、クラス移行では残りの最低期間に比例した料金が発生し得る。S3 Standard 全体に30日の最低期間があるという意味ではない。

同じページは DELETE と CANCEL のリクエストを無料とする。リクエストの単価がゼロでも、残るバージョンや適用される最低期間が無料になるわけではない。地域別単価や個別請求額、実際の節約はここで算出していない。

状態と保存理由を照合する

Storage Lens の指標用語集は、非現行バージョンのバイト数とマーカーのバイト数を分ける。現行オブジェクト数には現行マーカーが含まれ、「現行」を開けるファイルと読み替えられない。無料指標は日次収集で、すべての変化の即時証拠でもない。

期限切れ後に除去を待つオブジェクトは Storage Lens の関連指標に含まれない。報告範囲は全部の物理残留ではなく、実際の請求書やリアルタイム調査でもない。この境界を保ったまま使えば、指標はよい質問を作る助けになる。

購入側に有用な受入対象は、残るバージョンと理由の照合である。回復が必要なのか、保護があるのか、条件未達なのか、本当に期限切れなのか。404は別の観察だ。バージョニングの価値は、消失を取り返せる余地にある。その価値があるからこそ、消失だけでは経済的な終了を証明できない。

出典