プライベートイメージレプリケーションの設定 - Amazon ECR

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

プライベートイメージレプリケーションの設定

プライベートレジストリのレプリケーション設定は、リージョンごとに個別に設定されます。AWS Management Console または AWS CLI のいずれかを使用して、プライベートレジストリのレプリケーションを設定するには、次の手順を使用します。レプリケーションの一般的な使用方法の例については、プライベートイメージのレプリケーション例 を参照してください。

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

  2. ナビゲーションバーから、レジストリのレプリケーション設定を構成するリージョンを選択します。

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

  4. [Private registry] (プライベートレジストリ) ページの [Replication] (レプリケーション) セクションで、[Edit] (編集) をクリックします。

  5. [Replication] (レプリケーション) ページで [Add replication rule] (レプリケーションルールを追加) をクリックします。

  6. [Destination types] (送信先タイプ) ページで、クロスリージョンレプリケーションもしくはクロスアカウントレプリケーションのいずれか、またはそれら両方を有効にしてから、[Next] (次へ) をクリックします。

  7. クロスリージョンレプリケーションを有効にした場合は、[Configure destination regions] (送信先リージョンを設定) で、1 つ、または複数の [Destination regions] (送信先リージョン) を選択し、[Next] (次へ) をクリックします。

  8. クロスアカウントレプリケーションを有効にした場合は、[Cross-account replication] (クロスアカウントレプリケーション) で、レジストリのクロスアカウントレプリケーション設定を選択します。[Destination account] (送信先アカウント) には送信先アカウントのアカウント ID を入力し、レプリケート先にする 1 つ、または複数の [Destination regions] (送信先リージョン) を選択します。レプリケーションの送信先として追加のアカウントを設定するには、[Destination account +] (送信先アカウント +) をクリックします。

    重要

    クロスアカウントレプリケーションを実行するには、ターゲットアカウントで、レプリケーションを許可するレジストリのアクセス許可ポリシーを設定する必要があります。詳細については、「プライベートレジストリの許可」を参照してください。

  9. (オプション) [Add filters] (フィルターを追加) ページで、レプリケーションルールに対して 1 つ、または複数のフィルターを指定してから、[Add] (追加) をクリックします。レプリケーションアクションに関連付けるフィルターごとに、このステップを繰り返します。フィルターはリポジトリ名のプレフィックスとして指定する必要があります。フィルターを追加しない場合、すべてのリポジトリの内容が複製されます。[Next] (次へ) をクリックすると、すべてのフィルターが追加されます。

  10. [Review and submit] (確認して送信) ページでレプリケーションルールの設定を確認してから、[Submit rule] (ルールを送信) をクリックします。

  1. レジストリ用に定義するレプリケーションルールが含まれた JSON ファイルを作成します。レプリケーション設定には最大 10 個のルールを含めることができ、各ルールが最大 25 個の送信先と 100 個のフィルターを指定します。独自のアカウント内でクロスリージョンレプリケーションを設定するには、独自のアカウント ID を指定します。その他の例については、「プライベートイメージのレプリケーション例」を参照してください。

    { "rules": [{ "destinations": [{ "region": "destination_region", "registryId": "destination_accountId" }], "repositoryFilters": [{ "filter": "repository_prefix_name", "filterType": "PREFIX_MATCH" }] }] }
  2. レジストリのレプリケーション設定を作成します。

    aws ecr put-replication-configuration \ --replication-configuration file://replication-settings.json \ --region us-west-2
  3. レジストリ設定を確認します。

    aws ecr describe-registry \ --region us-west-2

プライベートイメージのレプリケーション例

以下の例は、プライベートのイメージレプリケーションの一般的な使用事例を示しています。

例: 単一の送信先リージョンへのクロスリージョンレプリケーションの設定

次に、単一のレジストリ内でのクロスリージョンレプリケーション設定の例を示します。この例では、アカウント ID が 111122223333 であること、およびこのレプリケーション設定が us-west-2 以外のリージョンで指定されていることを前提とします。

{ "rules": [ { "destinations": [ { "region": "us-west-2", "registryId": "111122223333" } ] } ] }

例: リポジトリフィルターを使用したクロスリージョンレプリケーションの設定

以下は、プレフィックス名の値と一致するリポジトリのクロスリージョンレプリケーションを設定する例です。この例は、アカウント ID が 111122223333 であること、us-west-1 以外のリージョンでこのレプリケーション設定を指定していること、およびプレフィックスが prod のリポジトリがあることを前提としています。

{ "rules": [{ "destinations": [{ "region": "us-west-1", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "prod", "filterType": "PREFIX_MATCH" }] }] }

例: 複数の送信先リージョンへのクロスリージョンレプリケーションの設定

次に、単一のレジストリ内でのクロスリージョンレプリケーション設定の例を示します。この例では、アカウント ID が 111122223333 であること、およびこのレプリケーション設定が us-west-1 および us-west-2 以外のリージョンで指定されていることを前提とします。

{ "rules": [ { "destinations": [ { "region": "us-west-1", "registryId": "111122223333" }, { "region": "us-west-2", "registryId": "111122223333" } ] } ] }

例: クロスアカウントレプリケーションの設定

次に、レジストリのクロスアカウントレプリケーション設定の例を示します。この例では、444455556666 アカウントと us-west-2 リージョンも対するレプリケーションを設定します。

重要

クロスアカウントレプリケーションを実行するには、ターゲットアカウントで、レプリケーションを許可するレジストリのアクセス許可ポリシーを設定する必要があります。詳細については、「プライベートレジストリの許可」を参照してください。

{ "rules": [ { "destinations": [ { "region": "us-west-2", "registryId": "444455556666" } ] } ] }

例: 1 つの設定内での複数のルールの指定

以下は、レジストリに複数のレプリケーションルールを設定する例です。この例は、プレフィックスが prod のリポジトリを us-west-2 リージョンにレプリケートし、プレフィックスが test のリポジトリを us-east-2 リージョンにレプリケートする 1 つのルールで 111122223333 アカウントのレプリケーションを設定します。レプリケーション設定には最大 10 個のルールを含めることができ、各ルールが最大 25 個の送信先を指定します。

{ "rules": [{ "destinations": [{ "region": "us-west-2", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "prod", "filterType": "PREFIX_MATCH" }] }, { "destinations": [{ "region": "us-east-2", "registryId": "111122223333" }], "repositoryFilters": [{ "filter": "test", "filterType": "PREFIX_MATCH" }] } ] }