

# Amazon EC2의 AMI 유형 및 특성
<a name="ComponentsAMIs"></a>

인스턴스를 시작할 때 선택하는 AMI가 선택하는 인스턴스 유형과 호환되어야 합니다. 다음 유형을 기준으로 사용할 AMI를 선택할 수 있습니다.
+ [리전](using-regions-availability-zones.md)
+ 운영 체제
+ 프로세서 아키텍처
+ [시작 권한](#launch-permissions)
+ [루트 볼륨 유형](#storage-for-the-root-device)
+ [가상화 유형](#virtualization_types)

## 시작 권한
<a name="launch-permissions"></a>

시작 권한은 AMI를 사용하여 인스턴스를 시작할 수 있는 사용자를 결정합니다. 시작 권한을 [AMI 공유](sharing-amis.md)로 생각할 수 있습니다. 시작 권한을 부여하면 AMI를 다른 사용자와 공유할 수 있습니다. AMI 소유자만 시작 권한을 지정하여 가용성을 결정할 수 있습니다. 시작 권한은 다음 범주로 분류됩니다.


| 시작 권한 | 설명 | 
| --- | --- | 
| 퍼블릭 | 소유자는 모든 AWS 계정에 시작 권한을 부여합니다. | 
| 명시적 | 소유자는 특정 AWS 계정, 조직 또는 OU(조직 단위)에 시작 권한을 부여합니다. | 
| 암묵적 | 소유자는 AMI에 대한 암묵적인 시작 권한을 갖습니다. | 

Amazon 및 Amazon EC2 커뮤니티는 퍼블릭 AMI에 대한 다양한 선택권을 제공합니다. 자세한 내용은 [Amazon EC2의 공유 AMI 사용량 이해](sharing-amis.md) 섹션을 참조하세요. 개발자들은 자신의 AMI에 비용을 부과할 수 있습니다. 자세한 내용은 [Amazon EC2 인스턴스용 AWS Marketplace의 유료 AMI](paid-amis.md) 섹션을 참조하세요.

## 루트 볼륨 유형
<a name="storage-for-the-root-device"></a>

모든 AMI는 *Amazon EBS에 의해 지원되는 유형* 또는 *Amazon S3에 의해 지원되는 유형*으로 분류됩니다.
+ Amazon EBS 지원 AMI – AMI에서 시작된 인스턴스의 루트 볼륨은 Amazon EBS 스냅샷에서 생성된 Amazon Elastic Block Store(Amazon EBS) 볼륨입니다. Linux와 Windows AMI 모두 지원됩니다.
+ Amazon S3 지원 AMI – AMI에서 시작된 인스턴스의 루트 볼륨은 Amazon S3에 저장된 템플릿으로부터 생성된 인스턴스 저장소 볼륨입니다. Linux AMI에서만 지원됩니다. Windows AMI는 루트 볼륨에 대한 인스턴스 저장소를 지원하지 않습니다.

자세한 내용은 [Amazon EC2 인스턴스용 루트 볼륨](RootDeviceStorage.md) 섹션을 참조하세요.

**참고**  
Amazon S3 지원 AMI는 수명 종료로 간주되며 새 사용에 권장되지 않습니다. C1, C3, D2, I2, M1, M2, M3, R3, X1 같은 이전 인스턴스 유형에서만 지원됩니다.

다음 표에는 두 가지 유형의 AMI를 사용할 때 주요 차이점이 요약되어 있습니다.


| 특성 | Amazon EBS 지원 AMI | Amazon S3 지원 AMI | 
| --- | --- | --- | 
| 루트 볼륨 | EBS 볼륨 | 인스턴스 저장소 볼륨 | 
| 인스턴스의 부팅 시간 | 일반적으로 1분 이하 | 일반적으로 5분 이하 | 
| 데이터 지속성  |  기본적으로 인스턴스가 종료되면 루트 볼륨이 삭제됩니다.\$1 다른 EBS 볼륨의 데이터는 기본적으로 인스턴스 종료 후에도 유지됩니다.  |  모든 인스턴스 저장소의 데이터는 인스턴스 수명 주기 동안만 유지됩니다.  | 
| 중지 상태 |  중지 상태일 수 있습니다. 인스턴스가 중지되고 실행 중이지 않은 경우에도 루트 볼륨은 Amazon EBS에 유지됩니다.  |  중지 상태가 될 수 없습니다. 인스턴스가 실행 중이거나 종료되었습니다  | 
| 수정 |  인스턴스 유형, 커널 RAM 디스크 및 사용자 데이터는 인스턴스가 중지된 동안에 변경될 수 있습니다.  |  인스턴스 속성은 인스턴스 수명 주기 동안 고정됩니다.  | 
| 요금 |  인스턴스 사용량, EBS 볼륨 사용량 및 AMI를 EBS 스냅샷으로 저장하는 것에 대한 비용이 청구됩니다.  |  인스턴스 사용량 및 Amazon S3에 AMI를 저장하는 것에 대한 비용이 청구됩니다.  | 
| AMI 생성/번들링 | 단일 명령/호출을 사용합니다 | AMI 도구를 설치 및 사용해야 합니다 | 

\$1 기본적으로 EBS 루트 볼륨의 `DeleteOnTermination` 플래그는 `true`로 설정되어 있습니다. 이 플래그를 변경하여 종료 후에도 볼륨을 유지하는 방법에 대한 자세한 내용은 [Amazon EC2 인스턴스가 종료된 후에도 Amazon EBS 루트 볼륨 유지](configure-root-volume-delete-on-termination.md) 섹션을 참조하세요.

\$1\$1 `io2` EBS Block Express에서만 지원됩니다. 자세한 내용은 *Amazon EBS 사용 설명서*의 [Provisioned IOPS SSD Block Express volumes](https://docs.aws.amazon.com/ebs/latest/userguide/provisioned-iops.html#io2-block-express)를 참조하세요.

# AMI에서 결정한 루트 볼륨 유형 식별
<a name="display-ami-root-device-type"></a>

루트 볼륨의 유형은 EC2 인스턴스를 시작하는 데 사용하는 AMI에 따라 결정됩니다. EC2 인스턴스의 루트 볼륨은 EBS 볼륨 또는 인스턴스 저장소 볼륨입니다.

[Nitro 기반 인스턴스](instance-types.md#instance-hypervisor-type)는 EBS 루트 볼륨만 지원합니다. 이전 세대 인스턴스 유형인 C1, C3, D2, I2, M1, M2, M3, R3, X1만 인스턴스 저장소 루트 볼륨이 지원되는 인스턴스 유형입니다.

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

**AMI에서 결정한 루트 볼륨 유형을 식별하려면**

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

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

1. **세부 정보(Details)** 탭에서 **루트 디바이스 유형(Root device type)**의 값을 다음과 같이 확인합니다.
   + `ebs` -이 AMI에서 시작된 인스턴스는 EBS 루트 볼륨을 가져옵니다.
   + `instance store` -이 AMI에서 시작된 인스턴스는 인스턴스 저장소 루트 볼륨을 가져옵니다.

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

**AMI에서 결정한 루트 볼륨 유형을 식별하려면**  
[describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 명령을 사용합니다.

```
aws ec2 describe-images \
    --image-ids ami-0abcdef1234567890 \
    --query Images[].RootDeviceType
```

다음은 예제 출력입니다.

```
ebs
```

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

**AMI에서 결정한 루트 볼륨 유형을 식별하려면**  
[Get-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html) cmdlet을 사용합니다.

```
(Get-EC2Image `
    -ImageId ami-0abcdef1234567890).RootDeviceType.Value
```

다음은 예제 출력입니다.

```
ebs
```

------

## 가상화 유형
<a name="virtualization_types"></a>

Amazon Machine Image는 PV(반가상화) 또는 HVM(하드웨어 가상 머신)의 두 가지 유형의 가상화를 사용합니다. PV AMI와 HVM AMI의 주요 차이점은 부팅 방법과 더 나은 성능을 위해 특수 하드웨어 확장(CPU, 네트워크, 스토리지)을 활용할 수 있는지 여부에 있습니다. Windows AMI는 HVM AMI입니다.

다음 표에서는 HVM과 PV AMI를 비교합니다.


| 기능 | HVM | PV | 
| --- | --- | --- | 
| 설명 | HVM AMI는 이미지 루트 블록 디바이스의 마스터 부트 레코드를 실행하여 완벽하게 가상화된 하드웨어 및 부트 세트를 함께 제공합니다. 이 가상화 유형은 운영 체제 미설치 하드웨어에서 실행될 때처럼 가상 머신에서 운영 체제를 수정하지 않고 실행할 수 있습니다. Amazon EC2 호스트 시스템은 게스트에게 제공되는 기본 하드웨어의 일부 또는 모두를 에뮬레이트합니다. | PV AMIs는 PV-GRUB라는 특수 부트 로더를 통해 부팅되며, 이 로더는 부팅 주기를 시작한 후 사용자 이미지의 menu.lst 파일에 지정된 커널을 체인 로드합니다. 반가상화 게스트는 가상화를 명시적으로 지원하지 않는 하드웨어에서 실행할 수 있습니다. PV-GRUB 및 Amazon EC2에서의 사용에 대한 자세한 내용은 [사용자 제공 커널](https://docs.aws.amazon.com/linux/al2/ug/UserProvidedKernels.html)을 참조하세요. | 
| 지원되는 인스턴스 유형 | 모든 최신 인스턴스 유형은 HVM AMI를 지원합니다. | C1, C3, M1, M3, M2, T1 등과 같은 전 세대 인스턴스 유형은 PV AMI를 지원합니다. 최신 세대 인스턴스 유형은 PV AMI를 지원하지 않습니다. | 
| 하드웨어 확장 지원 | HVM 게스트는 하드웨어 확장을 활용하여 호스트 시스템의 기본 하드웨어에 빠르게 액세스할 수 있습니다. 향상된 네트워킹과 GPU 처리를 사용해야 합니다. 특수 네트워크 및 GPU 디바이스에 명령을 전달하려면 OS가 기본 하드웨어 플랫폼에 액세스할 수 있어야 하며, HVM 가상화가 이러한 액세스를 제공합니다. 자세한 내용은 [Amazon EC2 인스턴스의 향상된 네트워킹](enhanced-networking.md) 섹션을 참조하세요. | 아니요. 향상된 네트워킹 또는 GPU 처리와 같은 특수 하드웨어 확장을 활용할 수 없습니다. | 
| [찾는 방법](finding-an-ami.md) | 콘솔 또는 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 명령을 사용하여 AMI의 가상화 유형이 hvm로 설정되어 있는지 확인합니다. | 콘솔 또는 [describe-images](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) 명령을 사용하여 AMI의 가상화 유형이 paravirtual로 설정되어 있는지 확인합니다. | 

**HVM 기반 PV**  
이전에는 반가상화 게스트는 I/O용 특수 드라이버를 활용하여 네트워크 및 디스크 하드웨어 에뮬레이트 오버헤드를 방지할 수 있지만, HVM 게스트는 이러한 명령을 에뮬레이트된 하드웨어로 변환해야 했기 때문에, 반가상화 게스트가 HVM 게스트보다 스토리지 및 네트워크 운영 성능이 더 뛰어났습니다. 현재는 HVM 게스트용 PV 드라이버가 제공되므로 반가상화된 환경에서 실행하도록 이식할 수 없는 운영 체제에서도 이러한 PV 드라이버를 통해 스토리지 및 네트워크 I/O 성능이 향상될 수 있습니다. HVM 게스트는 이러한 HVM 기반 PV 드라이버를 사용하여 반가상 게스트와 동일하거나 더 나은 성능을 제공할 수 있습니다.