Amazon EC2에서의 AMI 유형과 특성
Amazon EC2에서의 AMI 유형과 특성
인스턴스를 실행할 때는 선택한 AMI가 선택한 인스턴스 유형과 호환되어야 해요. AMI는 리전, 운영 체제, 프로세서 아키텍처, 실행 권한(launch permissions), 루트 볼륨 유형, 가상화 유형이라는 특성에 따라 골라 쓸 수 있어요.
출처: 문서
본문
실행 권한 (Launch permissions)
실행 권한은 누가 AMI로 인스턴스를 실행할 수 있는지를 결정해요. 실행 권한을 부여한다는 것은 곧 AMI를 다른 사용자와 공유한다는 뜻으로 볼 수 있어요. AMI의 가용성을 결정하는 건 오직 AMI의 소유자뿐이며, 소유자는 실행 권한을 지정하는 방식으로 이걸 조정해요.
| 실행 권한 | 설명 |
|---|---|
| public | 소유자가 모든 AWS 계정에 실행 권한을 부여해요. |
| explicit | 소유자가 특정 AWS 계정, 조직(organization), 또는 조직 단위(OU)에 실행 권한을 부여해요. |
| implicit | 소유자가 AMI에 대해 암묵적으로 갖는 실행 권한이에요. |
Amazon과 Amazon EC2 커뮤니티는 다양한 공개 AMI(public AMI)를 제공해요. 자세한 내용은 Amazon EC2에서 공유 AMI 사용 이해하기 문서를 참고하세요. 개발자는 자신의 AMI에 요금을 부과할 수도 있어요. 자세한 내용은 Amazon EC2 인스턴스용 AWS Marketplace의 유료 AMI 문서를 참고하세요.
루트 볼륨 유형 (Root volume type)
모든 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 인스턴스의 루트 볼륨 문서를 참고하세요.
참고 — Amazon S3 백킹 AMI는 수명이 다한(End of Life) 것으로 간주되며 새로 사용하는 것을 권장하지 않아요. 다음 구형 인스턴스 유형에서만 지원돼요: C1, C3, D2, I2, M1, M2, M3, R3, X1.
다음 표는 두 AMI 유형을 사용할 때의 중요한 차이를 정리한 거예요.
| 특성 | Amazon EBS 백킹 AMI | Amazon S3 백킹 AMI |
|---|---|---|
| 루트 볼륨 | EBS 볼륨 | 인스턴스 스토어 볼륨 |
| 인스턴스 부팅 시간 | 보통 1분 미만 | 보통 5분 미만 |
| 데이터 영속성 | 기본적으로 인스턴스가 종료되면 루트 볼륨도 삭제돼요.* 다른 EBS 볼륨의 데이터는 기본적으로 인스턴스 종료 후에도 유지돼요. | 인스턴스 스토어 볼륨의 데이터는 인스턴스가 살아 있는 동안에만 유지돼요. |
| 중지 상태 | 중지된 상태가 가능해요. 인스턴스가 중지되어 실행 중이 아니어도 루트 볼륨은 Amazon EBS에 유지돼요. | 중지된 상태가 불가능해요. 인스턴스는 실행 중이거나 종료된 상태예요. |
| 수정 | 인스턴스가 중지된 동안 인스턴스 유형, 커널, RAM disk, 사용자 데이터를 변경할 수 있어요. | 인스턴스 속성은 인스턴스 수명 동안 고정돼요. |
| 요금 | 인스턴스 사용, EBS 볼륨 사용, AMI를 EBS 스냅샷으로 저장하는 비용이 청구돼요. | 인스턴스 사용과 Amazon S3에 AMI를 저장하는 비용이 청구돼요. |
| AMI 생성/번들링 | 단일 명령/호출을 사용해요. | AMI 도구의 설치와 사용이 필요해요. |
* 기본적으로 EBS 루트 볼륨은 DeleteOnTermination 플래그가 true로 설정돼 있어요. 종료 후에도 볼륨이 유지되도록 이 플래그를 변경하는 방법은 Amazon EC2 인스턴스 종료 후에도 Amazon EBS 루트 볼륨 유지하기 문서를 참고하세요.
가상화 유형 (Virtualization types)
Amazon Machine Image는 반가상화(paravirtual, PV) 또는 하드웨어 가상 머신(HVM) 중 하나의 가상화 방식을 사용해요. PV AMI와 HVM AMI의 주요 차이는 부팅 방식과 특수 하드웨어 확장(CPU, 네트워크, 스토리지)을 활용해 더 나은 성능을 얻을 수 있는지 여부예요. Windows AMI는 HVM AMI예요.
다음 표는 HVM AMI와 PV AMI를 비교한 거예요.
| 특성 | HVM | PV |
|---|---|---|
| 설명 | HVM AMI는 완전히 가상화된 하드웨어 세트를 제공받고, 이미지의 루트 블록 디바이스의 마스터 부트 레코드를 실행해 부팅해요. 이 가상화 방식은 베어메탈 하드웨어에서 실행하는 것처럼, 운영 체제를 수정 없이 가상 머신 위에서 직접 실행할 수 있게 해요. Amazon EC2 호스트 시스템은 게스트에 제공되는 기본 하드웨어의 일부 또는 전체를 에뮬레이션해요. | PV AMI는 PV-GRUB이라는 특수 부트 로더로 부팅해요. PV-GRUB가 부팅 주기를 시작한 다음, 이미지의 menu.lst 파일에 지정된 커널을 체인로드(chain load)해요. 반가상화 게스트는 가상화를 명시적으로 지원하지 않는 호스트 하드웨어에서도 실행될 수 있어요. PV-GRUB와 Amazon EC2에서의 사용에 대한 자세한 내용은 사용자 제공 커널 문서를 참고하세요. |
| 지원 인스턴스 유형 | 모든 최신 세대 인스턴스 유형이 HVM AMI를 지원해요. | 다음 구형 인스턴스 유형이 PV AMI를 지원해요: C1, C3, M1, M3, M2, T1. 최신 세대 인스턴스 유형은 PV AMI를 지원하지 않아요. |
| 하드웨어 확장 지원 | HVM 게스트는 호스트 시스템의 기본 하드웨어에 빠르게 접근하게 해 주는 하드웨어 확장을 활용할 수 있어요. 향상된 네트워킹과 GPU 처리를 사용하려면 필요해요. 특수 네트워크·GPU 디바이스에 명령을 전달하려면 OS가 네이티브 하드웨어 플랫폼에 접근할 수 있어야 하고, HVM 가상화가 이 접근을 제공해요. 자세한 내용은 Amazon EC2 인스턴스의 향상된 네트워킹 문서를 참고하세요. | 아니요. 향상된 네트워킹이나 GPU 처리 같은 특수 하드웨어 확장을 활용할 수 없어요. |
| 찾는 방법 | 콘솔이나 describe-images 명령을 사용해 AMI의 가상화 유형이 hvm으로 설정되어 있는지 확인해요. |
콘솔이나 describe-images 명령을 사용해 AMI의 가상화 유형이 paravirtual로 설정되어 있는지 확인해요. |
PV on HVM
반가상화 게스트는 네트워크·디스크 하드웨어 에뮬레이션의 오버헤드를 피하는 특수 I/O 드라이버를 활용할 수 있어서, 전통적으로 스토리지와 네트워크 연산에서 HVM 게스트보다 성능이 좋았어요. 반면 HVM 게스트는 이런 명령을 에뮬레이션된 하드웨어로 변환해야 했죠. 이제 HVM 게스트용 PV 드라이버가 제공되면서, 반가상화 환경으로 이식할 수 없는 운영 체제도 이 드라이버를 활용해 스토리지와 네트워크 I/O에서 성능 이점을 볼 수 있게 됐어요. 이 PV on HVM 드라이버 덕분에 HVM 게스트는 반가상화 게스트와 같거나 더 나은 성능을 낼 수 있어요.
더 알아보기
- Amazon Machine Images
- AMI 루트 볼륨 유형 식별하기