はじめに
削除マーカーレプリケーションの記事を先日書いたのですが、S3のレプリケーションにはV1とV2の2つの設定があり、動作がことなります。今回はその違いを書いていきます。
削除マーカーレプリケーションの動作の違い
・V1設定の場合:削除マーカーはレプリケートされます。
・V2設定の場合:削除マーカーはレプリケートされません。
削除マーカーレプリケーションってそもそもなんやねん?
以下記事を見てほしいのですが、レプリケーション元で削除した操作を、レプリケーと先に反映するかのパラメータとなります。レプリケーションを有効化するには、S3のバージョニングを有効化する必要があり、バージョニングが有効化されたバケットでは削除を実施すると該当バージョンのオブジェクトに削除マーカーという削除を意味するマーカーが付与されます。削除マーカーが付与されたオブジェクトにGETリクエストを投げても、明確にバージョンを指定しない限りオブジェクトが取得されることはありません。
V1とV2の切り替え方法
明確にV1、V2という切り替えパラメータがあるわけではありません。
S3のレプリケーション設定時にPrefixというパラメータを指定するか指定しないかで、切り替わります。
Prefixは特定のパスのみレプリケーションするというパラメータです。このパラメータを明示的に指定(空指定も可)するとV1設定となり、削除マーカーレプリケーションも有効化されます。Prefixを指定しない場合はV2となり、削除マーカーレプリケーションは無効となり有効化することはできなくなります。
まとめ
S3のレプリケーションにはV1、V2があります。V1では削除マーカーレプリケーションが可能ですが、V2では実施できません。その他タグベースのフィルタやReplicationTimeControlなどの機能はV1では実施できません。このように、相互に互換性のない機能が実装されているため、V1、V2がそれぞれ存在している状態と推定されます。レプリケーション設定時には実施したい内容を精査したうえで、V1、V2を適切に設定していきましょう。