AWS CLI를 사용하여 Amazon Glacier 스토리지 클래스에서 S3 객체를 복원하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 3월 27일

수명 주기 구성을 사용하여 Amazon Simple Storage Service(Amazon S3) 객체를 Amazon Simple Storage Service Glacier 스토리지 클래스에 아카이빙했습니다. AWS CLI(명령줄 인터페이스)를 사용하여 객체를 복원하려면 어떻게 해야 합니까?

​해결 방법

다음 단계에 따라 AWS CLI를 사용하여 Amazon S3 Glacier 스토리지 클래스에서 S3 객체를 복원합니다.

복원 요청 시작

다음 명령을 사용하여 복원 요청을 시작합니다. 예제 명령의 모든 값을 사용자의 버킷, 객체 및 복원 요청의 값으로 대체해야 합니다.

참고: 데이터 검색 요금은 요청 수에 기반하므로 복원 요청의 파라미터가 올바른지 확인해야 합니다.

$ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'

이 명령을 실행한 후 복원 요청에 지정된 기간(예: 이 예제에서는 25일이 사용됨)에 객체의 임시 복사본을 사용할 수 있습니다.

명령에서 다음과 같이 수정할 수 있습니다.

  • 버전 관리가 설정된 버킷에서 특정 객체 버전을 복원하려면 --version-id 옵션을 포함하고 해당되는 버전 ID를 지정합니다.
  • 이 예제에서 사용하는 JSON 구문으로 인해 Windows 클라이언트에서 오류가 발생한 경우 복원 요청을 다음 구문으로 대체합니다.
--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

복원 요청 상태 모니터링

다음 명령을 실행하여 복원 요청 상태를 모니터링합니다.

aws s3api head-object --bucket awsexamplebucket --key dir1/example.obj

명령을 실행한 후 복원이 아직 진행 중이면 다음과 비슷한 응답을 수신합니다.

{
    "Restore": "ongoing-request=\"true\"",
    ...
    "StorageClass": "GLACIER",
    "Metadata": {}
}

복원이 완료되면 다음과 비슷한 응답을 수신합니다.

{
    "Restore": "ongoing-request=\"false\", expiry-date=\"Sun, 13 Aug 2017 00:00:00 GMT\"",
    ...
    "StorageClass": "GLACIER",
    "Metadata": {}
}

응답의 expiry-date를 기록합니다. 이 시점까지만 Reduced Redundancy 스토리지 클래스에 저장된 임시 저장 객체에 액세스할 수 있습니다. 임시 객체는 S3 Glacier 스토리지 클래스에 있는 아카이빙된 객체와 함께 사용할 수 있습니다. expiry-date가 경과되면 임시 객체는 제거됩니다. 임시 객체가 만료되기 전에 객체의 스토리지 클래스를 변경해야 합니다. expiry-date 이후 객체의 스토리지 클래스를 변경하려면 새 복원 요청을 시작해야 합니다.

객체의 스토리지 클래스를 Amazon S3 Standard로 변경

객체의 스토리지 클래스를 Amazon S3 Standard로 변경하려면 기존 객체를 덮어쓰거나 객체를 다른 위치로 복사하여 복사 작업을 실행합니다.

기존 객체를 Amazon S3 Standard 스토리지 클래스로 덮어쓰려면 다음 명령을 실행합니다.  

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir1/example.obj --storage-class STANDARD

전체 접두사의 반복 복사를 수행하고 기존 객체를 Amazon S3 표준 스토리지 클래스로 덮어쓰려면 다음 명령을 실행합니다. 

aws s3 cp s3://awsexamplebucket/dir1/ s3://awsexamplebucket/dir1/ --storage-class STANDARD --recursive --force-glacier-transfer

객체를 다른 위치로 복사하려면 다음 명령을 실행합니다.

aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir2/example2.obj