S3 Batch Operations로 대량 객체 작업 수행

S3 Batch Operations로 대량 객체 작업 수행 (Performing object operations in bulk with Batch Operations)

S3 Batch Operations를 쓰면 Amazon S3 객체에 대규모 일괄 작업을 실행할 수 있어요. 한 번의 작업으로 수십억 개 객체를 처리하고 싶다면, 이 서비스가 객체 목록에 대해 지정한 작업을 하나하나 수행해 줘요. 객체 복사나 암호화 업데이트부터 태그 설정, Glacier 복원 시작, 직접 만든 Lambda 함수 호출까지 다양하게 처리할 수 있죠.

출처: 문서

본문

S3 Batch Operations를 사용하면 Amazon S3 객체에 대규모 일괄 작업을 수행할 수 있어요. 여러분이 지정한 Amazon S3 객체 목록에 대해 단일 작업을 실행하는데, 한 작업으로 exabyte(엑사바이트) 규모의 데이터를 담은 수십억 개 객체에 지정한 작업을 돌릴 수 있죠. Amazon S3가 진행 상황을 추적하고 알림을 보내며 모든 작업의 상세 완료 보고서를 저장하므로, 완전 관리형이면서 감사 가능하고 서버리스한 경험이에요. S3 Batch Operations는 Amazon S3 콘솔, AWS CLI, AWS SDK 또는 Amazon S3 REST API로 사용할 수 있어요.

S3 Batch Operations를 사용해 객체를 복사하고, 객체의 서버 측 암호화를 업데이트하고, 객체 태그나 접근 제어 목록(ACL)을 설정할 수 있어요. 또 S3 Glacier Flexible Retrieval에서 객체 복원을 시작하거나 AWS Lambda 함수를 호출해 객체로 사용자 지정 작업을 수행할 수도 있어요. 이 작업들은 직접 만든 객체 목록에 대해 수행할 수도 있고, Amazon S3 Inventory 보고서를 사용해 객체 목록을 쉽게 만들 수도 있어요. S3 Batch Operations는 Amazon S3에서 이미 사용하던 것과 동일한 Amazon S3 API 작업을 사용해요.

참고 디렉터리 버킷과 함께 Amazon S3 Express One Zone 스토리지 클래스를 사용하는 방법에 대한 자세한 내용은 S3 Express One Zone와 디렉터리 버킷 사용을 참고하세요. S3 Express One Zone 및 디렉터리 버킷에서 Batch Operations를 사용하는 방법에 대한 자세한 내용은 디렉터리 버킷에서 Batch Operations 사용을 참고하세요.

S3 Batch Operations 기본 개념

S3 Batch Operations를 사용하면 Amazon S3 객체에 대규모 일괄 작업을 수행할 수 있어요. 여러분이 지정한 Amazon S3 객체 목록에 대해 단일 작업 또는 작업 하나를 실행할 수 있어요.

용어 (Terminology)

