디렉터리 버킷 작업하기

디렉터리 버킷 작업하기 (Working with directory buckets)

디렉터리 버킷은 일반 목적 버킷의 평면(flat) 저장 구조와 달리 데이터를 디렉터리로 계층적으로 정리해요. 어떤 구조를 갖고, 이름은 어떻게 짓고, 접근 관리를 어떻게 하는지 이 페이지에서 하나씩 살펴볼게요.

출처: 문서

본문

디렉터리 버킷은 일반 목적 버킷의 평면 저장 구조와 달리 데이터를 디렉터리로 계층적으로 정리해요. 디렉터리 버킷에는 프리픽스 한도가 없고, 개별 디렉터리는 수평으로 확장될 수 있어요.

각 AWS 계정에 최대 100개의 디렉터리 버킷을 만들 수 있고, 버킷에 저장할 수 있는 객체 수에는 제한이 없어요. 버킷 쿼터는 AWS 계정의 각 리전에 적용돼요. 애플리케이션이 이 한도를 늘려야 한다면 Support에 문의해요.

중대한 사항: 가용 영역(Availability Zone)의 디렉터리 버킷 중 90일 이상 요청 활동이 없는 버킷은 비활성(inactive) 상태로 전환돼요. 비활성 상태에서 디렉터리 버킷은 읽기·쓰기에 일시적으로 접근할 수 없어요. 비활성 버킷은 모든 저장소, 객체 메타데이터, 버킷 메타데이터를 유지하고, 기존 저장 비용은 계속 적용돼요. 비활성 버킷에 접근 요청을 하면 일반적으로 몇 분 안에 버킷이 활성 상태로 전환돼요. 이 전환 기간 동안 읽기·쓰기는 HTTP 503(Service Unavailable) 오류 코드를 반환해요. 이것은 로컬 존(Local Zones)의 버킷에는 적용되지 않아요.

Amazon S3 버킷에는 여러 종류가 있어요. 버킷을 만들기 전에 애플리케이션과 성능 요구 사항에 가장 잘 맞는 버킷 유형을 선택해야 해요. 다양한 버킷 유형과 각각의 적절한 사용 사례는 "버킷 (Buckets)"을 참고해요.

다음 항목들이 디렉터리 버킷에 대한 정보를 제공해요. 일반 목적 버킷에 대한 자세한 내용은 "일반 목적 버킷 개요"를 참고해요.

디렉터리 버킷에 대한 자세한 내용은 다음 항목을 참고해요.

  • 디렉터리 버킷 이름
  • 디렉터리
  • 키 이름
  • 접근 관리

디렉터리 버킷 이름

디렉터리 버킷 이름은 사용자가 제공하는 기본 이름과 버킷이 위치한 존(가용 영역 또는 로컬 존)의 ID가 포함된 접미사로 구성돼요. 디렉터리 버킷 이름은 다음 형식을 사용해야 하고 디렉터리 버킷 명명 규칙을 따라야 해요:

bucket-base-name--zone-id--x-s3

예를 들어, 다음 디렉터리 버킷 이름은 가용 영역 ID usw2-az1을 포함해요:

bucket-base-name--usw2-az1--x-s3

자세한 내용은 디렉터리 버킷 명명 규칙 (Directory bucket naming rules)을 참고해요.

디렉터리

디렉터리 버킷은 일반 목적 버킷의 평면 정렬 구조와 달리 데이터를 디렉터리로 계층적으로 정리해요.

계층적 네임스페이스에서 객체 키의 구분자(delimiter)가 중요해요. 지원되는 유일한 구분자는 슬래시(/)예요. 디렉터리는 구분자 경계로 결정돼요. 예를 들어 객체 키 dir1/dir2/file1.txt는 dir1/과 dir2/ 디렉터리가 자동으로 생성되고, file1.txt 객체가 dir1/dir2/file1.txt 경로의 /dir2 디렉터리에 추가되는 결과를 만들어요.

디렉터리 버킷 인덱싱 모델은 ListObjectsV2 API 연산에 대해 정렬되지 않은 결과를 반환해요. 결과를 버킷의 하위 부분으로 제한하려면 prefix 파라미터에 하위 디렉터리 경로(예: prefix=dir1/)를 지정하면 돼요.

키 이름

디렉터리 버킷의 경우 여러 객체 키에 공통인 하위 디렉터리는 첫 번째 객체 키와 함께 생성돼요. 같은 하위 디렉터리의 추가 객체 키는 이전에 생성된 하위 디렉터리를 사용해요. 이 모델 덕분에 애플리케이션에 가장 잘 맞는 객체 키를 유연하게 고를 수 있고, 희소(sparse) 디렉터리와 밀집(dense) 디렉터리를 동등하게 지원해요.

접근 관리

디렉터리 버킷은 기본적으로 버킷 수준에서 모든 S3 Block Public Access 설정이 활성화돼 있어요. S3 객체 소유권(Object Ownership)은 bucket owner enforced(버킷 소유자 강제)로 설정되고, 접근 제어 목록(ACL)은 비활성화돼요. 이 설정은 수정할 수 없어요.

기본적으로 사용자는 디렉터리 버킷에 대한 권한이 없어요. 디렉터리 버킷에 대한 접근 권한을 부여하려면 IAM으로 사용자·그룹·역할을 만들고 해당 자격 증명에 권한을 연결하면 돼요. 자세한 내용은 "리전 엔드포인트 API 연산을 IAM으로 인가하기"를 참고해요.

디렉터리 버킷에 대한 접근은 접근 포인트(access points)를 통해서도 제어할 수 있어요. 접근 포인트는 Amazon S3의 공유 데이터셋에 대한 대규모 데이터 접근 관리를 단순화해요. 접근 포인트는 접근 포인트를 통해 이루어지는 모든 요청에 대해 별도의 권한과 네트워크 제어를 적용하기 위해 만드는 고유한 호스트 이름이에요. 자세한 내용은 "접근 포인트로 디렉터리 버킷의 공유 데이터셋 접근 관리하기"를 참고해요.

디렉터리 버킷 쿼터

쿼터(한도라고도 함)는 AWS 계정에서 사용할 수 있는 서비스 리소스 또는 연산의 최대 수예요. 다음은 디렉터리 버킷의 쿼터예요. Amazon S3의 쿼터에 대한 자세한 내용은 "Amazon S3 쿼터"를 참고해요.

이름 기본값 조정 가능 설명
디렉터리 버킷 계정당: 100 예 계정에서 만들 수 있는 Amazon S3 디렉터리 버킷 수
디렉터리 버킷당 읽기 TPS 디렉터리 버킷당 최대 200,000 읽기 TPS 쿼터 증가를 요청하려면 Support에 문의 디렉터리 버킷당 초당 GET/HEAD 요청 수
디렉터리 버킷당 쓰기 TPS 디렉터리 버킷당 최대 100,000 쓰기 TPS 쿼터 증가를 요청하려면 Support에 문의 디렉터리 버킷당 초당 PUT/DELETE 요청 수

디렉터리 버킷 만들기와 사용하기

디렉터리 버킷 작업에 대한 자세한 내용은 다음 항목을 참고해요.

더 알아보기 (Learn more)