

# 디렉터리 버킷에 배치 작업 사용
<a name="directory-buckets-objects-Batch-Ops"></a>

Amazon S3 배치 작업을 사용하여 S3 버킷에 저장된 객체에 대해 작업을 수행할 수 있습니다. S3 배치 작업에 대한 자세한 내용은 [Amazon S3 객체에 대한 대규모 배치 작업 수행](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops.html)을 참조하세요.

다음 항목에서는 디렉터리 버킷의 S3 Express One Zone 스토리지 클래스에 대한 배치 작업 수행에 관해 설명합니다.

**Topics**
+ [디렉터리 버킷에 배치 작업 사용](#UsingBOPsDirectoryBuckets)
+ [주요 차이점](#UsingBOPsDirectoryBucketsKeyDiffs)

## 디렉터리 버킷에 배치 작업 사용
<a name="UsingBOPsDirectoryBuckets"></a>

디렉터리 버킷에 저장된 객체에 대해 **복사** 작업과 **AWS Lambda 함수 호출** 작업을 수행할 수 있습니다. **복사**를 사용하면 같은 유형의 버킷 간에 객체를 복사할 수 있습니다(예: 디렉터리 버킷에서 디렉터리 버킷으로). 디렉터리 버킷과 범용 버킷 간에 객체를 복사할 수도 있습니다. **AWS Lambda 함수 호출**을 사용하면 Lambda 함수를 사용하여 직접 정의한 코드로 디렉터리 버킷의 객체에 대한 작업을 수행할 수 있습니다.

**객체 복사**  
동일한 버킷 유형 간에 또는 디렉터리 버킷과 범용 버킷 간에 객체를 복사할 수 있습니다. 디렉터리 버킷으로 복사할 때는 이 버킷 유형에 맞는 Amazon 리소스 이름(ARN) 형식을 사용해야 합니다. 디렉터리 버킷의 ARN 형식은 `arn:aws:s3express:region:account-id:bucket/bucket-base-name--x-s3`입니다.

**참고**  
소스 또는 대상 버킷이 AWS 로컬 영역에 있는 경우 다른 AWS 리전에 객체를 복사할 수 없습니다. 소스 버킷과 대상 버킷의 상위 AWS 리전이 동일해야 합니다. 소스 버킷과 대상 버킷은 서로 다른 버킷 위치 유형(가용 영역 또는 로컬 영역)일 수 있습니다.

S3 콘솔에서 **가져오기** 작업을 사용하여 디렉터리 버킷에 데이터를 채울 수도 있습니다. **가져오기**는 범용 버킷에서 디렉터리 버킷으로 객체를 복사하는 배치 작업 건을 생성하는 간소화된 방법입니다. 범용 버킷에서 디렉터리 버킷으로의 **가져오기** 복사 작업의 경우 S3는 매니페스트를 자동으로 생성합니다. 자세한 내용은 [디렉터리 버킷으로 객체 가져오기](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-import-job.html) 및 [매니페스트 지정](https://docs.aws.amazon.com/AmazonS3/latest/userguide/specify-batchjob-manifest.html)을 참조하세요.

**Lambda 함수 호출(`LambdaInvoke`)**  
배치 작업을 사용하여 디렉터리 버킷에서 작동하는 Lambda 함수를 호출하려면 특별한 요구 사항이 있습니다. 예를 들어, v2 JSON 호출 체계를 사용하여 Lambda 요청을 구조화하고 작업 생성 시 InvocationSchemaVersion 2.0을 지정해야 합니다. 자세한 내용은 [AWS Lambda 함수 호출](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-invoke-lambda.html)을 참조하세요.

## 주요 차이점
<a name="UsingBOPsDirectoryBucketsKeyDiffs"></a>

다음은 대량 작업을 사용하여 디렉터리 버킷에 저장된 오브젝트에 대한 대량 작업을 수행할 때 S3 Express One Zone 스토리지 클래스가 있는 경우의 주요 차이점 목록입니다.
+ 디렉터리 버킷의 경우 SSE-S3 및 AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 사용한 서버 측 암호화가 지원됩니다. 디렉터리 버킷(소스 또는 대상)에서 고객 제공 키(SSE-C)를 사용한 서버 측 암호화를 사용하도록 지정하는 `CopyObject` 요청을 하면 응답에 HTTP `400 (Bad Request)` 오류가 반환됩니다.

  버킷의 기본 암호화는 원하는 암호화 구성을 사용하고 `CreateSession` 요청 또는 `PUT` 객체 요청에서 버킷 기본 암호화를 재정의하지 않는 것이 좋습니다. 그러면 새 객체가 원하는 암호화 설정으로 자동 암호화됩니다. 디렉터리 버킷의 암호화 재정의 동작 및 SSE-KMS를 사용하여 디렉터리 버킷의 새 객체 사본을 암호화하는 방법에 대한 자세한 내용은 [Specifying server-side encryption with AWS KMS for new object uploads](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-specifying-kms-encryption.html)를 참조하세요.

  [배치 운영의 Copy 작업을 통해](#directory-buckets-objects-Batch-Ops) SSE-KMS로 암호화된 객체를 범용 버킷에서 디렉터리 버킷으로, 디렉터리 버킷에서 범용 버킷으로 또는 디렉터리 버킷 간에 복사하는 경우 S3 버킷 키는 지원되지 않습니다. 이 경우 Amazon S3는 KMS 암호화 개체에 대한 사본 요청이 있을 때마다 AWS KMS를 직접적으로 호출합니다. 디렉터리 버킷에서 SSE-KMS를 사용하는 방법에 대한 자세한 내용은 [디렉터리 버킷의 기본 암호화 설정 및 모니터링](s3-express-bucket-encryption.md) 및 [디렉터리 버킷에서 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화 사용](s3-express-UsingKMSEncryption.md) 섹션을 참조하세요.
+ 디렉터리 버킷의 객체에는 태그를 지정할 수 없습니다. 빈 태그 세트만 지정할 수 있습니다. 기본적으로 배치 작업은 태그를 복사합니다. 태그가 있는 객체를 범용 버킷과 디렉터리 버킷 간에 복사하면 `501 (Not Implemented)` 응답이 표시됩니다.
+ S3 Express One Zone은 업로드 또는 다운로드 중에 데이터를 검증하는 데 사용하는 체크섬 알고리즘을 선택할 수 있는 옵션을 제공합니다. SHA(보안 해시 알고리즘) 또는 CRC(순환 중복 검사) 데이터 무결성 확인 알고리즘(CRC32, SHA-1, SHA-256) 중 하나를 선택할 수 있습니다. MD5 기반 체크섬은 S3 Express One Zone 스토리지 클래스에서 지원되지 않습니다.
+ 기본적으로 모든 Amazon S3 버킷은 객체 소유권 설정을 S3 버킷 소유자 적용으로 설정하며 액세스 제어 목록(ACL)이 비활성화되어 있습니다. 디렉터리 버킷의 경우 이 설정을 수정할 수 없습니다. 범용 버킷의 객체를 디렉터리 버킷으로 복사할 수 있습니다. 하지만 디렉터리 버킷으로 복사하거나 디렉터리 버킷에서 복사할 때는 기본 ACL을 덮어쓸 수 없습니다.
+ 매니페스트를 지정하는 방법과 관계없이 목록 자체는 범용 버킷에 저장해야 합니다. 배치 작업은 디렉터리 버킷에서 기존 매니페스트를 가져오거나 생성된 매니페스트를 디렉터리 버킷에 저장할 수 없습니다. 하지만 매니페스트에 설명된 객체는 디렉터리 버킷에 저장할 수 있습니다.
+ 배치 작업은 S3 인벤토리 보고서에서 디렉터리 버킷을 위치로 지정할 수 없습니다. 인벤토리 보고서는 디렉터리 버킷을 지원하지 않습니다. `ListObjectsV2` API 작업을 사용하여 객체를 나열하여 디렉터리 버킷 내의 객체에 대한 매니페스트 파일을 만들 수 있습니다. 그런 다음 CSV 파일로 목록을 삽입할 수 있습니다.

### 액세스 권한 부여
<a name="BOPsAccess"></a>

 복사 작업을 수행하려면 다음 권한이 있어야 합니다.
+ 한 디렉터리 버킷에서 다른 디렉터리 버킷으로 객체를 복사하려면 `s3express:CreateSession` 권한이 있어야 합니다.
+ 디렉터리 버킷에서 범용 버킷으로 객체를 복사하려면 대상 버킷에 객체 사본을 쓸 수 있도록 `s3express:CreateSession` 권한과 `s3:PutObject` 권한이 있어야 합니다.
+ 범용 버킷에서 디렉터리 버킷으로 객체를 복사하려면 복사되는 소스 객체를 읽을 수 있도록 `s3express:CreateSession` 권한과 `s3:GetObject` 권한이 있어야 합니다.

   자세한 내용은 *Amazon Simple Storage Service API 참조*에서 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html)를 참조하세요.
+ Lambda 함수를 호출하려면 Lambda 함수를 기반으로 리소스에 권한을 부여해야 합니다. 필요한 권한을 확인하려면 해당 API 권한을 확인하세요.