

# Amazon EBS 지원 AMI 생성
<a name="creating-an-ami-ebs"></a>

Amazon EC2 인스턴스 또는 Amazon EC2 인스턴스의 루트 볼륨 스냅샷에서 고유 Amazon EBS 지원 AMI를 생성할 수 있습니다.

인스턴스에서 Amazon EBS 지원 AMI를 생성하려면 기존 Amazon EBS 지원 AMI를 사용하여 인스턴스를 시작합니다. 이 AMI는 [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html)를 사용하여 생성한 AWS Marketplace에서 받은 AMI 또는 액세스할 수 있는 기타 AMI일 수 있습니다. 특정 요구 사항에 맞게 인스턴스를 사용자 지정한 후 새 AMI를 생성하고 등록합니다. 그런 다음 새 AMI를 사용하여 사용자 지정이 있는 새 인스턴스를 시작할 수 있습니다.

**참고**  
EC2 인스턴스 증명을 지원하는 AMI를 생성하려면 [증명 가능한 AMI](attestable-ami.md) 섹션을 참조하세요.

아래에 설명된 절차는 암호화된 Amazon Elastic Block Store(Amazon EBS) 볼륨(루트 볼륨 포함) 및 암호화되지 않은 볼륨에서 지원되는 Amazon EC2 인스턴스에 작동합니다.

이 AMI의 생성 과정은 Amazon S3 지원 AMI와 다릅니다. 자세한 내용은 [Amazon S3 지원 AMI 생성](creating-an-ami-instance-store.md) 섹션을 참조하세요.

