AMI 저장 및 복원 작동 방식 - Amazon Elastic Compute Cloud

AMI 저장 및 복원 작동 방식

S3를 사용하여 AMI를 저장하고 복원하려면 다음 API를 사용합니다.

  • CreateStoreImageTask – S3 버킷에 AMI 저장

  • DescribeStoreImageTasks – AMI 저장 태스크의 진행률 제공

  • CreateRestoreImageTask – S3 버킷에서 AMI 복원

CreateStoreImageTask

CreateStoreImageTask API는 AMI를 S3 버킷에 단일 객체로 저장합니다.

이 API는 AMI 및 해당 스냅샷의 모든 데이터를 읽은 다음 S3 멀티파트 업로드를 사용하여 데이털르 S3 객체에 저장하는 태스크를 생성합니다. 이 API는 리전에 특정되지 않은 AMI 메타데이터 대부분을 포함한 AMI의 모든 구성 요소와 AMI에 포함된 모든 EBS 스냅샷을 가져와서 S3의 단일 객체로 압축합니다. S3에 사용되는 공간의 양을 줄이기 위해 업로드 프로세스의 일부로 데이터가 압축되므로 S3의 객체는 AMI의 스냅샷 크기 합계보다 작을 수 있습니다.

이 API를 호출하는 계정에 AMI와 스냅샷의 태그가 표시되는 경우 해당 태그가 보존됩니다.

S3의 객체는 AMI와 동일한 ID를 가지지만 .bin 확장자가 사용됩니다. 또한 AMI 이름, AMI 설명, AMI 등록 날짜, AMI 소유자 계정 및 저장 작업의 타임스탬프와 같은 데이터는 S3 객체에 S3 메타데이터 태그로 저장됩니다.

태스크를 완료하는 데 걸리는 시간은 AMI의 크기에 따라 다릅니다. 또한 태스크가 대기열에 있기 때문에 진행 중인 다른 태스크의 수에 따라서도 달라집니다. DescribeStoreImageTasks API를 직접적으로 호출하여 태스크의 진행을 추적할 수 있습니다.

진행 중인 모든 AMI 크기의 합계는 계정당 600GB의 EBS 스냅샷 데이터로 제한됩니다. 진행 중인 태스크가 한도보다 작아질 때까지 추가 태스크 생성이 거부됩니다. 예를 들어 100GB의 스냅샷 데이터가 포함된 AMI와 200GB의 스냅샷 데이터가 포함된 또 다른 AMI가 현재 저장되는 경우 진행 중인 합계가 한도보다 작은 300GB 이므로 다른 요청이 수락됩니다. 그러나 800GB의 스냅샷 데이터가 있는 단일 AMI가 현재 저장되고 있는 경우에는 태스크가 완료될 때까지 추가 태스크가 거부됩니다.

DescribeStoreImageTasks

DescribeStoreImageTasks API는 AMI 저장 태스크의 진행 상황을 설명합니다. 지정된 AMI에 대한 태스크를 설명할 수 있습니다. AMI를 지정하지 않으면 지난 31일 동안 처리된 모든 이미지 저장 태스크의 페이지 매김 목록이 표시됩니다.

각 AMI 태스크에 대한 응답에는 태스크가 InProgress, Completed 또는 Failed인지 표시됩니다. InProgress 태스크의 경우 응답에 예상 진행률이 백분율로 표시됩니다.

태스크는 역순으로 나열됩니다.

현재로서는 이전 월의 태스크만 볼 수 있습니다.

CreateRestoreImageTask

CreateRestoreImageTask API는 CreateStoreImageTask 요청을 사용하여 이전에 생성된 S3 객체에서 AMI를 복원하는 태스크를 시작합니다.

복원 태스크는 저장 태스크가 수행된 동일한 리전 또는 다른 리전에서 수행될 수 있습니다.

AMI 객체를 복원할 S3 버킷은 복원 태스크가 요청된 동일한 리전에 있어야 합니다. AMI는 이 리전에 복원됩니다.

AMI는 저장된 AMI의 값에 해당하는 이름, 설명 및 블록 디바이스 매핑과 같은 메타데이터와 함께 복원됩니다. 이름은 이 계정의 리전 내 AMI에 대해 고유해야 합니다. 이름을 제공하지 않으면 새 AMI에 원래 AMI와 동일한 이름이 지정됩니다. 복원 프로세스 시 생성된 새 AMI ID가 AMI에 지정됩니다.

AMI 복원 태스크를 완료하는 데 걸리는 시간은 AMI의 크기에 따라 다릅니다. 또한 태스크가 대기열에 있기 때문에 진행 중인 다른 태스크의 수에 따라서도 달라집니다. AMI를 설명(describe-images)하거나 EBS 스냅샷을 설명(describe-snapshots)하여 태스크 진행률을 볼 수 있습니다. 태스크가 실패하면 AMI와 스냅샷이 실패 상태로 전환됩니다.

진행 중인 모든 AMI의 크기 합계는 계정당 300GB(복원 후 크기 기준)의 EBS 스냅샷 데이터로 제한됩니다. 진행 중인 태스크가 한도보다 작아질 때까지 추가 태스크 생성이 거부됩니다.

파일 경로

다음과 같은 방식으로 AMI를 저장 및 복원할 때 파일 경로를 사용할 수 있습니다.

  • S3에 AMI를 저장할 때 파일 경로를 버킷 이름에 추가할 수 있습니다. 내부적으로 시스템은 경로를 버킷 이름과 분리한 다음 AMI 저장을 위해 생성된 객체 키에 경로를 추가합니다. 전체 객체 경로가 API 호출의 응답에 표시됩니다.

  • AMI를 복원할 때 객체 키 파라미터가 제공되므로 경로를 객체 키 값의 시작 부분에 추가할 수 있습니다.

예: AMI를 저장 및 복원할 때 파일 경로 사용(AWS CLI)

다음 예제에서 먼저 S3에서 AMI를 저장하고, 파일 경로가 버킷 이름 앞에 추가됩니다. 이후 이 예제는 S3에서 AMI를 복원하고, 파일 경로는 객체 키 파라미터 앞에 추가됩니다.

AMI를 저장할 때 다음과 같이 버킷 이름 뒤에 파일 경로를 지정합니다.

aws ec2 create-store-image-task \ --image-id ami-1234567890abcdef0 \ --bucket amzn-s3-demo-bucket/path1/path2

출력의 예시는 다음과 같습니다.

{ "ObjectKey": "path1/path2/ami-1234567890abcdef0.bin" }

AMI를 복원할 때 이전 단계의 출력에서 파일 경로를 포함한 값을 지정합니다.

aws ec2 create-restore-image-task \ --object-key path1/path2/ami-1234567890abcdef0.bin \ --bucket amzn-s3-demo-bucket \ --name "New AMI Name"