Amazon EC2 AMI 복사하기
Amazon EC2 AMI 복사하기 (Copy an Amazon EC2 AMI)
여러 리전에서 일관된 Amazon EC2 인스턴스 구성이 필요할 때, 모든 인스턴스를 시작하는 템플릿으로 단일 AMI(Amazon Machine Image)를 사용할 수 있어요. 그런데 AMI는 리전별 리소스예요. 특정 AWS 리전에서 인스턴스를 시작하려면 그 리전에 AMI가 있어야 해요. 따라서 여러 리전에서 같은 AMI를 사용하려면 소스 리전에서 각 대상 리전으로 AMI를 복사해야 해요.
AMI를 복사하는 방법은 같은 파티션 안의 리전 간 복사인지, 서로 다른 파티션 간 복사인지에 따라 달라져요.
- 리전 간 복사(Cross-Region copying) – 상용 파티션의 리전 간 복사처럼, 같은 파티션 안의 리전 간에 AMI를 복사해요. 이 문서에서 설명하는 방법이에요.
- 파티션 간 복사(Cross-partition copying) – 상용 파티션에서 AWS GovCloud (US) 파티션으로처럼, 한 파티션에서 다른 파티션으로 AMI를 복사해요. 자세한 내용은 'Store and restore an AMI'를 참고하세요.
- 계정 간 복사(Cross-account copying) – 다른 AWS 계정이 내 AWS 계정과 공유한 AMI의 복사본을 만들어요. 이 문서에서 설명하는 방법이에요.
리전 간 및 계정 간 AMI 복사 작업이 완료되는 시간은 best-effort(가능한 한 빠르게) 방식이에요. 완료 시간을 제어해야 한다면 15분에서 48시간 사이의 완료 시간대(completion window)를 지정해 원하는 시간 안에 AMI가 복사되도록 보장할 수 있어요. 시간 기반 AMI 복사 작업에는 추가 요금이 부과돼요. 자세한 내용은 Amazon EBS User Guide의 'Time-based copies'를 참고하세요.
목차 (Contents)
- 고려 사항 (Considerations)
- 비용 (Costs)
- Amazon EC2 AMI 복사 권한 부여하기
- AMI 복사하기
- 진행 중인 AMI 복사 작업 중지하기
- Amazon EC2 AMI 복사가 동작하는 방식
고려 사항 (Considerations)
- AMI 복사 권한 – IAM 정책으로 사용자에게 AMI 복사 권한을 부여하거나 거부할 수 있어요. 2024년 10월 28일부터 소스 AMI에 대한
CopyImage작업에 리소스 수준 권한을 지정할 수 있어요. 새 AMI에 대한 리소스 수준 권한은 이전과 동일하게 사용할 수 있어요. - 시작 권한과 Amazon S3 버킷 권한 – AWS는 소스 AMI의 시작 권한이나 Amazon S3 버킷 권한을 새 AMI로 복사하지 않아요. 복사 작업이 완료된 후 새 AMI에 시작 권한과 Amazon S3 버킷 권한을 적용할 수 있어요.
- 태그 – 소스 AMI에 직접 붙인 사용자 정의 AMI 태그만 복사할 수 있어요. 시스템 태그(
aws:접두사)와 다른 AWS 계정이 붙인 사용자 정의 태그는 복사되지 않아요. AMI를 복사할 때 새 AMI와 그 기반 스냅샷에 새 태그를 붙일 수 있어요. - 시간 기반 AMI 복사의 할당량 – 누적 스냅샷 복사 처리량 할당량에 도달하면 이후 시간 기반 AMI 복사 요청이 실패해요. 자세한 내용은 Amazon EBS User Guide의 'Quotas for time-based copies'를 참고하세요.
- 지원되는 소스-대상 복사 – 소스 AMI의 위치에 따라 복사 가능 여부와 새 AMI의 허용 대상이 결정돼요:
- 소스 AMI가 리전에 있으면 해당 리전 안에서, 다른 리전으로, 그 리전과 연결된 Outpost로, 또는 그 리전의 로컬 존(Local Zone)으로 복사할 수 있어요.
- 소스 AMI가 로컬 존에 있으면 해당 로컬 존 안에서, 그 로컬 존의 부모 리전으로, 또는 같은 부모 리전의 특정 다른 로컬 존으로 복사할 수 있어요.
- 소스 AMI가 Outpost에 있으면 복사할 수 없어요.
- 소스와 대상의 CLI 매개변수 – CLI를 사용할 때 복사할 AMI의 소스 위치와 새 AMI의 대상을 지정하려면 다음 매개변수가 지원돼요. 복사 작업은 반드시 대상 리전에서 시작해야 하며,
--region매개변수를 생략하면 AWS CLI 설정에 구성된 기본 리전이 대상으로 간주돼요.
| 소스 → 대상 | 소스 매개변수 | 대상 매개변수 |
|---|---|---|
| 리전 → 리전 | --source-region |
--region |
| 리전 → Outpost | --source-region |
--destination-outpost-arn (Outpost의 ARN) |
| 리전 → 로컬 존 | --source-region — 로컬 존의 부모 리전이어야 함 |
--destination-availability-zone (로컬 존 이름) 또는 --destination-availability-zone-id (로컬 존 ID) |
| 로컬 존 → 리전 | --source-region — 로컬 존의 부모 리전이어야 함. 소스 로컬 존은 지정된 소스 AMI ID 위치에서 가정됨 |
--region — 로컬 존의 부모 리전이어야 함 |
| 로컬 존 → 로컬 존 | --source-region — 로컬 존의 부모 리전이어야 함. 소스 로컬 존은 지정된 소스 AMI ID 위치에서 가정됨 |
--destination-availability-zone (로컬 존 이름) 또는 --destination-availability-zone-id (로컬 존 ID) |
비용 (Costs)
완료 시간을 지정하지 않으면 AMI 복사에는 요금이 부과되지 않아요. 단, 시간 기반 AMI 복사 작업에는 추가 요금이 적용돼요. 자세한 내용은 Amazon EBS User Guide의 'Time-based copies'를 참고하세요. 표준 스토리지 및 데이터 전송 요율이 적용돼요. EBS 기반 AMI를 복사하면 추가 EBS 스냅샷의 스토리지에 대한 요금이 부과돼요.
AMI 복사하기
소유한 AMI나 다른 계정에서 공유된 AMI를 복사할 수 있어요. 지원되는 소스-대상 조합은 '고려 사항'을 참고하세요.
콘솔 (Console)
AMI를 복사하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
- 콘솔 탐색 표시줄에서 AMI가 들어 있는 리전을 선택하세요.
- 탐색 창에서 AMIs를 선택해 해당 리전에서 사용 가능한 AMI 목록을 표시하세요.
- 복사하려는 AMI가 보이지 않으면 다른 필터를 선택하세요. Owned by me, Private images, Public images, Disabled images로 필터링할 수 있어요.
- 복사할 AMI를 선택한 뒤 Actions, Copy AMI를 선택하세요.
- Copy Amazon Machine Image (AMI) 페이지에서 다음 정보를 지정하세요.
- AMI copy name: 새 AMI의 이름이에요. Amazon EC2는 AMI 세부 정보를 표시할 때 운영체제 정보를 제공하지 않으므로 이름에 운영체제 정보를 포함할 수 있어요.
- AMI copy description: 기본적으로 설명에는 소스 AMI에 대한 정보가 포함되어 복사본을 원본과 구분할 수 있어요. 필요에 따라 설명을 변경할 수 있어요.
- Destination Region: AMI를 복사할 리전이에요. 자세한 내용은 '리전 간 복사'와 '계정 간 복사'를 참고하세요.
- Copy tags: AMI를 복사할 때 사용자 정의 AMI 태그를 포함하려면 이 체크박스를 선택하세요. 시스템 태그(
aws:접두사)와 다른 AWS 계정이 붙인 사용자 정의 태그는 복사되지 않아요. - Time-based copy: 복사 작업이 특정 시간 안에 완료되도록 할지, best-effort(가능한 한 빠르게)로 할지 다음과 같이 지정할 수 있어요.
- 특정 시간 안에 완료하려면: Enable time-based copy를 선택하세요. Completion duration에 복사 작업에 허용할 시간(분)을 15분 단위로 입력하세요. 완료 시간은 AMI와 연결된 모든 스냅샷에 적용돼요. 자세한 내용은 Amazon EBS User Guide의 'Time-based copies'를 참고하세요.
- best-effort로 완료하려면: Enable time-based copy를 선택하지 않은 채 두세요.
- (EBS 기반 AMI만 해당) Encrypt EBS snapshots of AMI copy: 대상 스냅샷을 암호화하거나 다른 키로 재암호화하려면 이 체크박스를 선택하세요. 기본 암호화가 활성화되어 있으면 이 체크박스가 선택된 상태로 해제할 수 없어요. 자세한 내용은 'Encryption and copying'을 참고하세요.
- (EBS 기반 AMI만 해당) KMS key: 대상 스냅샷을 암호화하는 데 사용할 KMS 키예요.
- Tags: 새 AMI와 새 스냅샷에 같은 태그를 붙이거나 서로 다른 태그를 붙일 수 있어요.
- 새 AMI와 새 스냅샷에 같은 태그를 붙이려면 Tag image and snapshots together를 선택하세요. 같은 태그가 새 AMI와 생성되는 모든 스냅샷에 적용돼요.
- 새 AMI와 새 스냅샷에 다른 태그를 붙이려면 Tag image and snapshots separately를 선택하세요. 새 AMI와 생성되는 스냅샷에 다른 태그가 적용돼요. 단, 생성되는 모든 새 스냅샷에는 같은 태그가 적용되며 각 스냅샷에 다른 태그를 붙일 수는 없어요.
- 태그를 추가하려면 Add tag를 선택하고 태그의 키와 값을 입력하세요. 각 태그마다 반복하세요.
- AMI 복사 준비가 되면 Copy AMI를 선택하세요. 새 AMI의 초기 상태는
Pending이에요. 상태가Available이 되면 AMI 복사 작업이 완료된 거예요.
AWS CLI
한 리전에서 다른 리전으로 AMI를 복사하려면
copy-image 명령을 사용하세요. 소스와 대상 리전을 모두 지정해야 해요. --source-region 매개변수로 소스 리전을 지정하고, --region 매개변수로 대상 리전을 지정할 수 있어요(이 매개변수를 생략하면 AWS CLI 설정에 구성된 기본 리전이 대상이 돼요).
aws ec2 copy-image \
--source-image-id ami-0abcdef1234567890 \
--source-region us-west-2 \
--name my-ami \
--region us-east-1
AMI 복사 중 대상 스냅샷을 암호화할 때는 --encrypted와 --kms-key-id 추가 매개변수를 지정해야 해요.
리전에서 로컬 존으로 AMI를 복사하려면
copy-image 명령을 사용하세요. 소스와 대상을 모두 지정해야 해요. --source-region 매개변수로 소스 리전을 지정하고, --destination-availability-zone 매개변수로 대상 로컬 존을 지정해요(--destination-availability-zone-id를 대신 쓸 수 있어요). AMI는 같은 리전 안에서만 리전에서 로컬 존으로 복사할 수 있어요.
aws ec2 copy-image \
--source-image-id ami-0abcdef1234567890 \
--source-region cn-north-1 \
--destination-availability-zone cn-north-1-pkx-1a \
--name my-ami \
--region cn-north-1
로컬 존에서 리전으로 AMI를 복사하려면
copy-image 명령을 사용하세요. 소스와 대상을 모두 지정해야 해요. --source-region 매개변수로 소스 리전을 지정하고(로컬 존의 부모 리전이어야 함), --region 매개변수로 대상 리전을 지정해요(생략하면 기본 리전이 대상이 돼요). 소스 로컬 존은 지정된 소스 AMI ID의 위치에서 가정돼요. AMI는 로컬 존에서 부모 리전으로만 복사할 수 있어요.
aws ec2 copy-image \
--source-image-id ami-0abcdef1234567890 \
--source-region cn-north-1 \
--name my-ami \
--region cn-north-1
한 로컬 존에서 다른 로컬 존으로 AMI를 복사하려면
copy-image 명령을 사용하세요. 소스와 대상을 모두 지정해야 해요. --source-region 매개변수로 로컬 존의 소스 리전을 지정하고, --destination-availability-zone 매개변수로 대상 로컬 존을 지정해요(--destination-availability-zone-id를 대신 쓸 수 있어요). 소스 로컬 존은 지정된 소스 AMI ID의 위치에서 가정돼요. --region 매개변수로 대상 로컬 존의 부모 리전을 지정해요(생략하면 AWS CLI 설정의 기본 리전이 대상이 돼요).
aws ec2 copy-image \
--source-image-id ami-0abcdef1234567890 \
--source-region cn-north-1 \
--destination-availability-zone cn-north-1-pkx-1a \
--name my-ami \
--region cn-north-1
PowerShell
한 리전에서 다른 리전으로 AMI를 복사하려면
Copy-EC2Image cmdlet을 사용하세요. 소스와 대상 리전을 모두 지정해야 해요. -SourceRegion 매개변수로 소스 리전을 지정하고, -Region 매개변수나 Set-AWSDefaultRegion cmdlet으로 대상 리전을 지정해요.
Copy-EC2Image `
-SourceImageId ami-0abcdef1234567890 `
-SourceRegion us-west-2 `
-Name my-ami `
-Region us-east-1
AMI 복사 중 대상 스냅샷을 암호화할 때는 -Encrypted와 -KmsKeyId 추가 매개변수를 지정해야 해요.
리전에서 로컬 존으로 AMI를 복사하려면
Copy-EC2Image cmdlet을 사용하세요. -SourceRegion 매개변수로 소스 리전을, -DestinationAvailabilityZone 매개변수로 대상 로컬 존을 지정해요(-DestinationAvailabilityZoneId를 대신 쓸 수 있어요). AMI는 같은 리전 안에서만 리전에서 로컬 존으로 복사할 수 있어요.
Copy-EC2Image `
-SourceImageId ami-0abcdef1234567890 `
-SourceRegion cn-north-1 `
-DestinationAvailabilityZone cn-north-1-pkx-1a `
-Name my-ami `
-Region cn-north-1
로컬 존에서 리전으로 AMI를 복사하려면
Copy-EC2Image cmdlet을 사용하세요. -SourceRegion 매개변수로 소스 리전을(로컬 존의 부모 리전이어야 함), -Region 매개변수나 Set-AWSDefaultRegion cmdlet으로 대상 리전을 지정해요. 소스 로컬 존은 지정된 소스 AMI ID의 위치에서 가정돼요. AMI는 로컬 존에서 부모 리전으로만 복사할 수 있어요.
Copy-EC2Image `
-SourceImageId ami-0abcdef1234567890 `
-SourceRegion cn-north-1 `
-Name my-ami `
-Region cn-north-1
한 로컬 존에서 다른 로컬 존으로 AMI를 복사하려면
Copy-EC2Image cmdlet을 사용하세요. -SourceRegion 매개변수로 로컬 존의 소스 리전을, -DestinationAvailabilityZone 매개변수로 대상 로컬 존을 지정해요(-DestinationAvailabilityZoneId를 대신 쓸 수 있어요). 소스 로컬 존은 지정된 소스 AMI ID의 위치에서 가정돼요. -Region 매개변수나 Set-AWSDefaultRegion cmdlet으로 대상 로컬 존의 부모 리전을 지정해요.
Copy-EC2Image `
-SourceImageId ami-0abcdef1234567890 `
-SourceRegion cn-north-1 `
-DestinationAvailabilityZone cn-north-1-pkx-1a `
-Name my-ami `
-Region cn-north-1
진행 중인 AMI 복사 작업 중지하기
진행 중인 AMI 복사를 다음 절차로 중지할 수 있어요.
콘솔
AMI 복사 작업을 중지하려면
- Amazon EC2 콘솔을 https://console.aws.amazon.com/ec2/ 에서 엽니다.
- 탐색 표시줄의 리전 선택기에서 대상 리전을 선택하세요.
- 탐색 창에서 AMIs를 선택하세요.
- 복사를 중지할 AMI를 선택한 뒤 Actions, Deregister AMI를 선택하세요.
- 확인 메시지가 뜨면 Deregister AMI를 선택하세요.
AWS CLI
AMI 복사 작업을 중지하려면
deregister-image 명령을 사용하세요.
aws ec2 deregister-image --image-id ami-0abcdef1234567890
PowerShell
AMI 복사 작업을 중지하려면
Unregister-EC2Image cmdlet을 사용하세요.
Unregister-EC2Image -ImageId ami-0abcdef1234567890