**Topics**
+ [인스턴스에서 AMI 생성 개요](#process-creating-an-ami-ebs)
+ [인스턴스에서 AMI 생성](#how-to-create-ebs-ami)
+ [스냅샷에서 AMI 생성](#creating-launching-ami-from-snapshot)

## 인스턴스에서 AMI 생성 개요
<a name="process-creating-an-ami-ebs"></a>

다음 다이어그램은 실행 중인 EC2 인스턴스에서 Amazon EBS 지원 AMI를 생성하는 프로세스를 요약합니다. 기존 AMI로 시작하고, 인스턴스를 시작하고, 사용자 지정하고, 새 AMI를 생성하고, 마지막으로 새 AMI의 인스턴스를 시작합니다. 다이어그램의 숫자는 다음 설명의 숫자와 일치합니다.

![\[인스턴스에서 AMI를 생성하기 위한 워크플로\]](http://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/images/running-instance.png)


**1 – AMI \$11: 기존 AMI로 시작**  
생성하려는 AMI와 유사한 기존 AMI를 찾습니다. 이는 AWS Marketplace에서 받은 AMI, [VM Import/Export](https://docs.aws.amazon.com/vm-import/latest/userguide/what-is-vmimport.html)를 사용하여 생성한 AMI 또는 액세스할 수 있는 기타 AMI일 수 있습니다. 필요에 맞게 이 AMI를 사용자 지정합니다.  
다이어그램에서 **EBS 루트 볼륨 스냅샷 \$11(EBS root volume snapshot \$11)**은 AMI가 Amazon EBS 지원 AMI이고 루트 볼륨에 대한 정보가 이 스냅샷에 저장됨을 나타냅니다.

**2 – 기존 AMI에서 인스턴스 시작**  
AMI를 구성하는 방법은 새 AMI의 기반이 될 AMI에서 인스턴스를 시작한 다음 인스턴스를 사용자 지정하는 것입니다(다이어그램에서 **3**에 표시됨). 그런 다음 사용자 지정을 포함하는 새 AMI를 생성합니다(다이어그램에서 **4**에 표시됨).

**3 - EC2 인스턴스 \$11: 인스턴스 사용자 지정**  
인스턴스에 연결하고 필요에 맞게 인스턴스를 사용자 지정합니다. 새 AMI에 이러한 사용자 지정이 포함됩니다.  
인스턴스에서 다음과 같은 작업을 수행하여 인스턴스를 사용자 지정할 수 있습니다.  
+ 소프트웨어 및 애플리케이션 설치
+ 데이터 복사
+ 임시 파일 삭제, 하드 드라이브 조각 모음을 통한 시작 속도 향상
+ 추가 EBS 볼륨 연결

**4 – 이미지 생성**  
인스턴스에서 AMI를 생성할 때 Amazon EC2는 인스턴스의 모든 기능을 중지하여 생성 프로세스 중 일관된 상태를 유지하기 위해 AMI를 생성하기 전에 인스턴스의 전원을 차단합니다. 인스턴스가 AMI 생성에 적합한 일관된 상태를 유지하는 경우 전원을 차단하지 않고 인스턴스를 재부팅하도록 Amazon EC2를 설정할 수 있습니다. 일부 파일 시스템(예: XFS)에서는 활동을 동결 및 동결 해제하여 인스턴스를 재부팅하지 않고 이미지를 안전하게 생성할 수 있습니다.  
AMI 생성 프로세스 중에 Amazon EC2는 인스턴스의 루트 볼륨과 인스턴스에 연결된 다른 EBS 볼륨의 스냅샷을 생성합니다. [AMI 등록을 해제](deregister-ami.md)하고 스냅샷을 삭제할 때까지는 스냅샷에 대한 요금이 부과됩니다. 인스턴스에 연결된 볼륨이 암호화된 경우 새 AMI는 Amazon EBS 암호화를 지원하는 인스턴스에서만 시작됩니다.  
볼륨의 크기에 따라 AMI 생성 프로세스를 완료하는 데 몇 분 정도 걸리지만 경우에 따라 24시간까지 걸릴 수도 있습니다. AMI를 생성하기 전에 볼륨의 스냅샷을 생성하는 것이 더 효율적일 수 있습니다. 이처럼 AMI를 생성할 때 작은 증분적 스냅샷만 만들어야 프로세스가 더 빠르게 완료됩니다. 스냅샷을 만드는 데 걸리는 전체 시간은 동일하게 유지됩니다.

**5 - AMI \$12: 새 AMI**  
프로세스가 완료되면 인스턴스의 루트 볼륨에서 새 AMI 및 스냅샷(**스냅샷 \$12(snapshot \$12)**)이 생성됩니다. 인스턴스 저장소 볼륨 또는 EBS 볼륨을 인스턴스에 추가한 경우 루트 볼륨 외에 새 AMI에 대한 블록 디바이스 매핑에 이러한 볼륨 관련 정보가 포함됩니다.  
Amazon EC2는 자동으로 AMI를 등록합니다.

**6 – 새 AMI에서 인스턴스 시작**  
새 AMI를 사용하여 인스턴스를 시작할 수 있습니다.

**7 - EC2 인스턴스 \$12: 새 인스턴스**  
새 AMI를 사용하여 인스턴스를 시작하면 Amazon EC2는 스냅샷을 사용하여 인스턴스의 루트 볼륨에 대한 새 EBS 볼륨을 생성합니다. 인스턴스를 사용자 지정할 때 인스턴스 저장소 볼륨 또는 EBS 볼륨을 추가한 경우 새 AMI에 대한 블록 디바이스 매핑에 이러한 볼륨 관련 정보가 포함되고, 새 AMI에서 시작하는 인스턴스에 대한 블록 디바이스 매핑에 이러한 볼륨 관련 정보가 자동으로 포함됩니다. 새 인스턴스에 대한 블록 디바이스 매핑에 지정된 인스턴스 스토어 볼륨은 새 볼륨이므로 AMI를 생성하는 데 사용된 인스턴스에 대한 인스턴스 스토어 볼륨의 데이터가 포함되어 있지 않습니다. EBS 볼륨의 데이터는 유지됩니다. 자세한 내용은 [Amazon EC2 인스턴스의 볼륨에 대한 블록 디바이스 매핑](block-device-mapping-concepts.md) 섹션을 참조하세요.  
EBS 지원 AMI에서 새 인스턴스를 만들 때는 루트 볼륨과 추가 EBS 저장소를 모두 프로덕션 환경에 배치하기 전에 초기화해야 합니다. 자세한 내용은 *Amazon EBS 사용 설명서*의 [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-initialize.html)를 참조하세요.

## 인스턴스에서 AMI 생성
<a name="how-to-create-ebs-ami"></a>

기존 인스턴스가 있는 경우 이 인스턴스에서 AMI를 생성할 수 있습니다.

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

**API 생성**

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

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. AMI를 생성할 인스턴스를 선택하고 **Actions**(작업), **Image and templates**(이미지 및 템플릿), **Create image**(이미지 생성)를 차례로 선택합니다.
**작은 정보**  
이 옵션이 비활성화되어 있다면 Amazon EBS 지원 인스턴스가 아님을 의미합니다.

1. **Create image**(이미지 생성) 페이지에서 다음 정보를 지정합니다.

   1. **Image name**(이미지 이름)에 이미지의 고유 이름을 최대 127자로 입력합니다.

   1. **Image description**(이미지 설명)에 이미지에 대한 선택적 설명을 최대 255자로 입력합니다.

   1. **인스턴스 재부팅**의 경우 확인란을 선택된 상태로 두거나(기본값) 선택을 취소합니다.
      + **인스턴스 재부팅**을 선택하면 Amazon EC2가 새 AMI를 생성할 때 인스턴스가 재부팅되므로, 데이터가 사용되지 않는 동안 연결된 볼륨의 스냅샷을 생성하여 일관된 상태를 유지할 수 있습니다.
      + **인스턴스 재부팅** 선택을 취소하면 Amazon EC2가 새 AMI를 생성할 때 인스턴스가 종료되거나 재부팅되지 않습니다.
**주의**  
**인스턴스 재부팅** 선택을 취소하는 경우 생성된 이미지의 파일 시스템 무결성을 보장할 수 없습니다.

   1. **Instance volumes**(인스턴스 볼륨) - 다음과 같이 루트 볼륨을 수정하고, Amazon EBS 및 인스턴스 스토어 볼륨을 추가할 수 있습니다.

      1. 루트 볼륨은 첫 번째 행에 정의됩니다.
         + 루트 볼륨의 크기를 변경하려면 [**크기(Size)**] 에 필요한 값을 입력합니다.
         + [**종료 시 삭제 여부(Delete on termination)**]를 선택할 경우 이 AMI에서 생성된 인스턴스를 종료하면 EBS 볼륨이 삭제됩니다. [**종료 시 삭제 여부(Delete on termination)**]를 선택 취소할 경우 인스턴스를 종료하면 EBS 볼륨이 삭제되지 않습니다. 자세한 내용은 [인스턴스가 종료될 때 데이터 보존](preserving-volumes-on-termination.md) 섹션을 참조하세요.

      1. EBS 볼륨을 추가하려면 [**볼륨 추가(Add volume)**]를 선택합니다(새 행이 추가됨). **스토리지 유형**에서 **EBS**를 선택하고 행의 필드를 작성합니다. 새 AMI에서 인스턴스를 시작하면 추가 볼륨이 인스턴스에 자동으로 연결됩니다. 빈 볼륨은 반드시 포맷하고 탑재해야 합니다. 스냅샷 기반 볼륨을 반드시 마운트해야 합니다.

      1. 인스턴스 스토어 볼륨을 추가하려면 [Amazon EC2 AMI에 인스턴스 스토어 볼륨 추가](adding-instance-storage-ami.md)를 참조하세요. 새 AMI에서 인스턴스를 시작하면 추가 볼륨이 자동으로 시작되어 탑재됩니다. 이러한 볼륨에는 AMI를 기반으로 하는 실행 중인 인스턴스에 대한 인스턴스 스토어 볼륨의 데이터가 포함되어 있지 않습니다.

   1. **스냅샷 대상** - 인스턴스 볼륨이 EBS 로컬 스냅샷을 지원하는 로컬 영역에 있는 경우 AMI의 스냅샷을 생성할 위치를 선택합니다.
      + **AWS 리전**: 볼륨이 위치한 로컬 영역의 상위 리전에 스냅샷을 생성합니다.
      + **AWS 로컬 영역**: 볼륨과 동일한 로컬 영역에 스냅샷을 생성합니다.
**참고**  
이 옵션은 EBS 로컬 스냅샷을 지원하는 로컬 영역에만 나타나며 인스턴스가 로컬 영역에 생성된 경우에만 나타납니다. 볼륨이 리전에 있는 경우 이 옵션은 표시되지 않으며 스냅샷은 볼륨과 동일한 리전에 자동으로 생성됩니다. 자세한 내용은 *Amazon EBS 사용 설명서*에서 [로컬 영역의 로컬 스냅샷](https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-localzones.html)을 참조하세요.
**중요**  
인스턴스 볼륨의 모든 스냅샷은 동일한 위치에 있어야 합니다. 기존 스냅샷의 위치를 확인합니다. 기존 스냅샷이 선택한 대상과 다른 위치에 있는 경우 AMI 생성이 실패합니다.

   1. **[태그(Tags)]** - 동일한 태그 또는 다른 태그를 사용하여 AMI와 스냅샷을 태깅할 수 있습니다.
      + AMI와 스냅샷에 *동일한* 태그를 지정하려면 [**이미지와 스냅샷을 함께 태깅(Tag image and snapshots together)**]을 선택합니다. 생성된 AMI와 모든 스냅샷에 동일한 태그가 적용됩니다.
      + AMI와 스냅샷에 *다른* 태그를 지정하려면 [**이미지 및 스냅샷을 개별적으로 태깅(Tag image and snapshots separately)**]을 선택합니다. 생성된 AMI와 스냅샷에 서로 다른 태그가 적용됩니다. 그러나 모든 스냅샷의 태그는 동일하며 각 스냅샷에 다른 태그를 지정할 수는 없습니다.

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

   1. AMI를 생성할 준비가 되면 **Create image**(이미지 생성)를 선택합니다.

1. 생성 중인 AMI의 상태를 보려면

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

   1. 필터를 **Owned by me**(내 소유)로 설정하고 목록에서 AMI를 찾습니다.

      처음에 상태는 `pending`이지만 몇 분 후에 `available`로 변경되어야 합니다.

1. (선택 사항) 새 AMI에 대해 생성된 스냅샷을 보려면

   1. 이전 단계에서 찾은 AMI의 ID를 기록해 둡니다.

   1. 탐색 창에서 **스냅샷**을 선택합니다.

   1. 필터를 **Owned by me**(내 소유)로 설정한 다음 **Description**(설명) 열에 새 AMI ID가 있는 스냅샷을 찾습니다.

      이 AMI에서 인스턴스를 시작할 때, Amazon EC2가 이 스냅샷을 사용하여 인스턴스의 루트 볼륨을 생성합니다.

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

**API 생성**  
[create-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/create-image.html) 명령을 사용합니다.

```
aws ec2 create-image \
    --instance-id i-1234567890abcdef0 \
    --name "my-web-server" \
    --description "My web server image" \
    --no-reboot
```

------
#### [ PowerShell ]

**API 생성**  
[New-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/New-EC2Image.html) cmdlet을 사용합니다.

```
New-EC2Image `
    -InstanceId i-1234567890abcdef0 ` 
    -Name "my-web-server" `
    -Description "My web server image" `
    -NoReboot $true
```

------

## 스냅샷에서 AMI 생성
<a name="creating-launching-ami-from-snapshot"></a>

인스턴스의 루트 볼륨에 대한 스냅샷이 있으면 이 스냅샷에서 AMI를 생성할 수 있습니다.

**참고**  
대부분의 경우 Windows, Red Hat, SUSE 및 SQL Server용 AMI를 사용하려면 AMI에 올바른 라이선스 정보가 있어야 합니다. 자세한 내용은 [AMI 결제 정보 이해](ami-billing-info.md) 섹션을 참조하세요. 스냅샷에서 AMI를 생성할 때 `RegisterImage` 작업은 스냅샷의 메타데이터에서 올바른 결제 정보를 가져오지만, 이를 위해서는 적절한 메타데이터가 있어야 합니다. 올바른 결제 정보가 적용되었는지 확인하려면 새 AMI의 **플랫폼 세부 정보** 필드를 확인합니다. 필드가 비어 있거나 예상 운영 체제 코드(예: Windows, Red Hat, SUSE 또는 SQL)와 일치하지 않는 경우 AMI 생성에 실패한 것이므로 AMI를 삭제하고 [인스턴스에서 AMI 생성](#how-to-create-ebs-ami)의 지침을 따라야 합니다.

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

**스냅샷에서 AMI 생성**

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

1. 탐색 창에서 [**스냅샷(Snapshots)**]을 선택합니다.

1. AMI를 생성할 스냅샷을 선택하고 **Actions**(작업), **Create image from snapshot**(스냅샷에서 이미지 생성)을 선택합니다.

1. **스냅샷에서 이미지 생성** 페이지에서 다음 정보를 지정합니다.

   1. **이미지 이름(Image name)**에 이미지를 설명하는 이름을 입력합니다.

   1. **설명(Description)**에 이미지에 대한 간략한 설명을 입력합니다.

   1. **아키텍처(Architecture)**에 대해 이미지 아키텍처를 선택합니다. 32비트의 경우 **i386**, 64비트의 경우 **x86\$164**, 64비트 ARM의 경우 **arm64**, 64비트 macOS의 경우 **x86\$164**를 선택하세요.

   1. **루트 디바이스 이름**에서 루트 볼륨에 사용할 디바이스 이름을 입력합니다. 자세한 내용은 [Amazon EC2 인스턴스의 볼륨 디바이스 이름](device_naming.md) 섹션을 참조하세요.

   1. **가상화 유형(Virtualization type)**에서 이 AMI에서 시작된 인스턴스에서 사용할 가상화 유형을 선택합니다. 자세한 내용은 [가상화 유형](ComponentsAMIs.md#virtualization_types) 섹션을 참조하세요.

   1. (반가상화 가상화에만 해당) **커널 ID(Kernel ID)**에서 이미지의 운영 체제 커널을 선택합니다. 인스턴스의 루트 볼륨 스냅샷을 사용하는 경우 원래 인스턴스와 동일한 커널 ID를 선택합니다. 확실하지 않다면 기본 커널을 사용하십시오.

   1. (반가상화 가상화에만 해당) **RAM 디스크 ID(RAM disk ID)**에서 이미지의 RAM 디스크를 선택합니다. 특정 커널을 선택할 경우 해당 커널을 지원하는 드라이버가 설치된 특정 RAM 디스크를 선택해야 합니다.

   1. **부트 모드**에서 이미지의 부트 모드를 선택하거나, 이 AMI로 인스턴스가 시작될 때 인스턴스 유형에서 지원하는 부트 모드로 부팅되도록 **기본값 사용**을 선택합니다. 자세한 내용은 [Amazon EC2 AMI의 부팅 모드 설정](set-ami-boot-mode.md) 섹션을 참조하세요.

   1. (선택 사항) **블록 디바이스 매핑**에서 루트 볼륨을 사용자 지정하고 데이터 볼륨을 더 추가합니다.

      각 볼륨에 대해 크기, 유형, 성능 특성, 종료 시 삭제 동작 및 암호화 상태를 지정할 수 있습니다. 루트 볼륨의 경우 크기는 스냅샷의 크기보다 작을 수 없습니다. 볼륨 유형의 경우 범용 SSD `gp3`이 기본 선택 사항입니다.

   1. (선택 사항) **태그**에서 새 AMI에 하나 이상의 태그를 추가할 수 있습니다. 태그를 추가하려면 [**태그 추가(Add tag)**]를 선택하고 해당 태그에 대한 키와 값을 입력합니다. 각 태그에 대해 반복합니다.

   1. AMI를 생성할 준비가 되면 **Create image**(이미지 생성)를 선택합니다.

1. (Windows, Red Hat, SUSE, SQL Server 전용) 올바른 결제 정보가 적용되었는지 확인하려면 새 AMI의 **플랫폼 세부 정보** 필드를 확인합니다. 필드가 비어 있거나 예상 운영 체제 코드(예: **Windows** 또는 **Red Hat**)와 일치하지 않는 경우 AMI 생성에 실패한 것이므로 AMI를 삭제하고 [인스턴스에서 AMI 생성](#how-to-create-ebs-ami)의 지침을 따라야 합니다.

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

**AWS CLI를 사용하여 스냅샷에서 AMI를 생성하려면 다음을 수행하세요.**  
[register-image](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) 명령을 사용합니다.

```
aws ec2 register-image \
    --name my-image \
    --root-device-name /dev/xvda \
    --block-device-mappings DeviceName=/dev/xvda,Ebs={SnapshotId=snap-0db2cf683925d191f}
```

------
#### [ PowerShell ]

**PowerShell을 사용하여 스냅샷에서 AMI를 생성하려면 다음을 수행하세요.**  
[Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) cmdlet을 사용합니다.

```
$block = @{SnapshotId=snap-0db2cf683925d191f}
Register-EC2Image `
    -Name my-image `
    -RootDeviceName /dev/xvda `
    -BlockDeviceMapping @{DeviceName="/dev/xvda";Ebs=$block}
```

------