스토어 이미지 작업(Store Image Task) 만들기

스토어 이미지 작업(Store Image Task) 만들기

AMI를 S3 버킷에 저장하면 스토어 이미지 작업(store image task)이 생성돼요. 이 작업으로 프로세스의 진행 상황과 결과를 모니터링할 수 있어요. 이 절에서는 AMI를 S3에 저장하고 복원(restore)할 때 필요한 보안과 권한, 그리고 각 작업을 만드는 방법을 설명할게요.

출처: 문서

본문

AMI를 S3 버킷에 저장하면 스토어 이미지 작업이 생성돼요. 이 작업으로 프로세스의 진행 상황과 결과를 모니터링할 수 있어요.

AMI 보안 유지하기

AMI 내용을 보호할 수 있을 만큼 S3 버킷이 충분히 안전하게 구성되어 있고, AMI 객체가 버킷에 남아 있는 동안 그 보안이 유지되는지 확인하는 것이 중요해요. 이렇게 할 수 없다면 이 API 사용은 권장하지 않아요. S3 버킷에 대한 공개 접근을 허용하지 않도록 하세요. AMI를 저장하는 S3 버킷에는 Server-side encryption을 활성화하는 것을 권장합니다(필수는 아니에요).

S3 버킷의 적절한 보안 설정 방법에 대한 정보는 다음 보안 주제를 참고하세요.

AMI 스냅샷이 S3 객체로 복사될 때 데이터는 TLS 연결을 통해 복사돼요. 암호화된 스냅샷이 포함된 AMI도 저장할 수 있지만, 스냅샷은 저장 과정의 일부로 복호화돼요.

S3를 사용해 AMI를 저장·복원하기 위한 권한

IAM 프린시펄(principal)이 Amazon S3를 사용해 AMI를 저장하거나 복원한다면 필요한 권한을 부여해야 해요.

다음 예시 정책에는 IAM 프린시펄이 store 및 restore 작업을 수행하는 데 필요한 모든 작업(action)이 포함되어 있어요.

IAM 정책을 만들어 특정 리소스에만 접근을 허용할 수도 있어요. 더 많은 예시 정책은 IAM User Guide의 Access management for AWS resources를 참고하세요.

참고

AMI를 구성하는 스냅샷이 암호화되어 있거나 계정이 기본적으로 암호화를 허용하고 있다면, IAM 프린시펄이 KMS 키를 사용할 권한을 가져야 해요.

JSON —

{
  "Version":"2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:ListBucket",
        "s3:PutObject",
        "s3:PutObjectTagging",
        "s3:AbortMultipartUpload",
        "ebs:CompleteSnapshot",
        "ebs:GetSnapshotBlock",
        "ebs:ListChangedBlocks",
        "ebs:ListSnapshotBlocks",
        "ebs:PutSnapshotBlock",
        "ebs:StartSnapshot",
        "ec2:CreateStoreImageTask",
        "ec2:DescribeStoreImageTasks",
        "ec2:CreateRestoreImageTask",
        "ec2:GetEbsEncryptionByDefault",
        "ec2:DescribeTags",
        "ec2:CreateTags"
      ],
      "Resource": "*"
    }
  ]
}

스토어 이미지 작업 만들기

AMI를 S3 버킷에 저장하려면 먼저 스토어 이미지 작업을 만들어요. 작업을 완료하는 데 걸리는 시간은 AMI 크기에 따라 달라져요. 작업이 성공하거나 실패할 때까지 진행 상황을 추적할 수 있어요.

AWS CLI —

스토어 이미지 작업을 만들려면

create-store-image-task 명령을 사용합니다.

aws ec2 create-store-image-task \
--image-id ami-0abcdef1234567890 \
--bucket amzn-s3-demo-bucket

다음은 출력 예시예요.

{
  "ObjectKey": "ami-0abcdef1234567890.bin"
}
스토어 이미지 작업의 진행 상황을 확인하려면

describe-store-image-tasks 명령을 사용합니다.

aws ec2 describe-store-image-tasks \
--image-ids ami-0abcdef1234567890 \
--query StoreImageTaskResults[].StoreTaskState \
--output text

다음은 출력 예시예요.

InProgress

PowerShell —

스토어 이미지 작업을 만들려면

New-EC2StoreImageTask cmdlet을 사용합니다.

New-EC2StoreImageTask `
-ImageId ami-0abcdef1234567890 `
-Bucket amzn-s3-demo-bucket

다음은 출력 예시예요.

ObjectKey : ami-0abcdef1234567890.bin
스토어 이미지 작업의 진행 상황을 확인하려면

Get-EC2StoreImageTask cmdlet을 사용합니다.

(Get-EC2StoreImageTask -ImageId ami-0abcdef1234567890).StoreTaskState

다음은 출력 예시예요.

InProgress

리스토어 이미지 작업(Restore Image Task) 만들기

복원할 AMI의 이름을 지정해야 해요. 이름은 이 계정의 리전 안에서 AMI에 대해 고유해야 합니다. 복원된 AMI에는 새로운 AMI ID가 부여돼요.

AWS CLI —

리스토어 이미지 작업을 만들려면

create-restore-image-task 명령을 사용합니다.

aws ec2 create-restore-image-task \
--object-key ami-0abcdef1234567890.bin \
--bucket amzn-s3-demo-bucket \
--name "my-restored-ami"

다음은 출력 예시예요.

{
  "ImageId": "ami-1234567890abcdef0"
}

PowerShell —

리스토어 이미지 작업을 만들려면

New-EC2RestoreImageTask cmdlet을 사용합니다.

New-EC2RestoreImageTask `
-ObjectKey ami-0abcdef1234567890.bin `
-Bucket amzn-s3-demo-bucket `
-Name "my-restored-ami"

다음은 출력 예시예요.

ImageId : ami-1234567890abcdef0

더 알아보기