パーソル&サーバーワークス

ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【S3】S3バケットのバージョニング無効と停止は違う!?

この記事を共有する

目次

はじめに

こんにちは!サービスGの森です!
突然ですが、みなさんはS3のバージョニング無効と停止状態の違いについてご存知でしょうか?
似ているようで実はけっこう違っています。

そもそも無効と停止とは...?

S3のバージョニングは以下の状態のどれかにあります。

  • 無効(Unversioned)
  • 有効(Versioning-enabled)
  • 停止(Versioning-suspended)※バージョニングを有効化したあと、停止にした状態。

S3のバージョニングを有効にしたバケットは停止にできますが、無効にすることはできないという特徴があります。

結論

  • 停止時の挙動について
    • 新しくアップロードされたオブジェクトにバージョンID:nullを付与しつつ、バージョニング有効時に一意のバージョンIDが付与されたオブジェクトは保持します
    • バージョンID:nullが付与されたオブジェクトを削除する場合にも削除マーカーが挿入され、期限切れ削除マーカーとなってしまいます。無効の場合は完全に削除になります

バージョニング停止時の動作を検証

文章だけだとわかりにくいのでとりあえず検証!
オブジェクトのアップロードと削除を順番に実施していきます。

オブジェクトのアップロード

  1. まずはバージョニングを有効化したS3バケットを用意し、sample.txtというファイルをアップロードします。

オブジェクトアップロード-01

  1. 続いてバージョニングを停止後、sample.txtを再度アップロードします。

    • 結果:
    • アップロードされたオブジェクトにはバージョンID:nullを付与しつつ、バージョニング有効化時に付与されたバージョンを保持しています。

オブジェクトアップロード-02

オブジェクトの削除

続いてアップロードしたオブジェクトの削除をしていきます。

  1. 先程のバケットから一意のバージョンIDが付与されたオブジェクトを削除し、バージョンID:nullが付与されたオブジェクトのみ残します
    オブジェクトnull
  2. samle.txtを選択して削除をクリックします
    オブジェクト削除
  3. 完全に削除と入力してオブジェクトの削除をクリックします
    オブジェクトを完全に削除
  4. マネジメントコンソール上で削除されたことを確認しました
    • バージョニング無効の場合はこれで消えているのですが...。
      削除後の確認
  5. aws s3apiコマンドを実行してすべてのバージョンのオブジェクトを取得します

    • 結果:
    • 削除マーカーのみが挿入されてしまいます。
    • 完全に削除と入力したのに!バージョニング有効化時の名残りのようなものができています。
aws s3api list-object-versions \ --bucket ${bucket-name} "DeleteMarkers": [ { "Owner": { "DisplayName": "${owner-display-name}", "ID": "${owner-id}" }, "Key": "sample.txt", "VersionId": "null", "IsLatest": true, "LastModified": "2024-12-25T06:50:36+00:00" } ], "RequestCharged": null, "Prefix": "" }

おわりに

  • 繰り返しになりますが、S3バケットのバージョニングを有効にすると無効に戻すことはできません!無効と停止を誤認しないように注意が必要です。また期限切れ削除マーカーの削除など、ライフサイクルルールによる適切な管理を心がける必要があります
  • 以下の理由から、S3バケットを全てバージョニング有効にするのも方針もアリだと思います
    • 削除・更新からの保護
    • 将来的にレプリケーションをできるようにしておく
    • 無効状態と停止状態の誤認防止

この記事は私が書きました

森 翔吾

最近はコンテナ・サーバレスを学習しています。 よろしくお願いします。

森 翔吾

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。