前回の記事でS3の一部削除操作がレプリケーションできないと記載したが、回避策について検討した案をいくつか記載します。
①V1設定で削除マーカーのレプリケーションをして、S3のライフサイクル設定でファイルを完全削除する。
→S3のライフサイクル設定では、現行/以前のバージョンのファイルに対して、指定した日数経過後に削除する機能になります。
オプションで削除マーカーもクリーンアップできるので、バケット同士の整合性は保てることになると思います。
※指定した日数が経過するまではファイルが削除されない為、その間余計なファイルが残ることになり、S3のデータ使用料が掛かることになります。
②V2設定で、レプリケーション元の削除イベントをトリガーにしてLambdaでレプリケーション先のファイルを削除する。
→下図はサービスの実装イメージですが、この案が一番妥当な案と思います。
サンプルコードを書いてみましたのでこちらを参照願います。
③V2設定で、レプリケーション元とレプリケーション先双方に同じ削除操作を実施する。
→案②と比べてシンプルに見えますが、ファイル削除の正常性だとかエラーハンドリングを考慮するとスクリプトの作りが複雑になると思います。
また、メインサイトの操作がそのままDRサイトのファイルを操作しているところもシステムの作りとして気持ちが悪い。
Wikiはじめました
このブログを検索
自己紹介
- mnz
- IT関連の技術情報や、取り組んでいる業務効率化について掲載。人手不足対策、教育についても興味あり。
0 件のコメント:
コメントを投稿