S3のバケット間でファイルの整合性を保ちたいときに候補に挙がるのが
レプリケーション機能になりますが、削除の挙動に関しては、一部整合性が保てない。
これは、AWSが誤った操作からファイルが削除されてしまうのを防ぐというポリシーからなっている。
S3のバケットに対して以下の3つの操作について挙動を説明する。
・新規作成
・変更/更新
・削除 ←この削除の挙動で不整合が起きてしまう。
①新規作成(説明省略)
レプリケーション元でファイルが作成されるごとにレプリケーション先へファイルがレプリケーションされる。
②変更/更新
新規作成したファイルと同名のファイルで新たにアップロードする。
新規作成と同様に、レプリケーション元でファイルが作成されるごとにレプリケーション先へファイルがレプリケーションされる。
③削除
S3の削除には、削除と失効がある。
・削除(削除マーカー付与):論理的に削除して、ファイルを見えなくする。(レプリケーション可能)
※削除マーカーのレプリケーションは、レプリケーションの設定をV1とする必要がある。(特に意識しないで設定するとV2設定になります。)
具体的な設定方法は、削除マーカーのレプリケーションを参考にしてください。
・失効(完全削除):物理的に削除して、ファイルを完全削除する。(レプリケーション不可)
ここの失効(完全削除)が問題の箇所で、レプリケーション元と先のファイル整合性が保てなくなる仕様。
回避策は色々あるが、例えば以下のようなやり方がある。それぞれメリデメがあるので、次回詳しく書こうと思います。
・V1設定で削除マーカーのレプリケーションをして、S3のライフサイクル設定でファイルを削除する。
・V2設定で、レプリケーション元の削除イベントをトリガーにしてLambdaでレプリケーション先のファイルを削除する。
・V2設定で、レプリケーション元とレプリケーション先双方に同じ削除操作を実施する。
Wikiはじめました
このブログを検索
自己紹介
- mnz
- IT関連の技術情報や、取り組んでいる業務効率化について掲載。人手不足対策、教育についても興味あり。
0 件のコメント:
コメントを投稿