AMI 복사 - Amazon Elastic Compute Cloud

AMI 복사

특정 AWS 리전 내에서 또는 여러 리전에 걸쳐 Amazon Machine Image(AMI)를 복사할 수 있습니다. Amazon EBS 지원 AMI와 인스턴스 스토어 지원 AMI를 모두 복사할 수 있습니다. 암호화된 스냅샷을 사용하여 EBS 지원 AMI를 복사하고 복사 프로세스 중 암호화 상태를 변경할 수도 있습니다. 본인과 공유되는 AMI를 복사할 수 있습니다.

소스 AMI를 복사하면 대상 AMI라고 하는 동일하지만 별개의 새 AMI가 생성됩니다. 대상 AMI에는 고유한 AMI ID가 있습니다. 대상 AMI에 영향을 미치지 않고 원본 AMI를 변경하거나 다시 등록할 수 있습니다. 반대의 경우도 마찬가지입니다.

EBS 지원 AMI의 경우 각 지원 스냅샷이 동일하지만 별개의 대상 스냅샷으로 복사됩니다. AMI를 새 리전으로 복사하는 경우 스냅샷은 증분이 아닌 전체 복사본이 됩니다. 암호화되지 않은 백업 스냅샷을 암호화하거나 새 KMS 키로 암호화하는 경우 스냅샷은 전체(비증분) 복사본입니다. 이후에 AMI 복사 작업을 수행하면 백업 스냅샷의 증분 복사본이 생성됩니다.

고려 사항

  • AMI를 복사할 권한 - IAM 정책을 사용하여 사용자에게 AMI 복사 권한을 부여하거나 거부할 수 있습니다. CopyImage 작업에 대해 지정된 리소스 수준 권한은 새 AMI에만 적용됩니다. 소스 AMI에 대한 리소스 수준 권한은 지정할 수 없습니다.

  • 시작 권한 및 Amazon S3 버킷 권한 - AWS에서는 소스 AMI의 시작 권한 또는 Amazon S3 버킷 권한을 새 AMI로 복사하지 않습니다. 복사 작업이 완료된 후 시작 권한 및 Amazon S3 버킷 권한을 새 AMI에 적용할 수 있습니다.

  • 태그 - 소스 AMI에 연결한 사용자 정의 AMI 태그만 복사할 수 있습니다. 다른 AWS 계정이 첨부한 시스템 태그(접두사 aws: 포함) 및 사용자 정의 태그는 복사되지 않습니다. AMI를 복사할 때 대상 AMI 및 해당 지원 스냅샷에 새 태그를 연결할 수 있습니다.

비용

AMI 복사 시 부과되는 요금은 없습니다. 그러나 표준 스토리지 및 데이터 전송 요금은 적용됩니다. EBS 지원 AMI를 복사하면 추가 EBS 스냅샷의 스토리지에 대한 요금이 발생합니다.

IAM 권한

EBS 지원 AMI 또는 인스턴스 스토어 지원 AMI를 복사하려면 다음 IAM 권한이 필요합니다.

  • ec2:CopyImage - AMI를 복사합니다. EBS 지원 AMI의 경우 AMI의 지원 스냅샷을 복사할 권한도 부여합니다.

  • ec2:CreateTags - 대상 AMI에 태그를 지정합니다. EBS 지원 AMI의 경우 대상 AMI의 지원 스냅샷에 태그를 지정할 권한도 부여합니다.

인스턴스 스토어 지원 AMI를 복사하는 경우 다음과 같은 추가 IAM 권한이 필요합니다.

  • s3:CreateBucket - 새 AMI의 대상 리전에 S3 버킷 생성

  • s3:GetBucketAcl - 소스 버킷의 ACL 권한 읽기

  • s3:ListAllMyBuckets - 대상 리전에서 AMI용 기존 S3 버킷 찾기

  • s3:GetObject - 소스 버킷에서 객체 읽기

  • s3:PutObject - 대상 버킷에 객체 쓰기

  • s3:PutObjectAcl - 대상 버킷에서 새 객체에 대한 권한 쓰기

