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

최종 업데이트 날짜: 2022년 5월 11일

수명 주기 구성을 사용하여 Amazon Simple Storage Service(Amazon S3) 객체를 Amazon S3 Glacier 또는 Amazon S3 Glacier Deep Archive 스토리지 클래스에 아카이브했습니다. AWS Command Line Interface(AWS CLI)를 사용하여 객체를 복원하려면 어떻게 해야 합니까?

해결 방법

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

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

복원 요청 시작

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

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

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

이 명령을 실행하면 복원 요청에 지정된 기간 동안 객체의 임시 복사본을 사용할 수 있습니다. 이 예에서 복원 요청에 지정된 기간은 25일이며 복원 계층은 S3 Standard로 설정되어 있습니다.

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

  • 버전 관리가 설정된 버킷에서 특정 객체 버전을 복원하려면 --version-id 옵션을 포함한 후 해당 버전 ID를 지정합니다.
  • S3 Glacier 스토리지 클래스의 경우 신속, 스탠더드 또는 대량 검색 옵션을 사용할 수 있습니다. 그러나 S3 Glacier Deep Archive 스토리지 클래스에는 스탠더드 또는 대량 검색 옵션만 사용할 수 있습니다.
  • 예제에 사용된 JSON 구문으로 인해 Windows 클라이언트에서 오류가 발생하는 경우 복원 요청을 다음 구문으로 바꿉니다.
--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}

참고: 객체가 S3 Glacier Instant Retrieval에 저장된 경우 데이터 검색이 즉시 수행되므로 복원 작업이 필요하지 않습니다. 자세한 내용은 객체 스토리지 클래스를 참조하세요.

복원 요청 상태 모니터링

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

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

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

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

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

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

응답에 expiry-date를 기록합니다. 이 시간까지는 임시 저장소 객체(Reduced Redundancy Storage 클래스에 저장됨)에 액세스해야 합니다. 임시 객체는 S3 Glacier 또는 S3 Glacier Deep Archive 스토리지 클래스에 있는 아카이브된 객체와 함께 사용할 수 있습니다. 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