

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon ECR에서 프라이빗 이미지 복제
<a name="replication"></a>

리포지토리 복제를 지원하도록 Amazon ECR 프라이빗 레지스트리를 구성할 수 있습니다. Amazon ECR은 리전 간 복제와 교차 계정 복제를 모두 지원합니다. 교차 계정 복제가 발생하려면 대상 계정이 소스 레지스트리에서 복제가 수행되도록 레지스트리 권한 정책을 구성해야 합니다. 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 권한](registry-permissions.md) 단원을 참조하십시오.

**Topics**
+ [교차 계정 복제 정책 요구 사항](#replication-policy-clarification)
+ [프라이빗 이미지 복제 관련 고려 사항](#replication-considerations)
+ [Amazon ECR에 대한 프라이빗 이미지 복제 예제](registry-settings-examples.md)
+ [Amazon ECR에서 프라이빗 이미지 복제 구성](registry-settings-configure.md)
+ [Amazon ECR의 프라이빗 이미지 복제 설정 제거](registry-settings-remove.md)

## 교차 계정 복제 정책 요구 사항
<a name="replication-policy-clarification"></a>

교차 계정 ECR 복제가 제대로 작동하려면 어느 계정에 어느 정책이 구성되어야 하는지 이해해야 합니다. 이 섹션은 소스 및 대상 계정 모두에 대한 정책 요구 사항을 명확히 설명합니다.

### 정책 구성 개요
<a name="replication-policy-overview"></a>

교차 계정 ECR 복제에는 **대상 계정에 대한 정책 구성만** 필요합니다. 소스 계정에는 특별한 리포지토리 또는 레지스트리 정책이 필요하지 않습니다.
+ **소스 계정**: 레지스트리 설정에서 복제 규칙을 구성합니다. 소스 리포지토리에는 추가 정책이 필요하지 않습니다.
+ **대상 계정**: 소스 계정이 이미지를 복제할 수 있도록 레지스트리 권한 정책을 구성합니다.

### 대상 레지스트리 정책 요구 사항
<a name="destination-registry-policy-requirements"></a>

대상 계정은 소스 계정에 다음 작업을 수행할 수 있는 권한을 부여하는 레지스트리 권한 정책을 구성해야 합니다.
+ `ecr:ReplicateImage` - 소스 계정이 대상 레지스트리에 이미지를 복제하도록 허용합니다.
+ `ecr:CreateRepository` - 대상 레지스트리에 리포지토리가 아직 없는 경우 ECR이 자동으로 생성할 수 있도록 허용합니다.

**중요**  
`ecr:CreateRepository` 권한을 부여하지 않는 경우, 복제에 성공하기 전에 대상 계정에 동일한 이름으로 리포지토리를 수동으로 생성해야 합니다.

대상 레지스트리 정책의 예:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowCrossAccountReplication",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": [
                "ecr:ReplicateImage",
                "ecr:CreateRepository"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 소스 계정 요구 사항
<a name="source-account-requirements"></a>

소스 계정은 다음 작업만 수행하면 됩니다.
+ 레지스트리 설정에서 복제 규칙을 구성하여 대상 계정 및 리전을 지정합니다.
+ 복제를 구성하는 IAM 위탁자에 필요한 ECR 권한이 있는지 확인합니다.

**소스 리포지토리에는 추가 정책이 필요하지 않습니다.** 소스 리포지토리에는 복제 권한을 부여하는 리포지토리 정책이 필요하지 않습니다.

### 일반적인 오해
<a name="common-misconceptions"></a>

다음은 ECR 교차 계정 복제 정책에 대한 일반적인 오해입니다.
+ **오해**: 소스 리포지토리에는 대상 계정이 이미지를 복제하도록 허용하는 정책이 필요합니다.

  **사실**: 소스 리포지토리는 복제를 위한 특별한 정책이 필요하지 않습니다.
+ **오해**: 소스 계정과 대상 계정 모두에 레지스트리 정책이 필요합니다.

  **사실**: 대상 계정에만 레지스트리 권한 정책이 필요합니다.
+ **오해**: 리포지토리 정책과 레지스트리 정책은 같은 것입니다.

  **사실**: 리포지토리 정책은 개별 리포지토리에 대한 액세스를 제어하는 반면, 레지스트리 정책은 복제와 같은 레지스트리 수준 작업을 제어합니다.

### 복제 실패 문제 해결
<a name="replication-troubleshooting"></a>

교차 계정 복제에 실패하는 경우 다음을 확인하세요.
+ 대상 계정에 레지스트리 권한 정책이 구성되어 있는지 확인합니다.
+ 레지스트리 정책에 `ecr:ReplicateImage` 및 `ecr:CreateRepository` 작업이 모두 포함되어 있는지 확인합니다.
+ 소스 계정 ID가 대상 레지스트리 정책에 올바르게 지정되어 있는지 확인합니다.
+ 대상 리포지토리가 있는지 확인합니다(`ecr:CreateRepository`가 부여되지 않은 경우).
+ CloudTrail 로그에서 실패한 `CreateRepository` 또는 `ReplicateImage` API 호출을 검토합니다.

## 프라이빗 이미지 복제 관련 고려 사항
<a name="replication-considerations"></a>

프라이빗 이미지 복제를 사용할 때는 다음 사항을 고려해야 합니다.
+ 복제가 구성된 후 리포지토리로 푸시되거나 복원된 리포지토리 콘텐츠만 복제됩니다. 리포지토리의 기존 콘텐츠는 복제되지 않습니다. 복제를 켠 후 이미지가 복원되면 복제됩니다. 복제가 활성화되기 전에 복원되면 복제되지 않습니다.
+ 리포지토리 이름은 복제가 수행된 경우 여러 리전과 계정에서 동일하게 유지됩니다. Amazon ECR은 복제 중에 리포지토리 이름 변경을 지원하지 않습니다.
+ Amazon ECR은 복제에 대한 프라이빗 레지스트리를 처음 구성할 때 사용자를 대신하여 서비스 연결 IAM 역할을 생성합니다. 서비스 연결 IAM 역할은 Amazon ECR 복제 서비스에 리포지토리를 생성하고 레지스트리에서 이미지를 복제하는 데 필요한 권한을 부여합니다. 자세한 내용은 [Amazon ECR에 대한 서비스 연결 역할 사용](using-service-linked-roles.md) 단원을 참조하십시오.
+ 교차 계정 복제가 발생하려면 프라이빗 레지스트리 대상에서 원본 레지스트리에서 해당 이미지를 복제할 수 있는 권한을 부여해야 합니다. 이 작업은 프라이빗 레지스트리 권한 정책을 설정하여 수행됩니다. 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 권한](registry-permissions.md) 단원을 참조하십시오.
+ 프라이빗 레지스트리에 대한 권한 정책이 권한을 제거하도록 변경되면 이전에 부여된 진행 중인 복제가 완료될 수 있습니다.
+ 리전 간 복제를 수행하려면 해당 리전 내에서 또는 리전에 대한 복제 작업을 수행하기 전에 소스 계정과 대상 계정을 모두 리전에 옵트인해야 합니다. 자세한 내용은Amazon Web Services 일반 참조**의 [AWS 리전 관리](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)를 참조하세요.
+  AWS 파티션 간에는 교차 리전 복제가 지원되지 않습니다. 예를 들어, `us-west-2`의 리포지토리는 ` cn-north-1`에 복제할 수 없습니다. AWS 파티션에 대한 자세한 내용은 *AWS 일반* 참조의 [ARN 형식을](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#arns-syntax) 참조하세요.
+ 프라이빗 레지스트리에 대한 복제 구성에는 모든 규칙에서 최대 25개의 고유 대상이 포함될 수 있으며 최대 10개의 규칙이 포함됩니다. 각 규칙에는 최대 100개의 필터가 포함될 수 있습니다. 이를 통해 예를 들어, 프로덕션 및 테스트에 사용되는 이미지가 포함된 리포지토리에 대해 별도의 규칙을 지정할 수 있습니다.
+ 복제 구성은 리포지토리 접두사를 지정하여 프라이빗 레지스트리에서 복제되는 리포지토리 필터링을 지원합니다. 예제는 [예제: 리포지토리 필터를 사용하여 교차 리전 복제 구성](registry-settings-examples.md#registry-settings-examples-crr-filter) 섹션을 참조하세요.
+ 복제 작업은 이미지 푸시 또는 이미지 복원당 한 번만 수행됩니다. 예를 들어, `us-west-2`에서 ` us-east-1`로 그리고 `us-east-1`에서 `us-east-2`로 교차 리전 복제를 구성한 경우 `us-west-2`로 푸시된 이미지는 `us-east-1`으로만 복제를 하고 `us-east-2`로 다시 복제하지 않습니다. 이 동작은 교차 리전 및 교차 계정 복제에 모두 적용됩니다.
+ 대부분의 이미지는 30분 이내에 복제되지만 드문 경우 복제에 시간이 더 오래 걸릴 수 있습니다.
+ 레지스트리 복제는 삭제 작업이나 아카이브 작업을 수행하지 않습니다. 복제된 이미지와 리포지토리는 더 이상 사용되지 않을 때 삭제하거나 보관할 수 있습니다.
+ 복제할 이미지가 대상에 아카이브된 경우 대상에 복원됩니다.
+ 이미지가 소스 리전에 아카이브되면 복제 구성에 지정된 대상 리전에 아카이브되지 않습니다.
+ IAM 정책 및 수명 주기 정책을 비롯한 리포지토리 정책은 복제되지 않으며 정의된 리포지토리 외에는 영향을 주지 않습니다.
+ 리포지토리 설정은 기본적으로 복제되지 않으며, 리포지토리 생성 템플릿을 사용하여 리포지토리 설정을 복제할 수 있습니다. 이러한 설정에는 태그 변경 가능성, 암호화, 리포지토리 권한 및 수명 주기 정책이 포함됩니다. 리포지토리 생성 템플릿에 대한 자세한 내용은 [풀스루 캐시, 푸시 시 생성 또는 복제 작업 중에 생성된 리포지토리를 제어하는 템플릿](repository-creation-templates.md) 섹션을 참조하세요.
+ 리포지토리에서 태그 불변성이 활성화되어 있고 기존 이미지와 동일한 태그를 사용하는 이미지가 복제되면 이미지가 복제되지만 중복된 태그는 포함되지 않습니다. 이로 인해 이미지에 태그가 지정되지 않을 수 있습니다.
+ 이미지를 복제할 때 Blob 탑재가 구성된 경우 ECR은 소스 리포지토리의 계층이 대상 레지스트리에 이미 있는지 확인합니다. 대상 레지스트리에 계층이 이미 있는 경우 ECR은 해당 계층을 탑재합니다.

**참고**  
소스 레지스트리가 대상 레지스트리와 다른 경우 ECR이 복제된 계층을 탑재하려면 두 레지스트리 모두에 대해 BLOB 탑재를 활성화해야 합니다.

# Amazon ECR에 대한 프라이빗 이미지 복제 예제
<a name="registry-settings-examples"></a>

다음 예제는 프라이빗 이미지 복제에 대한 일반적인 사용 사례를 보여줍니다. 를 사용하여 복제를 구성하는 경우 JSON 파일을 생성할 때 JSON 예제를 시작점으로 사용할 AWS CLI수 있습니다. AWS Management Console을 사용하여 복제를 구성하는 경우 **검토 및 제출** 페이지에서 복제 규칙을 검토할 때 유사한 JSON이 표시됩니다.

## 예제: 단일 대상 리전에 대한 교차 리전 복제 구성
<a name="registry-settings-examples-crr-single"></a>

다음은 단일 레지스트리 내에서 교차 리전 복제를 구성하는 예를 보여줍니다. 이 예제에서는 계정 ID가 ` 111122223333`이고 `us-west-2` 이외의 리전에서 이 복제 구성을 지정한다는 것을 가정합니다.

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

## 예제: 리포지토리 필터를 사용하여 교차 리전 복제 구성
<a name="registry-settings-examples-crr-filter"></a>

다음은 접두사 이름 값과 일치하는 리포지토리에 대해 교차 리전 복제를 구성하는 예제입니다. 이 예제에서는 계정 ID가 ` 111122223333`이고 `us-west-1` 이외의 리전에서 이 복제 구성을 지정하고 접두사가 `prod`인 리포지토리가 있다는 것을 가정합니다.

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

## 예제: 단일 대상 리전에 대한 교차 리전 복제 구성
<a name="registry-settings-examples-crr-multipledestinations"></a>

다음은 단일 레지스트리 내에서 교차 리전 복제를 구성하는 예를 보여줍니다. 이 예제에서는 계정 ID가 ` 111122223333` 이고 `us-west-1` 또는 이외의 리전에서이 복제 구성을 지정한다고 가정합니다`us-west-2`.

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

## 예제: 교차 계정 복제 구성
<a name="registry-settings-examples-crossaccount"></a>

다음은 레지스트리에 대한 교차 계정 복제를 구성하는 예를 보여 줍니다. 이 예제에서는 `444455556666` 계정 및 `us-west-2` 리전에 대한 복제를 구성합니다.

**중요**  
교차 계정 복제가 발생하려면 대상 계정에서 복제를 허용하도록 레지스트리 권한 정책을 구성해야 합니다. 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 권한](registry-permissions.md) 단원을 참조하십시오.

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

## 예제: 구성에서 여러 규칙 지정
<a name="registry-settings-examples-multiple-rules"></a>

다음은 레지스트리에 대해 여러 복제 규칙을 구성하는 예제를 소개합니다. 이 예제에서는 접두사가 인 * 리포지토리를 리전에 복제하고 접두사가 인 리포지토리를 리전에 복제하는 규칙 하나를 사용하여 111122223333* 계정에 대한 복제`test`를 구성합니다. `prod` `us-west-2` `us-east-2` 복제 구성에는 최대 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"
			}]
		}
	]
}
```

## 예: 모든 복제 설정 제거
<a name="registry-settings-examples-remove"></a>

다음은 레지스트리에서 모든 복제 설정을 제거하는 예제입니다. 복제 설정을 제거하려면 빈 규칙 배열을 구성해야 합니다.

```
{
    "rules": []
}
```

**중요**  
복제 설정을 제거해도 이전에 복제된 리포지토리 또는 이미지는 삭제되지 않습니다. 더 이상 필요하지 않은 경우 복제된 콘텐츠를 수동으로 삭제해야 합니다.

# Amazon ECR에서 프라이빗 이미지 복제 구성
<a name="registry-settings-configure"></a>

프라이빗 레지스트리에 대한 리전별 복제를 구성합니다. 리전 간 복제 또는 계정 간 복제를 구성할 수 있습니다.

복제가 일반적으로 사용되는 방법의 예는 [Amazon ECR에 대한 프라이빗 이미지 복제 예제](registry-settings-examples.md)을(를) 참조하세요.

## 레지스트리 복제 설정을 구성하려면(AWS Management Console)
<a name="registry-settings-configure-console"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories))을 엽니다.

1. 탐색 모음에서 레지스트리 복제 설정을 구성할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리(Private registry)**를 선택합니다.

1. **프라이빗 레지스트리** 페이지에서 ** 설정을** 선택한 다음 **복제 구성**에서 **편집**을 선택합니다.

1. **복제(Replication)** 페이지에서 **복제 규칙 추가(Add replication rule)**를 선택합니다.

1. **대상 유형(Destination types)** 페이지에서 교차 리전 복제, 교차 계정 복제 또는 둘 다를 사용하도록 설정할지 선택한 후, **다음(Next)**을 선택합니다.

1. 교차 리전 복제가 활성화된 경우 **대상 리전 구성(Configure destination regions)**에서 하나 이상의 **대상 리전(Destination regions)**을 선택한 후 **다음(Next)**을 선택합니다.

1. 교차 계정 복제가 활성화된 경우 **교차 계정 복제(Cross-account replication)**에서 레지스트리에 대한 교차 계정 복제 설정을 선택합니다. **대상 계정(Destination account)**에 대상 계정의 계정 ID와 하나 이상의 복제할 **대상 리전(Destination regions)**을 입력합니다. **대상 계정 \$1(Destination account \$1)**를 선택하여 추가 계정을 복제 대상으로 구성합니다.
**중요**  
교차 계정 복제가 발생하려면 대상 계정에서 복제를 허용하도록 레지스트리 권한 정책을 구성해야 합니다. 자세한 내용은 [Amazon ECR의 프라이빗 레지스트리 권한](registry-permissions.md) 단원을 참조하십시오.

1. (선택 사항) **필터 추가(Add filters)**페이지에서 복제 규칙에 대해 하나 이상의 필터를 지정한 다음 **추가(Add)**를 선택합니다. 복제 작업과 연결할 각 필터에 대해 이 단계를 반복합니다. 필터는 리포지토리 이름 접두사로 지정되어야 합니다. 필터가 추가되지 않으면 모든 리포지토리 내용이 복제됩니다. 모든 필터가 추가되면 **다음(Next)**을 선택합니다.

1. **검토 및 제출(Review and submit)** 페이지에서 복제 규칙 구성을 검토한 다음 **규칙 제출(Submit rulte)**을 선택합니다.

## 레지스트리 복제 설정을 구성하려면(AWS CLI)
<a name="registry-settings-configure-cli"></a>

1. 레지스트리에 대해 정의할 복제 규칙이 포함된 JSON 파일을 만듭니다. 복제 구성에는 모든 규칙에 대해 최대 25개의 고유 대상과 각 규칙당 100개의 필터가 있는 최대 10개의 규칙이 포함될 수 있습니다. 자체 계정 내에서 교차 리전 복제를 구성하려면 고유의 계정 ID를 지정합니다. 더 많은 예시는 [Amazon ECR에 대한 프라이빗 이미지 복제 예제](registry-settings-examples.md)를 참조합니다.

   ```
   {
   	"rules": [{
   		"destinations": [{
   			"region": "destination_region",
   			"registryId": "destination_accountId"
   		}],
   		"repositoryFilters": [{
   			"filter": "repository_prefix_name",
   			"filterType": "PREFIX_MATCH"
   		}]
   	}]
   }
   ```

1. 레지스트리에 대한 복제 구성을 생성합니다.

   ```
   aws ecr put-replication-configuration \
        --replication-configuration file://replication-settings.json \
        --region us-west-2
   ```

1. 레지스트리 설정을 확인합니다.

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

# Amazon ECR의 프라이빗 이미지 복제 설정 제거
<a name="registry-settings-remove"></a>

프라이빗 레지스트리에 대한 복제 설정을 제거하거나 비활성화하려면 빈 복제 구성을 설정해야 합니다. AWS CLI에는 전용 제거 명령이 없습니다.

## 레지스트리 복제 설정을 제거하려면(AWS Management Console)
<a name="registry-settings-remove-console"></a>

1. Amazon ECR 콘솔([https://console.aws.amazon.com/ecr/repositories](https://console.aws.amazon.com/ecr/repositories))을 엽니다.

1. 탐색 모음에서 레지스트리 복제 설정을 제거할 리전을 선택합니다.

1. 탐색 창에서 **프라이빗 레지스트리**를 선택합니다.

1. **프라이빗 레지스트리** 페이지에서 ** 설정을** 선택한 다음 **복제 구성**에서 **편집**을 선택합니다.

1. 각 규칙에 대해 삭제 옵션을 선택하여 기존 복제 규칙을 모두 제거합니다.

1. **저장**을 선택하여 빈 복제 구성을 적용합니다.

## 레지스트리 복제 설정을 제거하려면(AWS CLI)
<a name="registry-settings-remove-cli"></a>

1. 빈 규칙 배열이 있는 JSON 파일을 생성하여 모든 복제 설정을 제거합니다.

   ```
   {
       "rules": []
   }
   ```

1. 레지스트리에 빈 복제 구성을 적용합니다.

   ```
   aws ecr put-replication-configuration \
        --replication-configuration file://empty-replication-settings.json \
        --region us-west-2
   ```

1. 복제 설정이 제거되었는지 확인합니다.

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

   출력에는 규칙이 없는 빈 `replicationConfiguration`이 표시되어야 합니다.

**중요**  
복제 설정을 제거해도 이전에 복제된 리포지토리 또는 이미지는 삭제되지 않습니다. 더 이상 필요하지 않은 경우 복제된 콘텐츠를 수동으로 삭제해야 합니다.