EBS 지원 AMI를 복사하고 대상 AMI 및 스냅샷에 태그를 지정하기 위한 IAM 정책 예제

다음 정책 예제에서는 EBS 지원 AMI를 복사하고 대상 AMI 및 지원 스냅샷에 태그를 지정할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "PermissionToCopyAllImages", "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }] }

EBS 지원 AMI를 복사하지만 새 스냅샷에 태그 지정을 거부하는 IAM 정책 예제

ec2:CopySnapshot 권한은 ec2:CopyImage 권한을 받을 때 자동으로 부여됩니다. 여기에는 대상 AMI의 새 백업 스냅샷에 태그를 지정할 수 있는 권한이 포함됩니다. 새 지원 스냅샷에 태그를 지정할 수 있는 권한은 명시적으로 거부될 수 있습니다.

다음 정책 예제에서는 EBS 지원 AMI를 복사할 수 있는 권한은 부여하지만 대상 AMI의 새 지원 스냅샷에 태그 지정을 거부합니다.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }, { "Effect": "Deny", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:::snapshot/*" } ] }

인스턴스 스토어 지원 AMI를 복사하고 대상 AMI에 태그를 지정하는 IAM 정책 예제

다음 정책 예제에서는 지정된 소스 버킷의 모든 인스턴스 스토어 지원 AMI를 지정된 리전에 복사하고 대상 AMI에 태그를 지정할 수 있는 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "PermissionToCopyAllImages", "Effect": "Allow", "Action": [ "ec2:CopyImage", "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*::image/*" }, { "Effect": "Allow", "Action": "s3:ListAllMyBuckets", "Resource": [ "arn:aws:s3:::*" ] }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": [ "arn:aws:s3:::ami-source-bucket/*" ] }, { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetBucketAcl", "s3:PutObjectAcl", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::amis-for-account-in-region-hash" ] } ] }

AMI 소스 버킷의 Amazon 리소스 이름(ARN)을 찾으려면 Amazon EC2 콘솔(https://console.aws.amazon.com/ec2/)을 열고 탐색 창에서 [AMI(AMIs)]를 선택한 다음 [소스(Source)] 열에서 버킷 이름을 찾습니다.

참고

s3:CreateBucket 권한은 인스턴스 스토어 지원 AMI를 개별 리전에 처음 복사할 때만 필요합니다. 이후 리전에 이미 생성된 Amazon S3 버킷은 향후 해당 리전에 복사하는 모든 AMIs를 저장하는 데 사용됩니다.

AMI 복사

CopyImage 작업을 지원하는 AWS Management Console, AWS Command Line Interface 또는 SDK를 사용하거나 Amazon EC2 API를 사용하여 AMI를 복사할 수 있습니다.

전제 조건

복사할 AMI를 생성하거나 확보합니다. 참고로, Amazon EC2 콘솔을 사용하여 AWS가 제공하는 광범위한 AMI를 검색할 수 있습니다. 자세한 내용은 사용자 지정 Windows AMI 생성AMI 찾기를 참조하세요.

Console
AMI 복사
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 콘솔 탐색 모음에서 AMI가 들어 있는 리전을 선택합니다.

  3. 탐색 창에서 AMI를 선택하여 리전에서 사용할 수 있는 AMI 목록을 표시합니다.

  4. 복사하려는 AMI가 없으면 다른 필터를 선택합니다. 내 소유 AMI, 프라이빗 이미지, 퍼블릭 이미지, 비활성화된 이미지로 필터링할 수 있습니다.

  5. 복사할 AMI를 선택하고 작업, AMI 복사를 선택합니다.

  6. AMI 복사(Copy AMI) 페이지에서 다음 정보를 지정합니다.

    1. AMI 복사 이름: 새 AMI의 이름. Amazon EC2는 AMI에 대한 세부 정보를 표시할 때 운영 체제 정보를 제공하지 않으므로 이름에 이 정보를 포함할 수 있습니다.

    2. AMI 복사 설명: 원본과 사본을 구분할 수 있도록 설명에는 기본적으로 원본 AMI에 대한 정보가 포함됩니다. 필요에 따라 이 설명을 수정할 수 있습니다.

    3. 대상 리전: AMI를 복사할 리전. 자세한 내용은 리전 간 복사 단원을 참조하십시오.

    4. Copy tags(태그 복사): AMI를 복사할 때 사용자 정의 AMI 태그를 포함하려면 이 확인란을 선택합니다. 다른 AWS 계정이 첨부한 시스템 태그(접두사 aws: 포함) 및 사용자 정의 태그는 복사되지 않습니다.

    5. (EBS 지원 AMI만 해당) AMI 복사본의 EBS 스냅샷 암호화: 대상 스냅샷을 암호화하거나 다른 키를 사용하여 다시 암호화하려면 이 확인란을 선택합니다. 기본적으로 암호화를 활성화하면 AMI 복사본의 EBS 스냅샷 암호화 확인란이 선택되고 선택을 취소할 수 없습니다. 자세한 내용은 암호화 및 복사 단원을 참조하십시오.

    6. (EBS 지원 AMI만 해당) KMS 키: 대상 스냅샷을 암호화하는 데 사용하는 KMS 키입니다.

    7. 태그: 새 AMI 및 새 스냅샷에 동일한 태그를 지정하거나 다른 태그를 지정할 수 있습니다.

      • 새 AMI 및 새 스냅샷에 동일한 태그를 지정하려면 이미지와 스냅샷을 함께 태그 지정을 선택합니다. 새 AMI 및 생성된 모든 스냅샷에 동일한 태그가 적용됩니다.

      • 새 AMI 및 새 스냅샷에 다른 태그를 지정하려면 이미지와 스냅샷을 별도로 태그 지정을 선택합니다. 새 AMI 및 생성된 스냅샷에 서로 다른 태그가 적용됩니다. 그러나 생성된 모든 스냅샷의 태그는 동일하며 각 스냅샷에 다른 태그를 지정할 수 없습니다.

      태그를 추가하려면 [태그 추가(Add tag)]를 선택하고 해당 태그에 대한 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

    8. AMI를 복사할 준비가 되면 AMI 복사를 선택합니다.

      새 AMI의 초기 상태는 Pending입니다. 상태가 Available인 경우 AMI 복사 작업이 완료된 것입니다.

AWS CLI
AWS CLI를 사용하여 AMI를 복사하려면

copy-image 명령을 사용하여 AMI를 복사할 수 있습니다. 원본 리전과 대상 리전을 모두 지정해야 합니다. --source-region 파라미터를 사용하여 원본 리전을 지정합니다. --region 파라미터 또는 환경 변수를 사용하여 대상 리전을 지정할 수 있습니다. 자세한 내용은 AWS 명령줄 인터페이스 구성 단원을 참조하세요.

(EBS 지원 AMI만 해당) 복사 중에 대상 스냅샷을 암호화하는 경우, --encrypted--kms-key-id 파라미터를 추가로 지정해야 합니다.

명령의 예는 AWS CLI 명령 참조에서 copy-image 아래에 있는 를 참조하세요.

PowerShell
Tools for Windows PowerShell을 사용하여 AMI를 복사하려면

Copy-EC2Image 명령을 사용하여 AMI를 복사할 수 있습니다. 원본 리전과 대상 리전을 모두 지정해야 합니다. -SourceRegion 파라미터를 사용하여 원본 리전을 지정합니다. -Region 파라미터 또는 Set-AWSDefaultRegion 명령을 사용하여 대상 리전을 지정할 수 있습니다. 자세한 정보는 AWS 리전 지정을 참조하세요.

(EBS 지원 AMI만 해당) 복사 중에 대상 스냅샷을 암호화하는 경우, -Encrypted-KmsKeyId 파라미터를 추가로 지정해야 합니다.

대기 중인 AMI 복사 작업 중지

AWS Management Console 또는 명령줄을 사용하여 보류 중인 AMI 복사를 중지할 수 있습니다.

Console
콘솔을 사용하여 AMI 복사 작업을 중지하려면 다음을 수행합니다.
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 모음의 리전 선택기에서 대상 리전을 선택합니다.

  3. 탐색 창에서 AMI를 선택합니다.

  4. 복사를 중지할 AMI를 선택하고 작업, AMI 등록 해제를 차례로 선택합니다.

  5. 확인을 요청하면 AMI 등록 취소(Deregister AMI)를 선택합니다.

Command line
명령줄을 사용하여 AMI 복사 작업을 중지하려면 다음을 수행합니다.

다음 명령 중 하나를 사용할 수 있습니다. 명령줄 인터페이스에 대한 자세한 내용은 Amazon EC2 액세스 단원을 참조하세요.

리전 간 복사

지리적으로 다른 리전 간에 AMI를 복사하면 다음과 같은 이점이 제공됩니다.

  • 일관적인 글로벌 배포: 한 리전에서 다른 리전으로 AMI를 복사하면 동일한 AMI를 기반으로 하는 일관적인 인스턴스를 여러 리전에서 시작할 수 있습니다.

  • 확장성: 사용자의 지역에 관계없이 요구 사항에 대응하는 글로벌 애플리케이션을 보다 손쉽게 설계하고 구축할 수 있습니다.

  • 성능: 애플리케이션을 분산하여 성능을 높이고 애플리케이션의 핵심 구성 요소를 사용자에게 보다 가까이 둘 수 있습니다. 또한 인스턴스 유형이나 여타 AWS 서비스와 같은 리전별 기능을 활용할 수 있습니다.

  • 고가용성: 여러 AWS 리전을 포괄하는 애플리케이션을 설계하고 배포하여 가용성을 높일 수 있습니다.

다음 다이어그램은 소스 AMI 및 다른 리전에 복사된 2개의 AMI 간 관계와 각각에서 시작된 EC2 인스턴스를 보여줍니다. AMI에서 인스턴스를 시작하는 경우 인스턴스는 AMI가 상주하는 동일한 리전에 상주합니다. 원본 AMI를 변경한 후 대상 리전의 AMIs에 변경 내용을 반영하려면 원본 AMI를 대상 리전으로 다시 복사해야 합니다.


				서로 다른 리전에 복사된 AMI

먼저 인스턴스 스토어 지원 AMI를 리전에 복사하는 경우 해당 리전에 복사된 AMIs에 대한 Amazon S3 버킷이 생성됩니다. 해당 리전에 복사하는 인스턴스 스토어 지원 AMIs는 모두 이 버킷에 저장됩니다. 버킷 이름 형식은 amis-for-account-in-region-hash를 따릅니다. 예: amis-for-123456789012-in-us-east-2-yhjmxvp6.

전제 조건

AMI를 복사하기 전에 원본 AMI의 내용이 다른 리전에서 실행이 가능하도록 업데이트되었는지 확인해야 합니다. 예를 들어 데이터베이스 연결 문자열 등의 애플리케이션 구성 데이터가 적절한 리소스를 가리키도록 업데이트해야 합니다. 그렇지 않으면 대상 리전의 새 AMI에서 시작된 인스턴스가 여전히 소스 리전의 리소스를 사용하여 성능과 비용에 영향을 줄 수 있습니다.

제한 사항
  • 대상 리전은 100개의 동시 AMI 복사본으로 제한됩니다.

교차 계정 복사

AMI를 다른 AWS 계정과 공유할 수 있습니다. AMI 공유는 AMI 소유권에 영향을 미치지 않습니다. 계정 소유에는 리전의 스토리지에 대한 요금이 부과됩니다. 자세한 내용은 특정 AWS 계정과 AMI 공유 섹션을 참조하세요.

계정과 공유된 AMI를 복사하는 경우 계정에 있는 대상 AMI의 소유자가 됩니다. 원본 AMI 소유자에게는 표준 Amazon EBS 또는 Amazon S3 전송 요금이 청구되고 사용자에게는 대상 리전의 대상 AMI 스토리지에 대한 요금이 부과됩니다.

리소스 권한

다른 계정에서 공유된 AMI를 복사하려면 소스 AMI 소유자가 AMI를 지원하는 스토리지에 대한 읽기 권한을 부여해야 합니다. 스토리지는 연결된 EBS 스냅샷(Amazon EBS 지원 AMI의 경우) 또는 연결된 S3 버킷(인스턴스 스토어 지원 AMI) 중 하나입니다. 공유 AMI에 암호화된 스냅샷이 있는 경우, 소유자는 해당 키를 사용자와도 공유해야 합니다. 리소스 권한 부여에 대한 자세한 내용은 EBS 스냅샷의 경우 Amazon EBS 사용 설명서Share an Amazon EBS snapshot, S3 버킷의 경우 Amazon Simple Storage Service 사용 설명서Amazon S3의 Identity and Access Management를 참조하세요.

참고

AMI를 태그와 함께 복사하려면 소스 AMI에 대한 시작 권한이 있어야 합니다.

암호화 및 복사

다음 표는 다양한 AMI 복사 시나리오에 대한 암호화 지원을 보여 줍니다. 암호화되지 않은 스냅샷을 복사하여 암호화된 스냅샷을 생성할 수 있지만, 암호화된 스냅샷을 복사하여 암호화되지 않은 스냅샷을 생성할 수는 없습니다.

시나리오 설명 지원
1 암호화되지 않음-암호화되지 않음
2 암호화됨-암호화됨
3 암호화되지 않음-암호화됨
4 암호화됨-암호화되지 않음 아니요
참고

CopyImage 작업 중 암호화는 Amazon EBS 지원 AMIs에만 적용됩니다. 인스턴스 스토어 지원 AMI에서는 스냅샷을 사용하지 않기 때문에 AMI 사본을 사용하여 암호화 상태를 변경할 수 없습니다.

기본적으로(즉, 암호화 파라미터를 지정하지 않은 상태에서) AMI의 스냅샷에 대한 지원은 원래의 암호화 상태와 함께 복사됩니다. 암호화되지 않은 스냅샷에서 지원되는 AMI를 복사하면 역시 암호화되지 않은 동일한 대상 스냅샷이 생성됩니다. 소스 AMI가 암호화된 스냅샷으로 지원되는 경우 AMI를 복사하면 같은 AWS KMS 키로 암호화된 동일한 대상 스냅샷이 생성됩니다. 여러 스냅샷에서 지원되는 AMI를 복사하면 각 대상 스냅샷에서 원본 암호화 상태가 유지됩니다.

AMI을(를) 복사하는 동안 암호화 파라미터를 지정하면 해당 지원 스냅샷을 암호화 또는 재암호화할 수 있습니다. 다음 예시에서는 대상 AMI의 암호화 상태를 변경하기 위해 암호화 파라미터를 CopyImage 작업으로 공급하는 기본이 아닌 사례를 보여 줍니다.

암호화되지 않은 원본 AMI을(를) 암호화된 대상 AMI(으)로 복사

이 시나리오에서는 암호화되지 않은 루트 스냅샷으로 지원되는 AMI가 암호화된 루트 스냅샷이 있는 AMI로 복사됩니다. CopyImage 작업은 고객 관리형 키를 포함하여 2개의 암호화 파라미터를 사용하여 호출됩니다. 따라서 루트 스냅샷의 암호화 상태가 변경되므로 대상 AMI는 소스 스냅샷과 동일한 데이터를 포함하는 루트 스냅샷에 의해 지원되지만 지정된 키를 사용하여 암호화됩니다. 두 AMI 모두의 스냅샷에 대한 스토리지 비용과 각 AMI에서 시작되는 인스턴스에 대한 비용이 발생합니다.

참고

기본적으로 암호화를 활성화하는 경우 AMI의 모든 스냅샷에서 Encrypted 파라미터를 true로 설정하는 것과 효과가 동일합니다.


		AMI 복사 후 즉시 스냅샷 암호화

Encrypted 파라미터를 설정하면 이 인스턴스에 대한 단일 스냅샷이 암호화됩니다. KmsKeyId 파라미터를 지정하지 않으면 스냅샷 복사본을 암호화하는 데 기본 고객 관리형 키가 사용됩니다.

암호화된 스냅샷을 포함하는 AMIs 복사에 대한 자세한 내용은 EBS-backed AMI에서 암호화 사용 섹션을 참조하세요.