Amazon S3 Glacier Flexible Retrieval 또는 Amazon S3 Glacier Deep Archive 스토리지 클래스에 Amazon Simple Storage Service(S3) 객체를 보관했습니다. AWS Command Line Interface(AWS CLI)를 사용하여 객체를 복원하고 싶습니다.
해결 방법
참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
복원 요청 시작
다음 명령을 실행하여 복원 요청을 시작합니다. 예제 명령의 모든 값을 버킷, 객체 및 복원 요청의 값으로 바꿔야 합니다.
참고: 데이터 검색 요금은 요청 수량을 기준으로 부과되므로 복원 요청의 매개 변수가 올바른지 확인하세요.
$ aws s3api restore-object --bucket awsexamplebucket --key dir1/example.obj --restore-request '{"Days":25,"GlacierJobParameters":{"Tier":"Standard"}}'
검색 요청은 S3 Standard 스토리지 클래스에 데이터의 임시 사본을 생성하고 보관된 데이터를 그대로 유지합니다. 이 예에서는 25일 동안의 복사본을 만듭니다. 중복 감소 스토리지 요금이 S3 Standard보다 저렴한 AWS 지역에서는 일시적으로 사용 가능한 데이터를 중복 감소 스토리지로 청구합니다. 하지만 중복 감소 청구 스토리지 클래스에는 데이터 저장 방식이 반영되지 않습니다.
명령을 다음과 같이 수정할 수 있는지 확인하세요.
- 버전이 지정된 버킷에서 특정 객체 버전을 복원하려면 --version-id 옵션을 포함시킨 다음 해당 버전 ID를 지정합니다.
- S3 Glacier Flexible Retrieval 스토리지 클래스의 경우 빠른 검색, 표준 또는 대량 검색 옵션을 사용할 수 있습니다. 하지만 S3 Glacier Deep Archive 스토리지 클래스에는 표준 또는 대량 검색 옵션만 사용할 수 있습니다.
- 예제의 JSON 구문으로 인해 Windows 클라이언트에서 오류가 발생하는 경우 복원 요청을 다음 구문으로 바꾸세요.
--restore-request Days=25,GlacierJobParameters={"Tier"="Standard"}
**참고:**S3 Glacier 인스턴트 검색에 저장된 객체의 경우 데이터 검색이 즉시 이루어지므로 복원 작업을 사용할 필요가 없습니다. 자세한 내용은 Amazon S3 스토리지 클래스를 참조하세요.
복원 요청 상태 모니터링
다음 명령을 실행하여 복원 요청 상태를 모니터링합니다.
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를 기록해 둡니다. 이 때까지는 S3 Standard 스토리지 클래스에 저장된 임시 스토어 객체에 액세스할 수 있습니다. 임시 객체는 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에 있는 보관된 객체와 함께 사용할 수 있습니다. expiry-date 경과 후에는 Amazon S3는 임시 객체를 제거합니다. 임시 객체가 만료되기 전에 객체의 스토리지 클래스를 변경해야 합니다. expiry-date 이후에 객체의 스토리지 클래스를 변경하려면 새 복원 요청을 시작해야 합니다.
객체의 스토리지 클래스를 Amazon S3 Standard로 변경
객체의 스토리지 클래스를 Amazon S3 Standard로 변경하려면 복사를 사용하세요. 기존 객체를 덮어쓰거나 객체를 다른 위치에 복사할 수 있습니다.
경고: 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
참고: S3 Glacier Flexible Retrieval에 보관된 객체의 최소 보관 기간은 90일입니다. S3 Glacier Deep Archive에 보관된 객체의 최소 보관 기간은 180일입니다. S3 Glacier Flexible Retrieval에서 최소 90일 이전에 객체를 덮어쓰는 경우 90일 요금이 부과됩니다. 마찬가지로 S3 Glacier Deep Archive에서 최소 180일 이전에 덮어쓰는 객체에 대해서는 180일 요금이 부과됩니다.
객체를 다른 위치에 복사하려면 다음 명령을 실행합니다.
aws s3 cp s3://awsexamplebucket/dir1/example.obj s3://awsexamplebucket/dir2/example2.obj
참고: 일시 중단된 버킷 또는 버전 관리가 활성화된 버킷의 경우 이 단계에서는 객체의 추가 복사본을 생성합니다. 이러한 추가 객체에는 스토리지 비용도 발생합니다. 스토리지 비용을 피하려면 아직 Amazon S3 Glacier 스토리지 클래스에 있는 최신이 아닌 버전을 제거하세요. 또는 S3 수명 주기 만료 규칙을 생성하세요.
관련 정보
현재 S3 Glacier 또는 S3 Glacier Deep Archive 스토리지 클래스에 있는 대용량의 Amazon S3 객체에 대한 복원을 시작하려면 어떻게 해야 하나요?
Amazon S3 콘솔의 복원 계층을 사용하여 Amazon S3 Glacier 스토리지 클래스에서 보관된 객체를 복원하려면 어떻게 해야 하나요?
보관된 객체 복원