batciです。
覚えたつもりでもすぐこんがらがってしまう、
S3のバージョニングとライフサイクルの組み合わせ。
備忘録も兼ねて、ざっくりとした概要を記していきます。
今回はバージョニングについて。
バージョニングのステータス
以下の3つのみです。
- 無効(デフォルト)
- 有効
- 停止
1.無効
デフォルトの状態です。
明示的に変更を加えないかぎり、
この状態のままです。
バケット内のオブジェクトを消したら完全に消えるし、
同じ名前のオブジェクトをアップロードしたら上書きされます。
シンプルです。
2.有効
バージョニングが有効な状態です。
一度有効にすると、停止はできますが無効には戻せません。
バージョニングが有効であると、
1つのオブジェクトに対して2種類のバージョンが生まれます。
- 最新のバージョン
- 以前のバージョン
最新のバージョンの個数は常に「1」であるのに対し、
以前のバージョンの個数は「0個以上」です。
日本語として好きになれない
「以前のバージョン」とはつまり、
「以前は最新だったけど今はそうではないバージョン」のことです。
「以前の」という言葉が、
個人的にあまりしっくりこなかったので、
今後は「最新でないバージョン」と呼ぶことにします。
最新でないバージョンが発生するケース
- すでにバケット内に存在するオブジェクトと同名のオブジェクトがアップロードされた場合
- 最新のバージョンが削除された場合
3.停止
一度有効にしたバージョニングを停止した状態です。
停止するまでに存在していた「最新でないバージョン」は保持しつつも、
以降のバージョニングは行われない、といったイメージです。
イメージ、と言ったのは正確な表現ではないからです。
停止した時期によってもろもろ変わってくることもあるので、
今回はあまり触れないことにします。
論理的な削除と完全削除
バージョニングが有効または停止の場合には、
削除ステータスも2種類に分かれます。
- 論理的な削除
- 完全削除
論理的な削除とは、「最新のバージョン」が「削除マーカー」であり、
「最新でないバージョン」が保持されている状態です。
完全削除とは、まるっと削除されている状態です。
ここのあたりは言葉だけでの説明が難しいので、
次回以降、コンソール画面を含めて説明したいと思います。
ひとまず、
こちらからは以上です。