Batch Operations로 객체 복원하기
Batch Operations로 객체 복원하기 (Restore objects)
아카이브된 객체는 실시간으로 접근하기 전에 먼저 복원해야 해요. Restore 작업은 매니페스트에 있는 아카이브 객체들에 대해 복원 요청을 일괄로 시작해 줍니다.
출처: 문서
본문
Amazon S3 Batch Operations를 쓰면 S3 객체에 대해 대규모 배치 작업을 수행할 수 있어요. Restore 작업은 매니페스트에 나열된 아카이브된 Amazon S3 객체에 대해 복원 요청을 시작해요. 실시간으로 접근하기 전에 복원해야 하는 아카이브 객체는 다음과 같아요.
- S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에 아카이브된 객체
- S3 Intelligent-Tiering 스토리지 클래스를 통해 Archive Access 또는 Deep Archive Access 계층에 아카이브된 객체
S3 Batch Operations 작업에서 Restore(S3InitiateRestoreObjectOperation) 작업을 사용하면 매니페스트에 지정된 모든 객체에 대해 RestoreObject 요청이 발생해요.
중요 Restore 작업은 객체를 복원하라는 요청만 시작해요. S3 Batch Operations는 각 객체에 대해 요청이 시작되면 그 객체에 대한 작업을 완료된 것으로 보고해요. Amazon S3는 객체가 실제로 복원되었을 때 작업을 갱신하거나 별도로 알려 주지 않아요. 다만 S3 Event Notifications를 사용하면 객체가 Amazon S3에서 사용 가능해졌을 때 알림을 받을 수 있어요. 자세한 내용은 Amazon S3 Event Notifications 문서를 참고하세요.
Restore 작업을 만들면 다음 인수가 사용돼요.
ExpirationInDays
이 인수는 S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 객체가 Amazon S3에서 사용 가능한 상태로 유지되는 기간을 지정해요. S3 Glacier Flexible Retrieval과 S3 Glacier Deep Archive 객체를 대상으로 하는 Restore 작업은 ExpirationInDays를 1 이상으로 설정해야 해요.
중요 S3 Intelligent-Tiering Archive Access 및 Deep Archive Access 계층 객체를 대상으로 하는 Restore 작업을 만들 때는
ExpirationInDays를 설정하지 마세요. S3 Intelligent-Tiering 아카이브 액세스 계층의 객체는 복원 만료 대상이 아니므로,ExpirationInDays를 지정하면RestoreObject요청이 실패해요.
GlacierJobTier
Amazon S3는 세 가지 검색 계층(EXPEDITED, STANDARD, BULK) 중 하나로 객체를 복원할 수 있어요. 다만 S3 Batch Operations 기능은 STANDARD와 BULK 검색 계층만 지원해요. 검색 계층 간 차이에 대한 자세한 내용은 Understanding archive retrieval options 문서를 참고하세요. 각 계층의 요금에 대한 자세한 내용은 Amazon S3 요금 페이지의 Requests & data retrievals 섹션을 참고하세요.
S3 Glacier와 S3 Intelligent-Tiering에서 복원할 때의 차이점
S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive 스토리지 클래스에서 아카이브 파일을 복원하는 것과, S3 Intelligent-Tiering 스토리지 클래스의 Archive Access 또는 Deep Archive Access 계층에서 파일을 복원하는 것은 차이가 있어요.
- S3 Glacier Flexible Retrieval 또는 S3 Glacier Deep Archive에서 복원하면 객체의 임시 복사본이 생성돼요. Amazon S3는
ExpirationInDays인수에 지정한 값이 지나면 이 복사본을 삭제해요. 임시 복사본이 삭제된 후 객체에 접근하려면 복원 요청을 다시 제출해야 해요. - 아카이브된 S3 Intelligent-Tiering 객체를 복원할 때는
ExpirationInDays인수를 지정하지 마세요. S3 Intelligent-Tiering Archive Access 또는 Deep Archive Access 계층에서 객체를 복원하면, 객체는 S3 Intelligent-Tiering Frequent Access 계층으로 다시 전환돼요. 그 후 연속 90일 동안 접근이 없으면 객체는 자동으로 Archive Access 계층으로 전환되고, 연속 180일 동안 접근이 없으면 자동으로 Deep Archive Access 계층으로 이동해요. - Batch Operations 작업은 S3 Glacier Flexible Retrieval 및 S3 Glacier Deep Archive 스토리지 클래스 객체에 대해 동작하거나, S3 Intelligent-Tiering Archive Access 및 Deep Archive Access 스토리지 계층 객체에 대해 동작할 수 있어요. Batch Operations는 같은 작업에서 두 유형의 아카이브 객체 모두에 동작할 수 없어요. 두 유형의 객체를 모두 복원하려면 별도의 Batch Operations 작업을 만들어야 해요.
중복 복원 (Overlapping restores)
S3InitiateRestoreObjectOperation 작업이 이미 복원 중인 객체를 복원하려 하면, S3 Batch Operations는 다음과 같이 진행해요.
다음 조건 중 하나가 참이면 객체에 대한 복원 작업이 성공해요.
- 이미 진행 중인 복원 요청과 비교해, 이 작업의
ExpirationInDays값이 같고GlacierJobTier값이 더 빠른 경우. - 이전 복원 요청이 이미 완료되어 객체가 현재 사용 가능한 경우. 이 경우 Batch Operations는 진행 중인 복원 요청에 지정된
ExpirationInDays값에 맞춰 복원된 객체의 만료 날짜를 갱신해요.
다음 조건 중 하나가 참이면 객체에 대한 복원 작업이 실패해요.
- 이미 진행 중인 복원 요청이 아직 완료되지 않았고, 이 작업의 복원 기간(
ExpirationInDays값으로 지정)이 진행 중인 복원 요청에 지정된 복원 기간과 다른 경우. - 이 작업의 복원 계층(
GlacierJobTier값으로 지정)이 진행 중인 복원 요청에 지정된 복원 계층과 같거나 더 느린 경우.
한계 (Limitations)
S3InitiateRestoreObjectOperation 작업에는 다음과 같은 한계가 있어요.
- 아카이브 객체와 같은 리전에서 작업을 만들어야 해요.
- S3 Batch Operations는
EXPEDITED검색 계층을 지원하지 않아요. - 단일 Batch Operations Restore 작업은 최대 40억 개 객체의 매니페스트를 지원할 수 있어요.
객체 복원에 대한 자세한 내용은 Restoring an archived object 문서를 참고하세요.