

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# レプリケーションのバックフィル
<a name="replication-backfill"></a>

Amazon ECR プライベートレジストリ内の既存のイメージは、設定されたレプリケーション先にレプリケートできます。デフォルトでは、レプリケーションは、レプリケーション設定の適用後にプッシュされたイメージにのみ適用されます。レプリケーションバックフィルを使用すると、レプリケーションを設定する前にプッシュしたイメージをレプリケートできます。

## レプリケーションバックフィルの仕組み
<a name="replication-backfill-how-it-works"></a>

レプリケーションバックフィルを開始するときは、リージョンとレジストリ ID で構成される 1 つの送信先を指定します。Amazon ECR は、既存のレプリケーション設定を評価して、レジストリ内のどのイメージが指定された宛先へのバックフィルの対象となるかを判断します。現在のレプリケーション設定ルールに一致するイメージのみがバックフィルに含まれます。

各レプリケーションバックフィルは 1 つの送信先を対象とします。複数の送信先にイメージをバックフィルするには、送信先ごとに個別のレプリケーションバックフィルを開始します。各 は、進行状況のモニタリング、結果の表示、必要に応じて停止`replicationBackfillId`に使用する一意の によって識別されます。

## レプリケーションのバックフィルライフサイクル
<a name="replication-backfill-lifecycle"></a>

レプリケーションバックフィルは、次のステータスに移行します。
+ `PREPARING`: Amazon ECR はレジストリ内の対象イメージを識別しています。
+ `IN_PROGRESS`: Amazon ECR はイメージを送信先にアクティブにレプリケートしています。
+ `COMPLETE`: 対象となるすべてのイメージが正常にレプリケートされました。
+ `FAILED`: 基盤となるレプリケーションの 50% 以上が失敗すると、レプリケーションバックフィルは自動的に失敗します。このしきい値は、少なくとも 100 個のレプリケーションが処理された後にのみ評価されます。
+ `STOPPING`: 停止がリクエストされ、Amazon ECR は処理中のレプリケーションが完了するまで待機しています。
+ `STOPPED`: レプリケーションバックフィルを停止し、すべての処理中のレプリケーションが終了しました。

**注記**  
レプリケーションバックフィルは、 `PREPARING` または `IN_PROGRESS`ステータスの場合にのみ停止できます。

## レプリケーションバックフィルに関する考慮事項
<a name="replication-backfill-considerations"></a>

