

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

# Image Builder 배포 설정 관리
<a name="manage-distribution-settings"></a>

출력 이미지에 대한 배포 설정을 구성하기 전에 배포 대상 리전의 출력 이미지에서 시작된 인스턴스에 대한 기본 인프라 또는 기타 요구 사항의 가용성을 확인하는 것이 좋습니다. 예를 들어 일부 리전은 macOS 이미지에서 인스턴스를 시작하는 데 필요한 EC2 Mac 전용 호스트를 지원하지 않습니다. 전용 호스트의 인스턴스 유형 및 요금에 대한 자세한 내용은 [Amazon EC2 전용 호스트 요금](https://aws.amazon.com/ec2/dedicated-hosts/pricing/) 섹션을 참조하세요.

Image Builder로 배포 설정을 생성한 후 Image Builder 콘솔, Image Builder API 또는 AWS CLI의 **imagebuilder** 명령을 사용하여 배포 설정을 관리할 수 있습니다. 배포 설정을 사용하면 다음 작업을 수행할 수 있습니다.

**AMI 배포**
+ 출력 AMI의 이름과 설명을 지정합니다.
+ 소유자의 계정에서 AMI를 시작할 수 있도록 다른 AWS 계정조직 및 OUs에 권한을 부여합니다. AMI와 관련된 요금은 소유자 계정으로 청구됩니다.
**참고**  
AMI를 공개하려면 시작 권한 승인 계정을 `all`(으)로 설정합니다. 자세한 내용 및 예제는 *Amazon EC2 API 참조*의 **[ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html)** 섹션을 참조하세요.
+ 대상 지역의 지정된 각 대상 계정, 조직 및 OU에 대해 출력 AMI의 사본을 생성합니다. 대상 계정, 조직 및 OU는 AMI 사본을 소유하며 모든 관련 요금이 청구됩니다. AMI를 AWS Organizations 및 OUs에 배포하는 방법에 대한 자세한 내용은 [조직 또는 OUs](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/share-amis-with-organizations-and-OUs.html).
+ AMI를 다른의 소유자 계정에 복사합니다 AWS 리전.
+ VM 이미지 디스크를 Amazon Simple Storage Service(S3)로 내보냅니다. 자세한 내용은 [예:에서 출력 VM 디스크에 대한 배포 설정 생성 AWS CLI](cr-upd-ami-distribution-settings.md#cli-create-vm-dist-config) 단원을 참조하십시오.

**컨테이너 이미지 배포**
+ Image Builder가 배포 지역에 출력 이미지를 저장하는 ECR 리포지토리를 지정합니다.

다음과 같은 방법으로 배포 설정을 사용하여 대상 리전, 계정 AWS Organizations 및 조직 단위(OUs)에 이미지를 한 번 또는 모든 파이프라인 빌드와 함께 전송할 수 있습니다.
+ 업데이트된 이미지를 지정된 리전, 계정, 조직 및 OU에 자동으로 전송하려면 일정에 따라 실행되는 Image Builder 파이프라인과 함께 배포 설정을 사용하세요.
+ 새 이미지를 생성하여 지정된 리전, 계정, 조직 및 OU에 전달하려면, **작업** 메뉴의 **파이프라인 실행**을 사용하여 Image Builder 콘솔에서 한 번 실행하는 Image Builder 파이프라인과 함께 배포 설정을 사용하세요.
+ 새 이미지를 생성하여 지정된 리전, 계정, 조직 및 OU에 전달하려면 AWS CLI에서 다음 API 작업 또는 Image Builder 명령과 함께 배포 설정을 사용하세요.
  + Image Builder API에서 **[CreateImage](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateImage.html)** 작업.
  +  AWS CLI에서 **[create-image](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-image.html)** 명령.
+ 일반 이미지 빌드 프로세스의 일환으로 가상 머신(VM) 이미지 디스크를 대상 지역의 S3 버킷으로 내보내는 것입니다.

**작은 정보**  
동일한 유형의 리소스가 여러 개 있는 경우, 태그를 지정하면 할당한 태그에 따라 특정 리소스를 식별하는 데 도움이 됩니다. 에서 Image Builder 명령을 사용하여 리소스에 태그를 지정하는 방법에 대한 자세한 내용은이 가이드의 [리소스 태깅](tag-resources.md) 섹션을 AWS CLI참조하세요.

**Topics**
+ [배포 구성에 대한 세부 정보 나열 및 보기](distribution-settings-detail.md)
+ [AMI 배포 구성 생성 및 업데이트](cr-upd-ami-distribution-settings.md)
+ [컨테이너 이미지의 배포 설정 생성 및 업데이트](cr-upd-container-distribution-settings.md)
+ [Image Builder로 크로스 계정 AMI 배포 설정](cross-account-dist.md)
+ [EC2 시작 템플릿을 사용하여 AMI 배포 구성](dist-using-launch-template.md)
+ [향상된 AMI 배포 기능 사용](distribution-enhanced_functionality.md)

# 배포 구성에 대한 세부 정보 나열 및 보기
<a name="distribution-settings-detail"></a>

이 섹션에서는 EC2 Image Builder 배포 구성에 대한 정보를 찾고 세부 정보를 볼 수 있는 다양한 방법을 설명합니다.

**Topics**
+ [콘솔에서 배포 구성 나열](#list-distribution-config-console)
+ [콘솔에서 배포 구성 세부 정보 보기](#view-distribution-config-details-console)
+ [에서 배포 나열 AWS CLI](#cli-list-distributions)
+ [에서 배포 구성 세부 정보 가져오기 AWS CLI](#cli-get-distribution-configuration)

## 콘솔에서 배포 구성 나열
<a name="list-distribution-config-console"></a>

Image Builder 콘솔에서 사용자 계정으로 생성된 배포 구성 목록을 보려면 다음 단계를 따르세요.

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)에서 EC2 Image Builder 콘솔을 엽니다.

1. 탐색 창에서 **배포 설정**을 선택합니다. 여기에는 사용자 계정에서 생성된 배포 구성 목록이 표시됩니다.

1. 세부 정보를 보거나 새 배포 구성을 만들려면 **구성 이름** 링크를 선택합니다. 이를 통해 배포 설정의 세부 정보 보기가 열립니다.
**참고**  
또한 **구성 이름** 옆에 있는 확인란을 선택한 다음 **세부 정보 보기**를 선택할 수 있습니다.

## 콘솔에서 배포 구성 세부 정보 보기
<a name="view-distribution-config-details-console"></a>

Image Builder 콘솔을 사용하여 특정 배포 구성의 세부 정보를 보려면 [콘솔에서 배포 구성 나열](#list-distribution-config-console)에 설명된 단계를 사용하여 검토할 구성을 선택합니다.

배포 세부 정보 페이지에서 다음을 수행할 수 있습니다.
+ 배포 구성을 **삭제**합니다. Image Builder에서 리소스 삭제에 대한 자세한 내용은 [오래되거나 사용되지 않는 Image Builder 리소스 삭제](delete-resources.md)(을)를 참조하세요.
+ 배포 세부 정보를 **편집**합니다.

## 에서 배포 나열 AWS CLI
<a name="cli-list-distributions"></a>

다음 예제에서는에서 **[list-distribution-configurations](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/list-distribution-configurations.html)** 명령을 사용하여 모든 배포를 나열 AWS CLI 하는 방법을 보여줍니다.

```
aws imagebuilder list-distribution-configurations
```

## 에서 배포 구성 세부 정보 가져오기 AWS CLI
<a name="cli-get-distribution-configuration"></a>

다음 예제에서는에서 **[get-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/get-distribution-configuration.html)** 명령을 사용하여 Amazon 리소스 이름(ARN)을 지정하여 배포 구성의 세부 정보를 AWS CLI 가져오는 방법을 보여줍니다.

```
aws imagebuilder get-distribution-configuration --distribution-configuration-arn arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/my-example-distribution-configuration
```

# AMI 배포 구성 생성 및 업데이트
<a name="cr-upd-ami-distribution-settings"></a>

이 섹션에서는 Image Builder AMI의 배포 구성을 생성하고 업데이트하는 방법을 다룹니다.

**Topics**
+ [AMI 배포 사전 조건](#ami-distribution-config-prereqs)
+ [AMI 배포 구성 생성](#create-ami-distribution-config)
+ [AMI 배포 구성 업데이트](#update-ami-distribution-config)
+ [예: 출력 AMIs용 시작 템플릿을 사용하여 EC2 Fast Launch 활성화](#create-ami-dist-win-fast-launch)
+ [예:에서 출력 VM 디스크에 대한 배포 설정 생성 AWS CLI](#cli-create-vm-dist-config)

## AMI 배포 사전 조건
<a name="ami-distribution-config-prereqs"></a>

일부 배포 설정에는 다음과 같은 사전 조건이 있습니다.

**Topics**
+ [SSM 출력 파라미터 사전 조건](#ami-distribution-prereqs-ssm-param)
+ [EC2 Fast Launch 사전 조건](#ami-distribution-prereqs-fast-launch)

### SSM 출력 파라미터의 사전 조건
<a name="ami-distribution-prereqs-ssm-param"></a>

 AWS Systems Manager Parameter Store 파라미터(SSM 파라미터)를 설정하는 새 AMI 배포 구성을 생성하기 전에 다음 사전 조건을 충족했는지 확인합니다.

**실행 역할**  
파이프라인을 생성하거나에서 create-image 명령을 사용하는 경우 Image Builder 실행 역할을 하나만 지정할 AWS CLI수 있습니다. Image Builder 워크플로 실행 역할을 정의한 경우 해당 역할에 추가 기능 권한을 추가합니다. 그렇지 않으면 필요한 권한이 포함된 새 사용자 지정 역할을 생성합니다.  
+ 배포 중에 출력 AMI ID를 SSM 파라미터에 저장하려면 Image Builder 실행 역할에서 `ssm:PutParameter` 작업을 지정하고 파라미터를 리소스로 나열해야 합니다.
+ 파라미터 데이터 형식을 로 설정`AWS EC2 Image`하여 파라미터 값을 AMI ID로 검증하도록 Systems Manager에 신호를 보내는 경우 `ec2:DescribeImages` 작업도 추가해야 합니다.

### EC2 Fast Launch의 사전 조건
<a name="ami-distribution-prereqs-fast-launch"></a>

Windows AMIs용 EC2 Fast Launch에 대한 새 배포 구성을 생성하기 전에 다음 사전 조건을 충족했는지 확인합니다.
+ EC2 Fast Launch를 구성할 때 사용자 지정 시작 템플릿을 제공하는 경우 서비스는 시작 템플릿에서 정의한 VPC와 기타 구성 설정을 사용합니다. 자세한 내용은 [ EC2 Fast Launch를 설정할 때 시작 템플릿 사용을 참조하세요](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/win-fast-launch-configure.html#win-fast-launch-with-template).
+ 사용자 지정 시작 템플릿을 사용하여 설정을 구성하지 않는 경우 Image Builder가 이미지를 생성하는 데 사용하는 IAM 역할에 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam-awsmanpol-EC2FastLaunchFullAccess.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-iam-awsmanpol-EC2FastLaunchFullAccess.html) 정책을 연결해야 합니다. 파이프라인을 생성하거나에서 create-image 명령을 사용하는 경우 Image Builder 실행 역할을 하나만 지정할 AWS CLI수 있습니다. Image Builder 워크플로 실행 역할을 정의한 경우 해당 역할에 추가 기능 권한을 추가합니다. 그렇지 않으면 필요한 권한이 포함된 새 사용자 지정 역할을 생성합니다.

  그런 다음 Image Builder가 이미지를 복사하면 EC2 Fast Launch는에 다음 리소스가 포함된 CloudFormation 스택을 자동으로 생성합니다 AWS 계정.
  + Virtual Private Cloud(VPC)
  + 여러 가용 영역의 프라이빗 서브넷
  + 인스턴스 메타데이터 서비스 버전 2(IMDSv2)로 구성된 시작 템플릿
  + 인바운드나 아웃바운드 규칙이 없는 보안 그룹

**참고**  
Image Builder는 EC2 Fast Launch가 사전 활성화된 AMI에 대한 교차 계정 배포를 지원하지 않습니다. 대상 계정에서 EC2 Fast Launch를 활성화해야 합니다.

## AMI 배포 구성 생성
<a name="create-ami-distribution-config"></a>

배포 구성에는 출력 AMI 이름, 암호화에 대한 특정 리전 설정, 시작 권한 AWS 계정, 출력 AMI를 시작할 수 있는 조직 및 조직 단위(OUs) 및 라이선스 구성이 포함됩니다.

배포 구성을 사용하면 출력 AMI의 이름과 설명을 지정하고, 다른 AWS 계정 에 AMI를 시작하고, AMI를 다른 계정에 복사하고, AMI를 다른 AWS 리전에 복제할 수 있는 권한을 부여할 수 있습니다. 또한 AMI를 Amazon Simple Storage Service(S3)로 내보내거나 출력 Windows AMI를 위한 EC2 Fast Launch를 구성할 수 있습니다. AMI를 공개하려면 시작 권한 승인 계정을 `all`(으)로 설정합니다. EC2 **[ModifyImageAttribute](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_ModifyImageAttribute.html)**에서 AMI를 공개하는 예를 참조하세요.

------
#### [ Console ]

 AWS Management Console다음 단계에 따라에서 새 AMI 배포 구성을 생성합니다.

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)에서 EC2 Image Builder 콘솔을 엽니다.

1. 탐색 창에서 **배포 설정**을 선택합니다. 여기에는 사용자 계정에서 생성된 배포 구성 목록이 표시됩니다.

1. **배포 설정 패널** 상단에 있는 **배포 설정 만들기**를 선택합니다.

1. **이미지 유형** 섹션에서 **Amazon Machine Image(AMI)** 출력 유형을 선택합니다.

1. **일반** 섹션에서 배포 구성의 **이름**과 설명(선택 사항)을 입력합니다.

1. **리전 설정** 섹션에서 AMI를 배포하는 각 리전에 대해 다음 세부 정보를 입력합니다.

   1. AMI는 기본적으로 현재 리전(**리전 1**) 에 배포됩니다. **리전 1**은 배포의 소스입니다. **리전 1**의 일부 설정은 편집할 수 없습니다. 추가하는 모든 리전의 경우 지역 드롭다운 목록에서 **리전**을 선택할 수 있습니다.

      **Kms 키**는 대상 리전에서 이미지의 EBS 볼륨을 암호화하는 데 AWS KMS key 사용되는를 식별합니다. 참고로, 빌드가 소스 리전(**리전 1**)의 사용자 계정으로 생성한 원본 AMI에는 적용되지 않습니다. 빌드의 배포 단계에서 실행되는 암호화는 다른 계정이나 리전에 배포되는 이미지에만 적용됩니다.

      계정의 소스 지역에 생성된 AMI의 EBS 볼륨을 암호화하려면 이미지 레시피 블록 디바이스 매핑(콘솔의 **스토리지(볼륨)**)에서 KMS 키를 설정해야 합니다.

      Image Builder는 AMI를 리전에 지정한 **타겟 계정** 에 복사합니다.
**사전 조건**  
계정 간에 이미지를 복사하려면 모든 배포 대상 계정에서 `EC2ImageBuilderDistributionCrossAccountRole` 역할을 생성하고 [Ec2ImageBuilderCrossAccountDistributionAccess 정책](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess) 관리형 정책을 역할에 연결해야 합니다.

      **출력 AMI 이름**은 선택 사항입니다. 이름을 제공하면 최종 출력 AMI 이름에는 AMI 구축 시점의 타임스탬프가 추가됩니다. 이름을 지정하지 않으면 Image Builder에서 레시피 이름에 빌드 타임스탬프를 추가합니다. 이를 통해 각 빌드에 대해 고유한 AMI 이름을 보장합니다.

      1. AMI 공유를 사용하면 지정된 AWS 보안 주체가 AMI에서 인스턴스를 시작할 수 있는 액세스 권한을 부여할 수 있습니다. **AMI 공유** 섹션을 확장하면 다음 세부 정보를 입력할 수 있습니다.
         + **시작 권한** - AMI를 **프라이빗**으로 유지하고 특정 AWS 보안 주체가 프라이빗 AMI에서 인스턴스를 시작할 수 있도록 액세스를 허용하려면 프라이빗을 선택합니다. AMI를 퍼블릭으로 설정하려면 **퍼블릭**을 선택합니다. 모든 AWS 보안 주체는 퍼블릭 AMI에서 인스턴스를 시작할 수 있습니다.
         + **보안 주체** - 인스턴스를 시작할 수 있도록 다음 유형의 AWS 보안 주체에 대한 액세스 권한을 부여할 수 있습니다.
           + **AWS 계정** - 특정 AWS 계정에 대한 액세스 권한 부여
           + **조직 구성 단위(OU)** - OU 및 모든 하위 엔티티에 대한 액세스 권한을 부여합니다. 하위 엔터티에는 OUs 및 AWS 계정이 포함됩니다.
           + **조직** - 사용자 AWS Organizations및 모든 하위 엔터티에 대한 액세스 권한을 부여합니다. 하위 엔터티에는 OUs 및 AWS 계정이 포함됩니다.

             먼저, 보안 주체 유형을 선택합니다. 다음 드롭다운 목록 오른쪽에 있는 상자에 액세스 권한을 부여하려는 AWS 보안 주체의 ID를 입력합니다. 다양한 종류의 ID를 다양하게 입력할 수 있습니다.

      1. **라이선스 구성** 섹션을 확장하여 로 생성된 라이선스 구성을 Image Builder 이미지 AWS License Manager 에 연결할 수 있습니다. 라이선스 구성은 기업 계약 조건에 기반한 라이선스 규칙을 포함합니다. Image Builder는 기본 AMI와 연결된 라이선스 구성을 자동으로 포함합니다.

      1. **시작 템플릿 구성** 섹션을 확장하여 생성한 AMI에서 인스턴스를 시작하는 데 사용할 EC2 시작 템플릿을 지정할 수 있습니다.

         EC2 시작 템플릿을 사용하는 경우 Image Builder에서 빌드 완료 후 최신 AMI ID가 포함된 시작 템플릿의 새 버전을 생성하도록 지시할 수 있습니다. 시작 템플릿을 업데이트하려면 다음과 같이 설정을 구성하세요.
         + **시작 템플릿 이름** - Image Builder에서 업데이트하려는 시작 템플릿의 이름을 선택합니다.
         + **기본 버전 설정** - 시작 템플릿 기본 버전을 새 버전으로 업데이트하려면 이 확인란을 선택합니다.

         다른 시작 템플릿 구성을 추가하려면 **시작 템플릿 구성 추가**를 선택합니다. 리전 당 최대 5개의 시작 템플릿 구성을 보유할 수 있습니다.

      1. **SSM 파라미터 구성** 섹션을 확장하여 대상 리전에 배포된 이미지의 출력 AMI ID를 저장하는 SSM 파라미터를 구성할 수 있습니다. 선택적으로 리전에서 배포 계정을 지정할 수 있습니다.

         **파라미터 이름** - 파라미터의 이름을 입력합니다. 예: `/output/image/param`.

         **데이터 유형** - 기본값()을 유지합니다`AWS EC2 Image`. 이렇게 하면 Systems Manager가 파라미터 값을 검증하여 유효한 AMI ID인지 확인하도록 지시합니다.

   1. 다른 리전의 배포 설정을 추가하려면 **리전 추가**를 선택합니다.

1. 완료되면 **설정 생성**을 선택합니다.

------
#### [ AWS CLI ]

다음 예는 **create-distribution-configuration** 명령을 사용하여 AMI에 대한 새 배포 구성을 생성하는 방법이 AWS CLI명령을 사용하는 것을 보여줍니다.

1. 

**CLI 입력 JSON 파일 생성**

   파일 편집 도구를 사용하여 다음 예 중 하나에 표시된 키와 환경에 적합한 값을 포함하는 JSON 파일을 생성합니다. 이 예제에서는 지정된 리전에 배포하는 AMI를 시작할 수 있는 권한이 있는 AWS 계정 AWS Organizations 조직 단위(OUs)를 정의합니다. 다음 단계에서 사용할 수 있도록 파일 `create-ami-distribution-configuration.json` 의 이름을 지정합니다.

**예제 1:에 배포 AWS 계정**  
이 예에서는 AMI를 두 리전에 배포하고 각 리전에서 시작 권한을 갖도록 AWS 계정 (을)를 지정합니다.

   ```
   {
   	"name": "MyExampleAccountDistribution",
   	"description": "Copies AMI to eu-west-1, and specifies accounts that can launch instances in each Region.",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"amiDistributionConfiguration": {
   				"name": "Name {{imagebuilder:buildDate}}",
   				"description": "An example image name with parameter references",
   				"amiTags": {
   					"KeyName": "Some Value"
   				},
   				"launchPermission": {
   					"userIds": [
   						"987654321012"
   					]
   				}
   			}
   		},
   		{
   			"region": "eu-west-1",
   			"amiDistributionConfiguration": {
   				"name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}",
   				"amiTags": {
   					"KeyName": "Some value"
   				},
   				"launchPermission": {
   					"userIds": [
   						"100000000001"
   					]
   				}
   			}
   		}
   	]
   }
   ```

**예제 2: 조직 및 OUs에 배포**  
이 예에서는 AMI를 소스 리전에 배포하고 조직 및 OU 시작 권한을 지정합니다.

   ```
   {
   	"name": "MyExampleAWSOrganizationDistribution",
   	"description": "Shares AMI with the Organization and OU",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"amiDistributionConfiguration": {
   				"name": "Name {{ imagebuilder:buildDate }}",
   				"launchPermission": {
   					"organizationArns": [
   						"arn:aws:organizations::123456789012:organization/o-myorganization123"
   					],
   					"organizationalUnitArns": [
   						"arn:aws:organizations::123456789012:ou/o-123example/ou-1234-myorganizationalunit"
   					]
   				}
   			}
   		}
   	]
   }
   ```

**예제 3: SSM 파라미터에 출력 AMI ID 저장**  
이 예제에서는 배포 리전의 AWS Systems Manager 파라미터 스토어 파라미터에 출력 AMI ID를 저장합니다.

   ```
   {
   	"name": "SSMParameterOutputAMI",
   	"description": "Updates an SSM parameter with the output AMI ID for the distribution.",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"amiDistributionConfiguration": {
   				"name": "Name {{ imagebuilder:buildDate }}"
   			},
   			"ssmParameterConfigurations": [
   				{
   					"amiAccountId": "111122223333",
   					"parameterName": "/output/image/param",
   					"dataType": "aws:ec2:image"
   				}
   			]
   		}
   	]
   }
   ```

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder create-distribution-configuration --cli-input-json file://create-ami-distribution-configuration.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[create-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-distribution-configuration.html)**(을)를 참조하세요.

------

## AMI 배포 구성 업데이트
<a name="update-ami-distribution-config"></a>

AMI 배포 구성을 변경할 수 있습니다. 하지만 변경 사항은 Image Builder에서 이미 배포한 리소스에는 적용되지 않습니다. 예를 들어 AMI를 리전에 배포한 후 배포에서 제거한 경우 이미 배포된 AMI는 수동으로 제거할 때까지 해당 리전에 남아 있습니다.

------
#### [ AWS Management Console ]

 AWS Management Console다음 단계에 따라의 AMI 배포 구성을 수행합니다.

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)에서 EC2 Image Builder 콘솔을 엽니다.

1. 탐색 창에서 **배포 설정**을 선택합니다. 여기에는 사용자 계정에서 생성된 배포 구성 목록이 표시됩니다.

1. 세부 정보를 보거나 배포 구성을 업데이트하려면 **구성 이름** 링크를 선택합니다. 이를 통해 배포 설정의 세부 정보 보기가 열립니다.
**참고**  
또한 **구성 이름** 옆에 있는 확인란을 선택한 다음 **세부 정보 보기**를 선택할 수 있습니다.

1. 배포 구성을 편집하려면 **배포 세부 정보** 섹션의 오른쪽 상단에서 **편집**을 선택합니다. 배포 구성 **이름**, **리전 1**로 표시되는 기본 **리전** 등 일부 필드는 잠겨 있습니다. 배포 설정에 대한 자세한 내용은 [AMI 배포 구성 생성](#create-ami-distribution-config) 섹션을 참조하세요.

1. 작업을 마쳤으면 **변경 사항 저장**을 선택합니다.

------
#### [ AWS CLI ]

다음 예에서는 **[update-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/update-distribution-configuration.html)** 명령을 사용하여 AMI의 배포 설정을 업데이트하는 방법이 AWS CLI명령을 사용하는 것으로 보여줍니다.

1. 

**CLI 입력 JSON 파일 생성**

   파일 편집 도구를 사용하여 다음 예제에 표시된 키와 환경에 유효한 값을 사용하여 JSON 파일을 생성합니다. 이 예제에서는 `update-ami-distribution-configuration.json`라는 이름의 파일이 사용됩니다.

   ```
   {
   	"distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/update-ami-distribution-configuration.json",
   	"description": "Copies AMI to eu-west-2, and specifies accounts that can launch instances in each Region.",
   	"distributions": [
   	  {
   			"region": "us-west-2",
   			"amiDistributionConfiguration": {
   				"name": "Name {{imagebuilder:buildDate}}",
   				"description": "An example image name with parameter references",
   				"launchPermissions": {
   					"userIds": [
   						"987654321012"
   					]
   				}
   			}
   		},
   		{
   			"region": "eu-west-2",
   			"amiDistributionConfiguration": {
   				"name": "My {{imagebuilder:buildVersion}} image {{imagebuilder:buildDate}}",
   				"tags": {
   					"KeyName": "Some value"
   				},
   				"launchPermissions": {
   					"userIds": [
   						"100000000001"
   					]
   				}
   			}
   		}
   	]
   }
   ```

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder update-distribution-configuration --cli-input-json file://update-ami-distribution-configuration.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[update-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/update-distribution-configuration.html)**(을)를 참조하세요. 배포 구성 리소스의 태그를 업데이트하려면 [리소스 태깅](tag-resources.md) 섹션을 참조하세요.

------

## 예: 출력 AMIs용 시작 템플릿을 사용하여 EC2 Fast Launch 활성화
<a name="create-ami-dist-win-fast-launch"></a>

다음 예제에서는 시작 템플릿과 함께 **[create-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-distribution-configuration.html)** 명령을 사용하여에서 AMI에 대해 EC2 Fast Launch가 구성된 배포 설정을 생성하는 방법을 보여줍니다 AWS CLI.

시작 템플릿 없이 EC2 Fast Launch 설정을 구성하려면 배포 구성을 생성하기 [EC2 Fast Launch 사전 조건](#ami-distribution-prereqs-fast-launch) 전에를 모두 충족했는지 확인합니다.

1. 

**CLI 입력 JSON 파일 생성**

   파일 편집 도구를 사용하여 다음 예와 같은 키와 환경에 적합한 값이 포함된 JSON 파일을 생성합니다.

   이 예에서는 최대 병렬 시작 수가 대상 리소스 수보다 크기 때문에 모든 대상 리소스에 대한 인스턴스를 동시에 시작합니다. 이 파일의 이름은 다음 단계에 표시된 명령 예에서 `ami-dist-config-win-fast-launch.json`입니다.

   ```
   {
   "name": "WinFastLaunchDistribution",
   "description": "An example of Windows AMI EC2 Fast Launch settings in the distribution configuration.",
   "distributions": [
   	{
   		"region": "us-west-2",
   		"amiDistributionConfiguration": {
   			"name": "Name {{imagebuilder:buildDate}}",
   			"description": "Includes Windows AMI EC2 Fast Launch settings.",
   			"amiTags": {
   				"KeyName": "Some Value"
   			}
   		},
   		"fastLaunchConfigurations": [{
   			"enabled": true,
   			"snapshotConfiguration": {
   				"targetResourceCount": 5
   			},
   			"maxParallelLaunches": 6,
   			"launchTemplate": {
   				"launchTemplateId": "lt-0ab1234c56d789012",
   				"launchTemplateVersion": "1"
   			 }
   		}],
   		"launchTemplateConfigurations": [{
   				   "launchTemplateId": "lt-0ab1234c56d789012",
   				   "setDefaultVersion": true
   		  }]
   	}]
   }
   ```
**참고**  
`launchTemplate` 섹션에 `launchTemplateId` 대신 `launchTemplateName`(을)를 지정할 수 있지만 이름과 ID를 모두 지정할 수는 없습니다.

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder create-distribution-configuration --cli-input-json file://ami-dist-config-win-fast-launch.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[create-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-distribution-configuration.html)**(을)를 참조하세요.

## 예:에서 출력 VM 디스크에 대한 배포 설정 생성 AWS CLI
<a name="cli-create-vm-dist-config"></a>

다음 예는 **create-distribution-configuration** 명령을 사용하여 모든 이미지 빌드와 함께 VM 이미지 디스크를 Amazon S3로 내보내는 배포 설정을 생성하는 방법을 보여줍니다.

1. 

**CLI 입력 JSON 파일 생성**

    AWS CLI에서 사용하는 **create-distribution-configuration** 명령을 간소화할 수 있습니다. 이렇게 하려면 명령에 전달하려는 모든 내보내기 구성을 포함하는 JSON 파일을 생성하세요.
**참고**  
JSON 파일의 데이터 값에 대한 이름 지정 규칙은 Image Builder API 작업 요청 파라미터에 지정된 패턴을 따릅니다. API 작업 요청 파라미터를 검토하려면 *EC2 Image Builder API 참조*의 **[CreateDistributionConfiguration](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateDistributionConfiguration.html)** 명령을 참조하세요.  
데이터 값을 명령줄 매개변수로 제공하려면 옵션으로 **create-distribution-configuration** 명령에 대한 *AWS CLI 명령 참조*에 지정된 매개변수 이름을 참조하세요.

   다음은 이 예에서 `s3ExportConfiguration` JSON 객체에 지정하는 매개변수에 대한 요약입니다.
   + **roleName**(문자열, 필수) - S3 버킷으로 이미지를 내보낼 수 있는 VM Import/Export 권한을 부여하는 역할의 이름입니다.
   + **DiskiImageFormat**(문자열, 필수) - 업데이트된 디스크 이미지를 지원되는 다음 형식 중 하나로 내보냅니다.
     + **가상 하드 디스크** - Citrix Xen 및 Microsoft Hyper-V 가상화 제품과 호환됩니다.
     + **스트림 최적화 ESX 가상 머신 디스크** – VMware ESX, VMware vSphere 버전 4, 5 및 6과 호환됩니다.
     + **원시** - 원시 형식.
   + **S3bucket**(문자열, 필수) - VM의 출력 디스크 이미지를 저장하는 S3 버킷입니다.

   파일을 `export-vm-disks.json`(으)로 저장합니다. **create-distribution-configuration** 명령에 파일 이름을 사용합니다.

   ```
   {
   	"name": "example-distribution-configuration-with-vm-export",
   	"description": "example",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"amiDistributionConfiguration": {
   				"description": "example-with-vm-export"
   
   			},
   			"s3ExportConfiguration": {
   				"roleName": "vmimport",
   				"diskImageFormat": "RAW",
   				"s3Bucket": "vm-bucket-export"
   			}
   		}],
   	"clientToken": "abc123def4567ab"
   }
   ```

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder create-distribution-configuration --cli-input-json file://export-vm-disks.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[create-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-distribution-configuration.html)**(을)를 참조하세요.

# 컨테이너 이미지의 배포 설정 생성 및 업데이트
<a name="cr-upd-container-distribution-settings"></a>

이 섹션에서는 Image Builder 컨테이너 이미지의 배포 설정 생성 및 업데이트를 다룹니다.

**Topics**
+ [에서 Image Builder 컨테이너 이미지에 대한 배포 설정 생성 AWS CLI](#cli-create-container-distribution-configuration)
+ [에서 컨테이너 이미지의 배포 설정 업데이트 AWS CLI](#cli-update-container-distribution-configuration)

## 에서 Image Builder 컨테이너 이미지에 대한 배포 설정 생성 AWS CLI
<a name="cli-create-container-distribution-configuration"></a>

배포 구성을 사용하면 출력 컨테이너 이미지의 이름과 설명을 지정하고 컨테이너 이미지를 다른 AWS 리전에 복제할 수 있습니다. 배포 구성 리소스 및 각 리전 내의 컨테이너 이미지에 별도의 태그를 적용할 수도 있습니다.

1. 

**CLI 입력 JSON 파일 생성**

   선호하는 파일 편집 도구를 사용하여 다음 예에 표시된 키와 환경에 유효한 값을 포함하는 JSON 파일을 생성하세요. 이 예제에서는 `create-container-distribution-configuration.json`(이)라는 이름의 파일이 사용됩니다.

   ```
   {
   	"name": "distribution-configuration-name",
   	"description": "Distributes container image to Amazon ECR repository in two regions.",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"containerDistributionConfiguration": {
   				"description": "My test image.",
   				"targetRepository": {
   					"service": "ECR",
   					"repositoryName": "testrepo"
   				},
   				"containerTags": ["west2", "image1"]
   			}
   		},
   		{
   			"region": "us-east-1",
   			"containerDistributionConfiguration": {
   				"description": "My test image.",
   				"targetRepository": {
   					"service": "ECR",
   					"repositoryName": "testrepo"
   				},
   			   "containerTags": ["east1", "imagedist"]
   			}
   		}
   	],
   	"tags": {
   	   "DistributionConfigurationTestTagKey1": "DistributionConfigurationTestTagValue1",
   	   "DistributionConfigurationTestTagKey2": "DistributionConfigurationTestTagValue2"
   	}
   }
   ```

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder create-distribution-configuration --cli-input-json file://create-container-distribution-configuration.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[create-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/create-distribution-configuration.html)**(을)를 참조하세요.

## 에서 컨테이너 이미지의 배포 설정 업데이트 AWS CLI
<a name="cli-update-container-distribution-configuration"></a>

다음 예제는 **[update-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/update-distribution-configuration.html)** 명령을 사용하여 컨테이너 이미지의 배포 설정을 업데이트하는 방법이 AWS CLI명령을 사용하는 것으로 보여줍니다. 각 지역 내의 컨테이너 이미지에 대한 태그를 업데이트할 수도 있습니다.

1. 

**CLI 입력 JSON 파일 생성**

   즐겨 사용하는 파일 편집 도구를 사용하여 다음 예에 표시된 키와 환경에 유효한 값이 포함된 JSON 파일을 생성하세요. 이 예제에서는 `update-container-distribution-configuration.json`(이)라는 이름의 파일이 사용됩니다.

   ```
   {
   	"distributionConfigurationArn": "arn:aws:imagebuilder:us-west-2:123456789012:distribution-configuration/update-container-distribution-configuration.json",
   	"description": "Distributes container image to Amazon ECR repository in two regions.",
   	"distributions": [
   		{
   			"region": "us-west-2",
   			"containerDistributionConfiguration": {
   				"description": "My test image.",
   				"targetRepository": {
   					"service": "ECR",
   					"repositoryName": "testrepo"
   				},
   				"containerTags": ["west2", "image1"]
   			}
   		},
   		{
   			"region": "us-east-2",
   			"containerDistributionConfiguration": {
   				"description": "My test image.",
   				"targetRepository": {
   					"service": "ECR",
   					"repositoryName": "testrepo"
   				},
   			   "containerTags": ["east2", "imagedist"]
   			}
   		}
   	]
   }
   ```

1. 

**작성한 파일을 입력으로 사용하여 다음 명령을 실행합니다.**

   ```
   aws imagebuilder update-distribution-configuration --cli-input-json file://update-container-distribution-configuration.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

   자세한 내용은 *AWS CLI 명령 참조*의 **[update-distribution-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/imagebuilder/update-distribution-configuration.html)**(을)를 참조하세요. 배포 구성 리소스의 태그를 업데이트하려면 [리소스 태깅](tag-resources.md) 섹션을 참조하세요.

# Image Builder로 크로스 계정 AMI 배포 설정
<a name="cross-account-dist"></a>

이 섹션에서는 Image Builder AMI를 지정한 다른 계정에 전달하도록 배포 설정을 구성하는 방법을 설명합니다.

그러면 대상 계정에서 필요에 따라 AMI를 시작하거나 수정할 수 있습니다.

**참고**  
AWS CLI 이 섹션의 명령 예제에서는 이전에 이미지 레시피 및 인프라 구성 JSON 파일을 생성했다고 가정합니다. 이미지 레시피용 JSON 파일을 생성하려면 [를 사용하여 이미지 레시피 생성 AWS CLI](create-image-recipes.md#create-image-recipe-cli)(을)를 참조하십시오. 인프라 구성을 위한 JSON 파일을 생성하려면 [인프라 구성 생성](create-infra-config.md)(을)를 참조하십시오.

## 계정 간에 AMI 배포를 위한 사전 조건
<a name="cross-account-dist-prereqs"></a>

대상 계정이 Image Builder 이미지에서 인스턴스를 성공적으로 시작할 수 있도록 하려면 모든 리전의 모든 대상 계정에 대해 적절한 권한을 구성해야 합니다.

 AWS Key Management Service (AWS KMS)를 사용하여 AMI를 암호화하는 경우 새 이미지를 암호화하는 데 사용되는 계정에 AWS KMS key 대해를 구성해야 합니다.

Image Builder가 암호화된 AMI에 대해 계정 간 배포를 수행하는 경우 원본 계정의 이미지가 해독되어 대상 리전으로 푸시되며, 대상 리전에서 지정된 키를 사용하여 이미지를 다시 암호화합니다. Image Builder는 대상 계정을 대신하여 작동하며 대상 리전에서 생성한 IAM 역할을 사용하기 때문에 해당 계정은 원본 및 대상 리전 모두의 키에 액세스할 수 있어야 합니다.

### 암호화 키
<a name="cross-account-prereqs-encryption"></a>

 AWS KMS(을)를 사용하여 이미지를 암호화하는 경우 다음 사전 조건이 필요합니다. IAM 사전 조건은 다음 섹션에서 다룹니다.

**소스 계정 요구 사항**
+ AMI를 구축하고 배포하는 모든 리전의 계정에서 KMS 키를 생성합니다. 기존 키를 사용할 수 있습니다.
+ 대상 계정에서 내 키를 사용할 수 있도록 모든 키의 키 정책을 업데이트하십시오.

**대상 계정 요구 사항**
+ 암호화된 AMI를 배포하는 데 필요한 작업을 해당 역할이 수행하도록 허용하는 인라인 정책을 `EC2ImageBuilderDistributionCrossAccountRole`에 추가합니다. IAM 구성 단계는 [IAM 정책](#cross-account-prereqs-iam) 사전 조건 섹션을 참조하십시오.

를 사용한 교차 계정 액세스에 대한 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [다른 계정의 사용자가 KMS 키를 사용하도록 허용](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html)을 AWS KMS참조하세요.

다음과 같이 이미지 레시피에 암호화 키를 지정합니다.
+ Image Builder 콘솔을 사용하는 경우 레시피의 **스토리지(볼륨)** 섹션에 있는 **암호화(KMS 별칭)** 드롭다운 목록에서 암호화 키를 선택합니다.
+ **CreateImageRecipe** API 작업 또는의 **create-image-recipe** 명령을 사용하는 경우 JSON 입력의 `blockDeviceMappings`에 있는 `ebs` 섹션에서 키를 AWS CLI구성합니다.

  다음 JSON 스니펫은 이미지 레시피의 암호화 설정을 보여줍니다. 암호화 키를 제공하는 것 외에도 `encrypted` 플래그를 `true`(으)로 설정해야 합니다.

  ```
  {
  	...
  	"blockDeviceMappings": [
  	{
  		"deviceName": "Example root volume",
  		"ebs": { 
  			"deleteOnTermination": true,
  			"encrypted": true,
  			"iops": 100,
  			"kmsKeyId": "image-owner-key-id",
  			...
  		},
  		...
  	}],
  	...
  }
  ```

### IAM 정책
<a name="cross-account-prereqs-iam"></a>

 AWS Identity and Access Management (IAM)에서 교차 계정 배포 권한을 구성하려면 다음 단계를 따릅니다.

1. 여러 계정에 분산된 Image Builder AMI를 사용하려면 대상 계정 소유자가 `EC2ImageBuilderDistributionCrossAccountRole`(이)라는 계정에 새 IAM 역할을 생성해야 합니다.

1. 계정 간 배포를 활성화하려면 역할에 [Ec2ImageBuilderCrossAccountDistributionAccess 정책](security-iam-awsmanpol.md#sec-iam-manpol-Ec2ImageBuilderCrossAccountDistributionAccess)(을)를 연결해야 합니다. 관리형 정책에 대한 자세한 내용을 알아보려면 *AWS Identity and Access Management 사용 설명서*의 [관리형 정책과 인라인 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 참조하십시오.

1. 원본 계정 ID가 대상 계정의 IAM 역할에 연결된 신뢰 정책에 추가되었는지 확인하십시오. 다음 예제는 소스 계정의 계정 ID를 지정하는 대상 계정의 신뢰 정책을 보여줍니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Effect": "Allow",
           "Principal": {
               "AWS": "arn:aws:iam::444455556666:root"
           },
           "Action": "sts:AssumeRole"
       }]
   }
   ```

------

   [리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based)에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*를 참조하십시오.

1. 배포하는 AMI가 암호화된 경우 대상 계정 소유자가 KMS 키를 사용할 수 있도록 다음 인라인 정책을 그들 계정의 `EC2ImageBuilderDistributionCrossAccountRole`에 추가해야 합니다. `Principal` 섹션에는 계정 번호가 포함되어 있습니다. 이를 통해 Image Builder는를 사용하여 각 리전에 적합한 키로 AMI를 암호화하고 AWS KMS 복호화할 때 Image Builder를 대신하여 작업할 수 있습니다.

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

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "AllowRoleToPerformKMSOperationsOnBehalfOfTheDestinationAccount",
   			"Effect": "Allow",
   			"Action": [
   				"kms:Encrypt",
   				"kms:Decrypt",
   				"kms:ReEncrypt*",
   				"kms:GenerateDataKey*",
   				"kms:DescribeKey",
   				"kms:CreateGrant",
   				"kms:ListGrants",
   				"kms:RevokeGrant"
   			],
   			"Resource": "*"
   		}
   	]
   }
   ```

------

   인라인 정책에 대한 자세한 내용은 *AWS Identity and Access Management 사용 설명서*에서 [인라인 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)을 참조하십시오.

1. `launchTemplateConfigurations`(을)를 사용하여 Amazon EC2 시작 템플릿을 지정하는 경우 각 대상 계정의 내 `EC2ImageBuilderDistributionCrossAccountRole`에 다음 정책도 추가해야 합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateLaunchTemplateVersion",
                   "ec2:ModifyLaunchTemplate"
               ],
               "Resource": "*",
               "Condition": {
                   "StringEquals": {
                       "aws:ResourceTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeLaunchTemplates"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:CreateTags"
               ],
               "Resource": "arn:aws:ec2:*:*:launch-template/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/CreatedBy": "EC2 Image Builder"
                   }
               }
           }
       ]
   }
   ```

------

1.  AWS Systems Manager 파라미터 스토어 파라미터를 사용하여 배포 계정 및 리전에 대한 출력 AMI의 AMI ID를 저장하는 경우 각 대상 계정의 `EC2ImageBuilderDistributionCrossAccountRole`에 다음 정책을 추가해야 합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:PutParameter"
               ],
               "Resource": "arn:aws:ssm:*:111122223333:parameter/ImageBuilder-*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeImages"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

## 계정 간 분배에 대한 제한
<a name="cross-account-dist-limits"></a>

여러 계정에 Image Builder 이미지를 배포할 때는 몇 가지 제한 사항이 있습니다.
+ 대상 계정은 각 대상 리전의 동시 AMI 사본 50개로 제한됩니다.
+ 반가상화(PV) 가상화 AMI를 다른 리전에 복사하려는 경우 대상 리전이 PV 가상화 AMI를 지원해야 합니다. 자세한 내용은 [Linux AMI 가상화 유형](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/virtualization_types.html)을 참조하십시오.
+ 암호화된 스냅샷의 암호화되지 않은 사본은 생성할 수 없습니다. `KmsKeyId` 파라미터에 AWS Key Management Service (AWS KMS) 고객 관리 키를 지정하지 않는 경우 Image Builder는 Amazon Elastic Block Store(Amazon EBS)의 기본 키를 사용합니다. 자세한 내용은 *Amazon Elastic Compute Cloud 사용 설명서*의 [Amazon EBS 암호화](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)를 참조하십시오.

자세한 내용은 *EC2 Image Builder API 참조*의 [CreateDistributionConfiguration](https://docs.aws.amazon.com/imagebuilder/latest/APIReference/API_CreateDistributionConfiguration.html)을 참조하십시오.

## 콘솔에서 Image Builder AMI에 대한 계정 간 배포 구성
<a name="cross-account-dist-console-create-ami"></a>

이 섹션에서는 AWS Management Console(을)를 사용하여 Image Builder AMI의 계정 간 배포를 위한 배포 설정을 만들고 구성하는 방법을 설명합니다. 계정 간 배포를 구성하려면 특정 IAM 권한이 필요합니다. 계속하려면 먼저 이 섹션의 [계정 간에 AMI 배포를 위한 사전 조건](#cross-account-dist-prereqs)(을)를 완료해야 합니다.

Image Builder 콘솔에서 배포 설정을 생성하려면 다음 단계를 수행하십시오.

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)에서 EC2 Image Builder 콘솔을 엽니다.

1. 탐색 창에서 **배포 설정**을 선택합니다. 여기에는 내 계정에 생성된 배포 설정 목록이 표시됩니다.

1. **배포 설정** 페이지 상단에서 **배포 설정 생성**을 선택합니다. 그러면 **배포 설정 생성** 페이지로 이동합니다.

1. **이미지 유형** 섹션에서 **Amazon Machine Image(AMI)** **출력 유형**을 선택합니다. 기본 설정입니다.

1. **일반** 섹션에서 생성하려는 배포 설정 리소스의 **이름**을 입력합니다(*필수*).

1. **리전 설정** 섹션에서 선택한 리전의 **대상 계정**에 AMI를 배포하려는 12자리 계정 ID를 입력하고 **엔터** 키를 누릅니다. 그러면 형식이 올바른지 확인한 다음 상자 아래에 입력한 계정 ID가 표시됩니다. 이 과정을 반복하여 계정을 더 추가합니다.

   입력한 계정을 제거하려면 계정 ID 오른쪽에 표시된 **X**를 선택합니다.

   각 리전의 **출력 AMI 이름**을 입력합니다.

1. 필요한 추가 설정을 계속 지정하고 **설정 생성**을 선택하여 새 배포 설정 리소스를 생성합니다.

## 에서 Image Builder AMI에 대한 교차 계정 배포 구성 AWS CLI
<a name="cross-account-dist-cli-ami-create"></a>

이 섹션에서는 배포 설정 파일을 구성하고에서 **create-image** 명령을 사용하여 Image Builder AMI AWS CLI 를 빌드하고 계정 간에 배포하는 방법을 설명합니다.

계정 간 배포를 구성하려면 특정 IAM 권한이 필요합니다. **create-image** 명령을 실행하려면 먼저 이 섹션의 [계정 간에 AMI 배포를 위한 사전 조건](#cross-account-dist-prereqs)(을)를 완료해야 합니다.

1. 

**배포 설정 파일 구성**

   에서 **create-image** 명령을 사용하여 다른 계정에 배포되는 Image Builder AMI를 AWS CLI 생성하기 전에 `AmiDistributionConfiguration` 설정에서 대상 계정 IDs를 지정하는 `DistributionConfiguration` JSON 구조를 생성해야 합니다. 원본 리전에 `AmiDistributionConfiguration`(을)를 하나 이상 지정해야 합니다.

   `create-distribution-configuration.json`(으)로 이름 붙인 다음 예제 파일은 해당 원본 리전의 계정 간 이미지 배포에 대한 구성을 보여줍니다.

   ```
   {
   	"name": "cross-account-distribution-example",
   	"description": "Cross Account Distribution Configuration Example",
   	"distributions": [
   		{
   			"amiDistributionConfiguration": {
   				"targetAccountIds": ["123456789012", "987654321098"],
   				"name": "Name {{ imagebuilder:buildDate }}", 
   				"description": "ImageCopy Ami Copy Configuration"
   			}, 
   			"region": "us-west-2"
   		}
   	]
   }
   ```

1. 

**배포 설정 생성**

   의 [create-distribution-configuration](https://docs.aws.amazon.com/cli/latest/reference/imagebuilder/create-distribution-configuration.html) 명령을 사용하여 Image Builder 배포 설정 리소스를 생성하려면 명령에 다음 파라미터를 AWS CLI제공합니다.
   + `--name` 파라미터에 배포 이름을 입력합니다.
   + `--cli-input-json` 파라미터에서 생성한 배포 구성 JSON 파일을 첨부합니다.

   ```
   aws imagebuilder create-distribution-configuration --name my distribution name --cli-input-json file://create-distribution-configuration.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

*`--distributions` 파라미터를 사용하여 명령에 직접 JSON을 제공할 수도 있습니다.*

# EC2 시작 템플릿을 사용하여 AMI 배포 구성
<a name="dist-using-launch-template"></a>

대상 계정 및 리전에서 Image Builder AMI를 일관되게 시작할 수 있도록 배포 설정에서 `launchTemplateConfigurations`(을)를 사용하여 Amazon EC2 시작 템플릿을 지정할 수 있습니다. 배포 프로세스 중에 `launchTemplateConfigurations`(이)가 있는 경우 Image Builder는 템플릿의 원래 설정과 빌드의 새 AMI ID를 모두 포함하는 새 버전의 시작 템플릿을 생성합니다. 시작 템플릿을 사용하여 EC2 인스턴스를 시작하는 방법에 대한 자세한 내용은 대상 운영 체제에 따라 다음 링크 중 하나를 참조하십시오.
+ [시작 템플릿에서 Linux 인스턴스 시작하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)
+ [시작 템플릿에서 Windows 인스턴스 시작하기](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-templates.html)

**참고**  
이미지에 Windows Fast Launch를 활성화하기 위한 시작 템플릿을 포함하는 경우 Image Builder가 사용자를 대신하여 Windows Fast Launch를 활성화할 수 있도록 시작 템플릿에 다음 태그가 포함되어야 합니다.  
`CreatedBy: EC2 Image Builder`

## 콘솔에서 AMI 배포 설정에 EC2 시작 템플릿 추가
<a name="dist-using-launch-template-console"></a>

출력 AMI와 함께 시작 템플릿을 제공하려면 콘솔에서 다음 단계를 따릅니다.

1. [https://console.aws.amazon.com/imagebuilder/](https://console.aws.amazon.com/imagebuilder/)에서 EC2 Image Builder 콘솔을 엽니다.

1. 탐색 창에서 **배포 설정**을 선택합니다. 여기에는 내 계정에 생성된 배포 설정 목록이 표시됩니다.

1. **배포 설정** 페이지 상단에서 **배포 설정 생성**을 선택합니다. 그러면 **배포 설정 생성하기** 페이지가 열립니다.

1. **이미지 유형** 섹션에서 **Amazon Machine Image(AMI)** **출력 유형**을 선택합니다. 기본 설정입니다.

1. **일반** 섹션에서 생성하려는 배포 설정 리소스의 **이름**을 입력합니다(*필수*).

1. **리전 설정** 섹션에서 목록으로부터 EC2 시작 템플릿의 이름을 선택합니다. 계정에 시작 템플릿이 없는 경우 **새 시작 템플릿 생성하기**를 선택합니다. 그러면 **EC2 대시보드**에서 **시작 템플릿**이 열립니다.

   시작 템플릿 기본 버전을 Image Builder가 출력 AMI를 사용하여 생성한 새 버전으로 업데이트하려면 **기본 버전 설정하기** 확인란을 선택합니다.

   선택한 리전에 다른 시작 템플릿을 추가하려면 **새 템플릿 구성 추가하기**를 선택합니다.

   시작 템플릿을 제거하려면 **제거하기**를 선택합니다.

1. 필요한 추가 설정을 계속 지정하고 **설정 생성**을 선택하여 새 배포 설정 리소스를 생성합니다.

## 에서 AMI 배포 설정에 EC2 시작 템플릿 추가 AWS CLI
<a name="dist-using-launch-template-cli"></a>

이 섹션에서는 시작 템플릿으로 배포 설정 파일을 구성하고 AWS CLI 의 **create-image** 명령을 사용하여 Image Builder AMI와 이를 사용하는 새 버전의 시작 템플릿을 빌드 및 배포하는 방법을 설명합니다.

1. 

**배포 설정 파일 구성**

   시작 템플릿을 사용하여 Image Builder AMI를 생성하려면 먼저 `launchTemplateConfigurations` 설정을 지정하는 배포 구성 JSON 구조를 생성 AWS CLI해야 합니다. 소스 리전에 하나 이상의 `launchTemplateConfigurations` 항목을 지정해야 합니다.

   `create-distribution-config-launch-template.json`(으)로 이름이 지정된 다음 샘플 파일은 소스 리전의 시작 템플릿 구성에 대한 몇 가지 가능한 시나리오를 보여줍니다.

   ```
   {
       "name": "NewDistributionConfiguration",
       "description": "This is just a test",
       "distributions": [
           {
               "region": "us-west-2",
               "amiDistributionConfiguration": {
                   "name": "test-{{imagebuilder:buildDate}}-{{imagebuilder:buildVersion}}",
                   "description": "description"
               },
               "launchTemplateConfigurations": [
                   {
                       "launchTemplateId": "lt-0a1bcde2fgh34567",
                       "accountId": "935302948087",
                       "setDefaultVersion": true
                   },
                   {
                       "launchTemplateId": "lt-0aaa1bcde2ff3456"
                   },
                   {
                       "launchTemplateId": "lt-12345678901234567",
                       "accountId": "123456789012"
                   }
               ]
           }
       ],
       "clientToken": "clientToken1"
   }
   ```

1. 

**배포 설정 생성**

   의 [create-distribution-configuration](https://docs.aws.amazon.com/cli/latest/reference/imagebuilder/create-distribution-configuration.html) 명령을 사용하여 Image Builder 배포 설정 리소스를 생성하려면 명령에 다음 파라미터를 AWS CLI제공합니다.
   + `--name` 파라미터에 배포 이름을 입력합니다.
   + `--cli-input-json` 파라미터에서 생성한 배포 구성 JSON 파일을 첨부합니다.

   ```
   aws imagebuilder create-distribution-configuration --name my distribution name--cli-input-json file://create-distribution-config-launch-template.json
   ```
**참고**  
JSON 파일 경로의 시작 부분에 `file://` 표기법을 포함시켜야 합니다.
JSON 파일의 경로는 명령을 실행하는 기본 운영 체제에 대한 적절한 규칙을 따라야 합니다. 예를 들어 Windows에서는 디렉터리 경로를 참조하기 위해 백슬래시(\$1)를 사용하고 Linux 및 macOS에서는 슬래시(/)를 사용합니다.

*`--distributions` 파라미터를 사용하여 명령에 직접 JSON을 제공할 수도 있습니다.*

# 향상된 AMI 배포 기능 사용
<a name="distribution-enhanced_functionality"></a>

Image Builder는 AMIs가 리전 및 계정에 분산되는 방식을 유연하게 제어하도록 하는 고급 배포 기능을 제공합니다. 이러한 기능은 배포를 빌드 프로세스와 분리하므로 기존 이미지를 온디맨드로 배포하고, 배포 실패로부터 효율적으로 복구하고, 사용자 지정 가능한 워크플로를 통해 제어된 다단계 배포 전략을 구현할 수 있습니다.

Image Builder에서 향상된 AMI 배포 기능을 사용하면 전체 이미지 빌드를 다시 실행할 필요 없이 배포 활동을 직접 수행할 수 있습니다.

## 분리된 배포
<a name="decoupled-distribution"></a>

DistributeImage API는 세 가지 유형의 소스 이미지 참조를 허용합니다.
+ **AMI ID** - 표준 AMI 식별자(예: `ami-0abcdef1234567890`)
+ **SSM 파라미터 **- AMI ID를 저장하는 SSM 파라미터(예: `ssm:/my/ami/parameter`)
+ **Image Builder 버전 ARN** - Image Builder 이미지 버전 ARN

## 배포 재시도
<a name="distribution-retry"></a>

이미지 배포에 실패하면 `RetryImage` API를 사용하여 배포를 다시 시도합니다. 이렇게 하면 전체 이미지 재구축을 방지하여 실패 원인 해결 시간이 단축됩니다. 배포 실패의 근본 원인을 해결한 `RetryImage` 후를 사용합니다.

RetryImage API는 이미지 빌드 버전 ARN(예: `arn:aws:imagebuilder:us-west-2:123456789012:image/my-image/1.0.0/1`)을 허용합니다. API를 호출하면 Image Builder는 원래 배포 구성 및 설정을 사용하여 장애 발생 시점부터 배포 프로세스를 자동으로 재개합니다. `RetryImage` API는 배포 단계, 테스트 단계 또는 통합 단계에서 실패한 배포를 재시도할 수 있습니다. 보류 중, 실패, 삭제됨 또는 사용 가능 상태의 AMIs에서 작동합니다.

**사전 조건** 

배포를 다시 시도하기 전에 다음을 확인합니다.
+ 장애의 근본 원인을 식별하고 해결했습니다. 오류 세부 정보는 CloudWatch Logs의 배포 로그를 검토합니다.
+ 이미지 빌드를 재시도하는 데 필요한 IAM 권한이 있습니다.
+ 교차 계정 배포 실패의 경우 대상 계정의 `EC2ImageBuilderDistributionCrossAccountRole`에 `Ec2ImageBuilderCrossAccountDistributionAccess` 정책이 연결되어 있는지 확인합니다.

**중요:** 기본 문제를 수정하지 않고 재시도하면 실패가 반복됩니다.

## 배포 워크플로
<a name="distribution-workflows"></a>

배포 워크플로는 빌드 및 테스트 워크플로를 보완하는 새로운 워크플로 유형으로, 순차적으로 배포 프로세스를 정의하고 제어할 수 있습니다. 배포 워크플로를 사용하면 AMI 복사 작업, wait-for-action 체크포인트, 이미지 속성 수정 및 기타 배포 관련 단계를 포함하는 사용자 지정 배포 프로세스를 생성할 수 있습니다. 이를 통해 단계별 가시성, 병렬 배포 기능 및 세분화된 오류 보고를 통해 AMIs가 배포되는 방식을 구조적으로 제어할 수 있습니다.

워크플로 생성 및 사용자 지정에 대한 자세한 내용은 [이미지 워크플로 관리를 참조하세요](manage-image-workflows.html).