

# レプリケーションの管理
<a name="manage-outposts-replication"></a>

このセクションでは、S3 on Outposts で使用可能な追加のレプリケーション設定オプション、レプリケーションステータスの確認方法、レプリケーションのトラブルシューティング方法について説明します 主要なレプリケーション設定については、「[レプリケーションの設定](outposts-replication-how-setup.md)」を参照してください。

**Topics**
+ [レプリケーションメトリクスによる進行状況のモニタリング](#outposts-enabling-replication-metrics)
+ [レプリケーションステータス情報の取得](#outposts-replication-status)
+ [レプリケーションのトラブルシューティング](#outposts-replication-troubleshoot)
+ [S3 Replication on Outposts に EventBridge を使用する](outposts-replication-eventbridge.md)

## レプリケーションメトリクスによる進行状況のモニタリング
<a name="outposts-enabling-replication-metrics"></a>

S3 Replication on Outposts は、レプリケーション設定のレプリケーションルールの詳細なメトリクスを提供します。レプリケーションメトリクスを使用してレプリケーションの進行状況を 5 分間隔でモニタリングするには、保留中のレプリケーションのバイト数、レプリケーションのレイテンシーレプリケーション、保留中のレプリケーションの操作を追跡します。設定の問題のトラブルシューティングを支援するために、Amazon EventBridge を設定して、レプリケーションの失敗に関する通知を受け取ることもできます。

レプリケーションメトリクスを有効にすると、S3 Replication on Outposts は次のメトリクスを Amazon CloudWatch に発行します。
+ **レプリケーションを保留しているバイト** – 特定のレプリケーションルールのレプリケーションを保留しているオブジェクトの合計バイト数。
+ **レプリケーションレイテンシー** – 特定のレプリケーションルールで、レプリケート先バケットがレプリケート元バケットの背後にある最大秒数。
+ **レプリケーションを保留している操作** – 特定のレプリケーションルールでレプリケーションを保留している操作の数。操作には、オブジェクト、削除マーカー、タグが含まれます

**注記**  
S3 Replication on Outposts は、CloudWatch カスタムメトリクスと同じ料金レートで請求されます。詳細については、「[CloudWatch 料金表](https://aws.amazon.com/cloudwatch/pricing/)」を参照してください。

## レプリケーションステータス情報の取得
<a name="outposts-replication-status"></a>

レプリケーションステータスは、Amazon S3 on Outposts によってレプリケートされるオブジェクトの現在の状態を判断するのに役立ちます。レプリケート元オブジェクトのレプリケーションステータスは、 `PENDING`、`COMPLETED`または`FAILED`のいずれかを返します。レプリカのレプリケーションステータスが`REPLICA`に返されます。

### レプリケーションステータスの概要
<a name="outposts-replication-status-overview"></a>

レプリケーションシナリオでは、レプリケーションを設定するレプリケート元バケットと、S3 on Outposts がオブジェクトをレプリケートするレプリケート先バケットを使用します。これらのバケットからオブジェクト (`GetObject` を使用) またはオブジェクトメタデータ (`HeadObject` を使用) をリクエストすると、S3 on Outposts はレスポンスとして以下のように `x-amz-replication-status` ヘッダーを返します。
+ レプリケート元バケットのオブジェクトをリクエストする場合、リクエストしたオブジェクトがレプリケーション対象であると、S3 on Outposts は `x-amz-replication-status` ヘッダーを返します。

  例えば、レプリケーション設定でオブジェクトプレフィックス `TaxDocs` を指定して、キー名のプレフィックス `TaxDocs` が付いたオブジェクトのみをレプリケートするように S3 on Outposts に指示しているとします。このキー名のプレフィックスを持つ、アップロードしたすべてのオブジェクト (`TaxDocs/document1.pdf` など) がレプリケートされます。このキー名のプレフィックスが付いたオブジェクトのリクエストでは、S3 on Outposts が、オブジェクトのレプリケーション状態が `PENDING`、`COMPLETED`、または `FAILED` の値のいずれかの `x-amz-replication-status` ヘッダーを返します。
**注記**  
オブジェクトをアップロードした後で、オブジェクトのレプリケーションに失敗した場合、レプリケーションを再試行できません。もう一度オブジェクトをアップロードする必要があります。レプリケーションロールの許可またはバケットの許可がないなどの問題がある場合、オブジェクトは `FAILED` の状態に移行します。バケットや Outpost が使用できないなどの一時的な障害が発生した場合、レプリケーションのステータスは `FAILED` にはならず、`PENDING` のままになります。リソースがオンラインに戻ると、S3 on Outposts はこれらのオブジェクトのレプリケーションを再開します。
+ レプリケート先バケットからオブジェクトをリクエストした場合、リクエストされたオブジェクトが S3 on Outposts によって作成されたレプリカであるときに、S3 on Outposts は値が `REPLICA` である `x-amz-replication-status` ヘッダーを返します。

**注記**  
レプリケーションが有効になっているレプリケート元バケットからオブジェクトを削除する前に、削除する前にオブジェクトのレプリケーションステータスをチェックして、そのオブジェクトがレプリケートされていることを確認します。

### Outposts の Amazon S3 レプリカ変更の同期が有効になっている場合のレプリケーションステータス
<a name="outposts-replication-status-sync"></a>

レプリケーションルールが S3 on Outposts レプリカの変更を有効にすると、レプリカは `REPLICA` 以外のステータスをレポートできます。メタデータの変更がレプリケート中の場合は、レプリカの `x-amz-replication-status` ヘッダーは `PENDING` を返します。レプリカ変更の同期がメタデータのレプリケートに失敗した場合、レプリカのヘッダーは `FAILED` を返します。メタデータが正しくレプリケートされると、レプリカのヘッダーは値 `REPLICA` を返します。

## レプリケーションのトラブルシューティング
<a name="outposts-replication-troubleshoot"></a>

レプリケーションを設定した後にオブジェクトレプリカがレプリケート先 Amazon S3 on Outposts バケットに表示されない場合は、これらのトラブルシューティングのヒントを使用して問題を特定し、修正してください。
+ S3 on Outposts がオブジェクトをレプリケートするために要する時間はさまざまな要因に依存します (レプリケート元とレプリケート先の Outposts、オブジェクトのサイズなど)。

  ソースオブジェクトのレプリケーションステータスを確認することもできます。オブジェクトのレプリケーションステータスが `PENDING` の場合は、S3 on Outposts がレプリケーションを完了していません。オブジェクトのレプリケーションステータスが `FAILED` の場合は、レプリケート元バケットのレプリケーション設定を確認してください。
+ レプリケート元バケットのレプリケーション設定について、以下を確認します。
  + レプリケート先バケットのアクセスポイント Amazon リソースネーム (ARN) が正しい。
  + キー名のプレフィックスが正しい。たとえば、`Tax` というプレフィックスが付いたオブジェクトをレプリケートする設定にした場合、`Tax/document1` や `Tax/document2` のようなキー名のオブジェクトのみがレプリケートされます。キー名が "`document3`" のオブジェクトはレプリケートされません。
  + ステータスは`Enabled`です。
+ どのバケットでもバージョニングが一時停止されていないことを確認します。レプリケート元とレプリケート先の両方のバケットで、バージョニングを有効にする必要があります。
+ レプリケート先バケットが他の AWS アカウントによって所有されている場合、バケット所有者が、レプリケート元バケットの所有者に対してオブジェクトのレプリケーションを許可するバケットポリシーをレプリケート先バケットに設定していることを確認します。例については、「[レプリケーション元とレプリケーション先の Outposts バケットが異なる AWS アカウントによって所有されている場合のアクセス許可の付与](outposts-replication-prerequisites-config.md#outposts-rep-prethree)」を参照してください。
+ オブジェクトのレプリカがレプリケート先バケットに表示されない場合、以下がレプリケーションを妨げている可能性があります。
  + レプリケート元バケットのオブジェクト自体が別のレプリケーション設定によって作成されたレプリカである場合、S3 on Outposts はそのオブジェクトをレプリケートしません。例えば、バケット A からバケット B へ、バケット B からバケット C へのレプリケーション設定を設定した場合、S3 on Outposts はバケット B にあるオブジェクトレプリカをバケット C へレプリケートしません。

    バケット A のオブジェクトをバケット B とバケット C にレプリケートする場合は、ソースバケットのレプリケーション設定の異なるレプリケーションルールで複数のバケット宛先を設定します。例えば、ソースバケット A に 2 つのレプリケーションルールを作成します。1 つのルールは宛先バケット B にレプリケートし、もう 1 つのルールは宛先バケット C にレプリケートします。
  + レプリケート元バケット所有者は、オブジェクトをアップロードするための許可を他の AWS アカウントに付与できます。デフォルトでは、レプリケート元バケット所有者は、他のアカウントによって作成されたオブジェクトに対するアクセス許可を持ちません。レプリケーション設定では、レプリケート元バケット所有者がアクセス許可を持つオブジェクトのみがレプリケートされます。レプリケーションの問題を回避するために、レプリケート元バケット所有者は、条件付きでオブジェクトを作成するための他の AWS アカウント アクセス許可を付与し、それらのオブジェクトに対する明示的なアクセス許可を要求することができます。
+ レプリケーション設定に、特定のタグを持つオブジェクトのサブセットをレプリケートするためのルールを追加するとします。この場合、S3 on Outposts がオブジェクトをレプリケートするには、オブジェクトの作成時に特定のタグキーと値を割り当てる必要があります。まずオブジェクトを作成して、それから既存のオブジェクトにタグを追加した場合、S3 on Outposts はそのオブジェクトをレプリケートしません。
+ バケットポリシーで次のいずれかのアクションでレプリケーションのロールへのアクセスを拒否した場合、レプリケーションは失敗します。

  レプリケート元のバケット

  ```
  1. "s3-outposts:GetObjectVersionForReplication",
  2. "s3-outposts:GetObjectVersionTagging"
  ```

  レプリケート先バケット:

  ```
  1. "s3-outposts:ReplicateObject",
  2. "s3-outposts:ReplicateDelete",
  3. "s3-outposts:ReplicateTags"
  ```
+ EventBridge は、オブジェクトがレプリケート先の Outposts にレプリケートされない場合に通知できます。詳細については、「[S3 Replication on Outposts に EventBridge を使用する](outposts-replication-eventbridge.md)」を参照してください。