이 절에서는 매니페스트(manifest), 작업(job), 작업 유형(operation), **태스크(task)**라는 용어를 사용해요. 각각이 무엇을 뜻하는지 다음과 같이 정의할게요.

  • 매니페스트(Manifest) — 매니페스트는 Amazon S3가 작업을 수행하려는 객체 키를 담고 있는 Amazon S3 객체예요. Batch Operations 작업을 만들려면 매니페스트를 제공해야 해요. 직접 만든 매니페스트에는 각 객체의 버킷 이름, 객체 키, 그리고 선택적으로 객체 버전이 포함되어야 해요. 직접 만든 매니페스트는 Amazon S3 Inventory 보고서 형식이거나 CSV 파일 형식이어야 해요. 작업을 만들 때 지정한 객체 필터 기준에 따라 Amazon S3가 매니페스트를 자동으로 생성해 주는 옵션도 있어요. 이 옵션은 Amazon S3 콘솔로 만드는 작업이나, AWS CLI, AWS SDK, Amazon S3 REST API로 만드는 모든 작업 유형에서 사용할 수 있어요.
  • 작업(Job) — 작업은 S3 Batch Operations의 기본 작업 단위예요. 작업에는 매니페스트에 나열된 객체들에 대해 지정한 작업을 실행하는 데 필요한 모든 정보가 담겨 있어요. 이 정보를 제공하고 작업 시작을 요청하면, 작업은 매니페스트의 각 객체에 대해 작업을 수행해요.
  • 작업 유형(Operation) — 작업 유형은 객체 복사처럼 Batch Operations 작업이 실행하기를 원하는 API 액션의 종류예요. 각 작업은 매니페스트에 지정된 모든 객체에 대해 단일 유형의 작업을 수행해요.
  • 태스크(Task) — 태스크는 작업의 실행 단위예요. 태스크는 단일 객체에 작업의 작업을 수행하기 위해 Amazon S3 또는 AWS Lambda API 작업을 한 번 호출하는 것을 나타내요. 작업의 수명 동안 S3 Batch Operations는 매니페스트에 지정된 각 객체마다 태스크 하나를 만들어요.

S3 Batch Operations 작업이 동작하는 방식

작업은 S3 Batch Operations의 기본 작업 단위예요. 작업에는 객체 목록에 대해 지정한 작업을 실행하는 데 필요한 모든 정보가 담겨 있어요. 작업을 만들려면 S3 Batch Operations에 객체 목록을 주고, 그 객체들에 수행할 작업을 지정하면 돼요. S3 Batch Operations가 지원하는 작업 유형에 대한 자세한 내용은 S3 Batch Operations 지원 작업을 참고하세요.

일괄 작업은 매니페스트에 포함된 모든 객체에 대해 지정한 작업을 수행해요. 매니페스트는 일괄 작업으로 처리하려는 객체를 나열하고, 버킷 안의 객체로 저장돼요. CSV(쉼표로 구분된 값) 형식의 S3 Inventory로 데이터 카탈로그화 및 분석 보고서를 매니페스트로 사용할 수 있어서, 버킷에 있는 큰 객체 목록을 쉽게 만들 수 있어요. 단일 버킷 안에 있는 사용자 지정 객체 목록에 대해 일괄 작업을 수행할 수 있게 해 주는 간단한 CSV 형식으로 매니페스트를 지정할 수도 있어요.

작업을 만든 뒤 Amazon S3는 매니페스트의 객체 목록을 처리하고 각 객체에 지정된 작업을 실행해요. 작업이 실행되는 동안 프로그래밍 방식이나 Amazon S3 콘솔로 진행 상황을 모니터링할 수 있어요. 또한 작업이 끝날 때 완료 보고서를 생성하도록 작업을 구성할 수도 있는데, 완료 보고서는 작업이 수행한 각 태스크의 결과를 설명해요. 작업 모니터링에 대한 자세한 내용은 S3 Batch Operations 작업 관리를 참고하세요.

S3 Batch Operations에는 비용이 발생해요. 완료 전에 취소된 작업을 포함해 Batch Operations 작업을 만들면 요금이 부과돼요. 자세한 내용은 Amazon S3 요금을 참고하세요.

S3 Batch Operations 작업은 기본적으로 모든 작업 유형에서 최대 40억 개 객체를 처리할 수 있어요. 특히 복사(Copy), 객체 태그 지정(Object Tagging), Object Lock, AWS Lambda 함수 호출, 그리고 Batch Replication 작업은 최대 200억 개 객체를 지원해요. AWS 계정당 활성 Batch Replication 작업은 6개로 제한돼요. Batch Operations 작업 만들기를 시작하려면 S3 Batch Operations 작업 만들기를 참고하세요.

S3 Batch Operations 자습서

다음 자습서는 일부 Batch Operations 작업에 대한 완전한 종단 간 절차를 보여줘요.

더 알아보기 (Learn more)