답변:
두 가지 유형의 AMI (및 해당 인스턴스)가 있습니다.
인스턴스 저장소 (S3 기반이라고도 함). 이들은 덜 일반적이며 초보자에게는 권장하지 않습니다. 인스턴스-스토어 AMI는 루트 인스턴스-스토어 볼륨과 일부 메타 데이터의 복사본이며 모두 특수 형식으로 S3 버킷에 저장됩니다.
EBS 부팅. 이것은 아마도 당신이 사용하고있는 것입니다. EBS 부팅 AMI 는 EBS 루트 볼륨의 EBS 스냅 샷과 아키텍처, 커널, AMI 이름, 설명, 블록 디바이스 매핑 등과 같은 일부 메타 데이터입니다.
EBS 부팅 볼륨의 스냅 샷을 만들어 적절한 메타 데이터에 등록하여 EBS 부팅 AMI로 전환 할 수 있습니다. 가장 까다로운 부분은 올바른 AKI ID (커널)를 지정하여 올바르게 부팅되도록하는 것입니다.
주요 차이점은 참조하는 서비스 유형에 있습니다. 스냅 샷은 특정 시점에 동일한 데이터로 상태를 저장하고 재부팅 할 수있는 EBS 볼륨의 것입니다.
AMI는 비슷하지만 EC2 인스턴스 자체를위한 것입니다. ebs가 지원되지 않는 인스턴스의 스냅 샷을 생성 할 수 없지만 하나의 AMI (시스템 이미지)를 생성 할 수 있습니다.
일반적으로 EBS 스냅 샷을 데이터베이스 볼륨의 백업 솔루션으로 사용하고 AMI를 사용하여 인스턴스 구성을 저장합니다.
스냅 샷을 사용하여 AMI를 생성 할 수 있습니다. 예를 들어 단일 "스냅 샷"을 사용하여 동일한 스냅 샷을 사용하는 하나의 PV와 하나의 HVM AMI 등 여러 AMI를 생성 할 수 있습니다.
따라서 스냅 샷에는 시스템 / OS 데이터가 있습니다. AMI는 (스냅 샷 + 머신 / 하드웨어 메타 데이터)입니다.
그것도 혼란 스러웠습니다. 이를 이해하는 가장 간단한 방법은 다음과 같습니다.
EBS Snapshot
매우 자주 특정 EBS 볼륨의 백업을 나타내며 모든 볼륨 (루트 볼륨, 데이터 볼륨 등) 일 수 있습니다.
AMI
(Amazon 머신 이미지)는 전체 EC2 인스턴스의 백업입니다. 예를 들어 적절한 구성을 통해 여러 EBS 볼륨을 포함하는 AMI를 생성 할 수 있습니다.
이제 혼란 스러울 수 있지만 둘 다 "EBS 스냅 샷"으로 저장됩니다.
그렇게 생각해보십시오.
EBS Snapshot
데이터 백업 일뿐입니다.AMI
특정 시간의 시스템 상태를 나타냅니다. 그것에서 부팅 할 수도 있습니다.EBS Volume
EC2 뒤에있는 기본 디스크입니다. AMI는 가상 머신과 똑같이 연결된 여러 볼륨이있을 수있는 전체 EC2 인스턴스의 백업 인 반면 Snapshot
특정 시점 백업입니다 volume
.
함께 패커 , 당신은 등 EC2에 대한 AMI를, VMDK / VM웨어에 대한 VMX 파일, VirtualBox를위한 OVF 수출을 포함한 머신 이미지를 자동으로 구축 할 수 있습니다
EC2 <-- EBS Volume (Boot) + EBS Volume
^
|
Snapshot (only of specific volume)
^
|
AMI (Combined snapshots of all volumes, snapshot must have boot volume)
^
|
Launch a new Instance (same installed softwares and configs, different specs)
스냅 샷 은 드라이브 / 볼륨을 백업하는 데 사용할 수 있습니다. 볼륨의 스냅 샷을 찍을 때마다 마지막 백업 (전체 백업이 아님) 이후 볼륨에 추가 / 도입 된 새로운 변경 사항 만 추가하여 백업 시간, 공간 및 궁극적으로 비용을 절약하는 증분 백업 작업입니다. .
스냅 샷은 다음에서 사용할 수 있습니다.
정기적으로 드라이브 백업
예를 들어, 볼륨의 유형을 변경하면 트래픽이 있거나 읽기 및 쓰기 당신이에서 변경할 수 있도록 IO 작업을 높이기 위해 필요 gp2
에 io1
더와IOPs
사용자 지정 AMI는 다음에서 사용할 수 있습니다.
현재 실행중인 EC2 인스턴스가 손상되어 아무런 이유없이 실행할 수없는 경우 재해 복구 용.
배포 프로세스를 단순화하는 전제 조건 소프트웨어를 모두 설치 한 표준 회사의 AMI (예 :`Splunk에 연결하도록 구성, 일부 모니터링 및 관찰 소프트웨어 설치, Docker 설치 또는 시작시 Puppet 또는 Chef 연결하도록 구성)
AMI를 사용하면 여러 지역에 애플리케이션을 쉽게 배포 할 수 있습니다.
설치된 모든 소프트웨어 및 해당 구성을 사용하여 서버를 더 높거나 다른 사양으로 업그레이드하십시오.
AMI는 AWS 계정간에 공개적으로 공유 할 수 있습니다.
다음은 AMI와 EBS 스냅 샷 간의 몇 가지 차이점입니다.
1) AMI는 시작 가능하며 루트 디바이스에 대한 링크를 포함하며 다른 데이터 볼륨의 스냅 샷에 대한 링크를 포함 할 수 있습니다.
2) AMI에 포함 된 데이터 이미지는 인스턴스가 재부팅되지 않는 한 잘 정의 된 특정 시점을 나타내지 않습니다. 일반적으로 프로덕션 환경에서는 허용되지 않습니다. 스냅 샷은 정확한 시점을 제어 할 수 있으므로 일관된 방식으로 촬영할 수 있으므로 스냅 샷이 시작되기 전에 모든 것이 "백업 준비"상태인지 확인할 수 있습니다.
3) Linux 용 루트 디바이스의 기존 스냅 샷에서 AMI를 생성 할 수 있지만 Windows 용으로는 생성 할 수 없습니다.
AWS에서 제공하는 정의에 따라
AMI는 EC2 인스턴스를 시작할 수있는 템플릿입니다. EBS 스냅 샷은 EBS 볼륨의 블록 수준 복사본입니다. EBS 볼륨은 부팅 볼륨 (예 : 운영 체제 포함) 또는 데이터 전용 볼륨 (예 : 데이터베이스 파일 포함) 일 수 있습니다. RegisterImage를 사용하여 AMI를 생성합니다 (스냅 샷에서).
이들은 서로 다른 수준 (EBS 볼륨 대 EC2 템플릿)에 적용되는 두 가지 다른 개념이지만 두 개념 간에는 몇 가지 종속성이 있습니다.
EBS 지원 EC2 인스턴스 (예 : EBS 볼륨에서 부팅하는 EC2 인스턴스)의 경우 AMI는 부팅 볼륨 + 몇 개의 메타 데이터 (머신 아키텍처-32 비트 대 64 비트-유형)의 EBS 스냅 샷으로 구현됩니다. 가상화-HVM 대 PV 등 ...)
따라서 EBS 지원 EC2 인스턴스의 경우 AMI는 EBS 스냅 샷 + XML 파일입니다. 소유 한 부팅 볼륨의 스냅 샷을 기반으로 자체 AMI를 생성 할 수도 있습니다.
스냅 샷은 백업 전략으로 사용하는 데 비용이 적게 듭니다. 여러 스냅 샷이있는 경우 하나의 전체 백업에 대해서만 비용을 지불하고 나머지는 본질적으로 차이가 있고 일반적으로 훨씬 더 작기 때문입니다.
AMI는 OS 및 설치된 구성 요소가 보존되는 시스템의 일반 템플릿으로 생각할 수 있습니다.
스냅 샷은 AMI가 수행하는 모든 작업을 포함 할 수 있지만 EBS 볼륨의 디스크 데이터도 저장합니다.
어떤 것을 사용하기로 결정 하느냐는 일반적으로 인스턴스가 EBS 지원 여부와 모든 데이터가 그대로 유지 된 머신을 정확하게 다시 생성 하려는지 아니면 일반 머신 템플릿 만 원하는지에 따라 결정됩니다.
AWS에서 제공하는 정의에서 차이점을 명확히합니다. Amazon 머신 이미지 (AMI)는 소프트웨어 구성 (예 : 운영 체제, 애플리케이션 서버 및 애플리케이션)이 포함 된 템플릿입니다. AMI에서 클라우드에서 가상 서버로 실행되는 AMI의 복사 본인 인스턴스를 시작합니다. 스냅 샷의 경우 특정 시점 스냅 샷을 생성하여 EBS 볼륨의 데이터를 Amazon S3에 백업 할 수 있습니다. 스냅 샷은 증분 백업이므로 가장 최근 스냅 샷 이후에 변경된 장치의 블록 만 저장됩니다. 스냅 샷을 삭제하면 해당 스냅 샷 전용 데이터 만 제거됩니다.