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

최종 업데이트 날짜: 2021년 9월 8일

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

해결 방법

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

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

복원 요청 시작

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

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

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

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

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

경고: AWS CLI의 버전 1.x를 사용하는 경우 객체를 복사하기 전에 멀티파트 임계값이 5GB로 설정되어 있는지 확인합니다. 그렇지 않으면 객체 크기가 AWS CLI의 멀티파트 임계값보다 클 때 객체의 사용자 메타데이터가 손실됩니다. 5GB보다 큰 객체의 경우 AWS CLI의 버전 2.x를 사용하여 사용자 메타데이터를 보존합니다.

(선택 사항) AWS CLI의 멀티파트 임계값을 늘리려면 다음 명령을 실행합니다.

aws configure set default.s3.multipart_threshold 5GB

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

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

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

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