S3 オブジェクトロック機能有効時にファイルを上書きしてみた #reinvent

Amazon S3 オブジェクトロックは、一定時間または無期限にオブジェクトが削除または上書きされることのを防ぐ機能です。 ファイルを上書きすると、そのファイルは新しいバージョンとして保存されます。 保持期間は個々のオブジェクトバージョンごとに適用されます。
2018.11.27

新機能Amazon S3 オブジェクトロック機能がリリースされました! 一定時間または無期限にオブジェクトが削除または上書きされることのを防ぐ機能です。

大まかな内容はブログになっていますが、私は同じパスにファイルを上書きをした時の挙動を確認してみました。 結論からいうと、上書きしたファイルは新しいバージョンとして保持されます。 また、保持設定は各オブジェクトバージョンごとに適用されます。

S3 オブジェクトロックの有効化

オブジェクトロックを使うにはバージョニングを有効化する必要があります。 また、新しいバケットを作成する時のみ有効化できます。

オブジェクトロックが有効な新しいバケットを作成します。 バージョニングにチェックを入れます。

詳細設定を開き、オブジェクトのロックを有効化します。

その他の設定はデフォルトのままとします。

デフォルトのオブジェクトロックの設定を行います。 バケットを選択しプロパティ>詳細設定>オブジェクトのロックから、ガバナンスモードを有効、保持期間を10日にしました。 デフォルトで10日間はロックされます。 実際の設定では、1年や3年などシステム要件に従った期間を設定することになると思います。

確認画面が表示されるので、"確認"を入力します。

ファイルのアップロード

file.txtをAWSコンソールからアップロードします。 ファイルを選択しプロパティを見ると、リテンション期日が表示されます。 検証では、2018-12-07でした。

ファイルを上書きすると、新しいバージョンとして保持される

手元のfile.txtを編集します。 S3コンソールでfile.txtを選択し、アップロードを選択します。 同じパスでアップロードする形になります。

ファイルをダウンロードすると、編集後の内容が表示されます。

バージョン表示を有効にすると、時刻が1:30のバージョンと1:25のバージョンがあります。 1:25が元々のファイルです。 上書きしたファイルは新しいバージョンとして保持されることがわかります。

保持期間は個々のオブジェクトバージョンごとに適用される

バージョン表示を有効にして、全てのバージョンを削除すると、、、削除できません。 保持設定は個々のオブジェクトバージョンごとに適用されます。

さいごに

Amazon S3 オブジェクトロックは、一定時間または無期限にオブジェクトが削除または上書きされることのを防ぐ機能です。 ファイルを上書きすると、そのファイルは新しいバージョンとして保存されます。 保持期間は個々のオブジェクトバージョンごとに適用されます。 本記事を書く前は、"上書きが出来ない"というと同じパスへのアップロードが失敗するイメージでした。 個々のバージョンごとに保存される点にご注意ください。

参考

ユーザーガイドを参考にしました。