レプリケーションバックフィルを使用する場合は、次の点を考慮する必要があります。
+ 指定された送信先の現在のレプリケーション設定に一致するイメージのみがバックフィルに含まれます。レプリケーション設定にない送信先にイメージをバックフィルする必要がある場合は、まずその送信先をレプリケーションルールに追加する必要があります。
+ レジストリごとに最大 10 個のレプリケーションバックフィルを同時に実行できます。さらに開始すると、Amazon ECR は`LimitExceededException`エラーを返します。
+ 特定のレプリケート先リージョンに対して一度に 1 つのアクティブなレプリケーションバックフィルのみを持つことができます。同じ送信先リージョンに対する 2 番目のリクエストは`ReplicationBackfillInProgressException`エラーを返します。
+ Amazon ECR は、レプリケーションバックフィルを終了状態 (`COMPLETE`、`FAILED`、または `STOPPED`) に 90 日間保持します。その間は、`ListReplicationBackfills`レスポンスに表示されたままになります。
+ レプリケーションバックフィルを停止しても、すでにレプリケートされたイメージはロールバックされません。これらのイメージは送信先レジストリに残ります。
+ レプリケーションバックフィルは、プライベートレジストリのレプリケーションを初めて設定するときに Amazon ECR が作成するのと同じサービスにリンクされたロールを使用します。
+ ほとんどのレジストリは 1 時間以内にバックフィルを完了することが予想されます。ただし、大量のデータを含むレジストリは、完全にバックフィルするまでに数時間または数日かかることがあります。
+ レプリケーションバックフィルは、ソースリポジトリが削除されたイメージをスキップします。これらのイメージは、バックフィル結果に`FAILED`ステータスで表示されます。
+ Amazon ECR は、レプリケーションバックフィルがターミナルステータスに達したときに EventBridge イベントを送信します。詳細については、「[Amazon ECR のサンプルイベント](ecr-eventbridge.md#ecr-eventbridge-bus)」を参照してください。

## レプリケーションバックフィルの開始
<a name="replication-backfill-start"></a>

### レプリケーションバックフィルを開始するには (AWS マネジメントコンソール)
<a name="replication-backfill-start-console"></a>

1. [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) で Amazon ECR コンソールを開きます。

1. ナビゲーションバーから、バックフィル元のソースレジストリのリージョンを選択します。

1. ナビゲーションペインで、[**Private registry**] (プライベートレジストリ) を選択します。

1. **プライベートレジストリ**ページで、**設定**を選択し、**レプリケーション設定**で**編集**を選択します。

1. **レプリケーション**ページで、**ジョブのバックフィル**タブを選択します。

1. **バックフィルジョブの開始**を選択します。

1. バックフィルする送信先を最大 10 個選択します。

1. **バックフィルジョブの開始** を選択します。

### レプリケーションバックフィルを開始するには (AWS CLI)
<a name="replication-backfill-start-cli"></a>
+ レプリケーションバックフィルを開始します。

  ```
  aws ecr start-replication-backfill \
      --region {{us-west-2}} \
      --registry-id {{aws_account_id}} \
      --destination region={{destination_region}},registryId={{destination_aws_account_id}}
  ```

## レプリケーションバックフィルの進行状況のモニタリングと結果の表示
<a name="replication-backfill-monitor"></a>

### レプリケーションバックフィルの進行状況をモニタリングし、レプリケーションバックフィルの結果を表示するには (AWS マネジメントコンソール)
<a name="replication-backfill-monitor-console"></a>

1. [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) で Amazon ECR コンソールを開きます。

1. ナビゲーションバーから、レプリケーションバックフィルを含むリージョンを選択します。

1. ナビゲーションペインで、[**Private registry**] (プライベートレジストリ) を選択します。

1. **プライベートレジストリ**ページで、**設定**を選択し、**レプリケーション設定**で**編集**を選択します。

1. **レプリケーション**ページで、**バックフィルジョブ**タブを選択して進行状況をモニタリングし、レプリケーションバックフィルの結果を表示します。

### レプリケーションバックフィルの進行状況をモニタリングし、レプリケーションバックフィルの結果を表示するには (AWS CLI)
<a name="replication-backfill-monitor-cli"></a>

1. 進行状況をモニタリングしたり、レプリケーションバックフィルの結果を表示したりするには、次のコマンドを実行します。レプリケーションバックフィルの進行中、レスポンスには進行状況カウントのみが含まれます。画像ごとの結果とページ分割は、完了後にのみ使用できます。

   ```
   aws ecr describe-replication-backfill-results \
       --region {{us-west-2}} \
       --registry-id {{aws_account_id}} \
       --replication-backfill-id {{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}} \
       --max-results 1000 \
       --result-status-filter COMPLETE
   ```

1. すべてのレプリケーションバックフィルの概要情報を表示するには、次のコマンドを実行します。

   ```
   aws ecr list-replication-backfills \
       --region {{us-west-2}} \
       --registry-id {{aws_account_id}} \
       --max-results 50
   ```

## レプリケーションバックフィルの停止
<a name="replication-backfill-stop"></a>

### レプリケーションバックフィルを停止するには (AWS マネジメントコンソール)
<a name="replication-backfill-stop-console"></a>

1. [https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories) で Amazon ECR コンソールを開きます。

1. ナビゲーションバーから、レプリケーションバックフィルを含むリージョンを選択します。

1. ナビゲーションペインで、[**Private registry**] (プライベートレジストリ) を選択します。

1. **プライベートレジストリ**ページで、**設定**を選択し、**レプリケーション設定**で**編集**を選択します。

1. **レプリケーション**ページで、**ジョブのバックフィル**タブを選択します。

1. 停止するレプリケーションバックフィルを選択します。

1. **バックフィルジョブを停止**を選択します。

### レプリケーションバックフィルを停止するには (AWS CLI)
<a name="replication-backfill-stop-cli"></a>
+ レプリケーションバックフィルを停止するには、次のコマンドを実行します。

  ```
  aws ecr stop-replication-backfill \
      --region {{us-west-2}} \
      --registry-id {{aws_account_id}} \
      --replication-backfill-id {{a1b2c3d4-5678-90ab-cdef-EXAMPLE11111}}
  ```