S3 レプリケーションのステータスを一覧で確認できますか

S3 レプリケーションのステータスを一覧で確認できますか

Clock Icon2025.02.17

困っていた内容

S3レプリケーションを設定しているバケット内のオブジェクト全体に対して、レプリケーションが完了しているか、していないのかの状態を確認する方法はありますか?

どう対応すればいいの?

レプリケーション元バケットにおいてS3 Inventory設定を実施し、レプリケーション先にインベントリレポートを発行することにより、レプリケーションステータスを確認することができます。

レプリケーションステータスは、レプリケートされるオブジェクトの現在の状態を表します。ステータスには以下の4つが存在します。

  • PENDING:オブジェクトはレプリケーションの対象だが、まだレプリケートされていない。
  • COMPLETED:オブジェクトは正常にレプリケートされている。
  • FAILED:オブジェクトのレプリケーションに失敗。
  • REPLICA:別のバケットからレプリケートされたオブジェクトである。

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/replication-status.html#replication-status-batch-replication

このインベントリレポートに対して、Amazon Athenaを用いてクエリを実行することで詳細情報を取得することも可能です。
https://dev.classmethod.jp/articles/s3-batch-operations_confirmation_by_athena_and_inventoryreport/

やってみた

1.レプリケーション元バケットからレプリケーション先バケットに対してレプリケーションを設定し、任意のオブジェクトをレプリケーション元バケットにアップロードします。レプリケーション先バケットへのレプリケーションを確認します。
スクリーンショット 2025-02-14 17.26.43
スクリーンショット 2025-02-14 17.28.28

2.レプリケーション元バケット→管理→インベントリ設定からインベントリを設定します。
スクリーンショット 2025-02-17 10.46.51

3.インベントリ設定名、インベントリスコープ、送信先バケット、出力形式、頻度等の設定を行います。追加のメタフィールドでレプリケーションステータスにチェックをつけることで、インベントリレポートにレプリケーションステータスが記載されます。
スクリーンショット 2025-02-14 17.30.03
スクリーンショット 2025-02-14 17.30.43
スクリーンショット 2025-02-14 17.31.10

4.一定時間後、レプリケーション先バケット上でインベントリレポートが作成されていることを確認します。
インベントリレポートは//レプリケーション先バケット名/レプリケーション元バケット名/インベントリ設定名/data以下に作成されます。
スクリーンショット 2025-02-17 11.03.27

5.インベントリレポートを展開します。レプリケーションしたオブジェクトのステータスが全てCOMPLETEDとなっていることを確認できました。
スクリーンショット 2025-02-17 10.42.13

参考情報

https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/replication-status.html#replication-status-batch-replication

https://dev.classmethod.jp/articles/s3-batch-operations_confirmation_by_athena_and_inventoryreport/

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.