이 페이지에서는 계층적 네임스페이스의 주요 기능, 일반적인 사용 사례, 이점 및 고려해야 할 제한사항을 포함하여 계층적 네임스페이스에 대한 개요를 제공합니다.
개요
계층적 네임스페이스는 Cloud Storage에서 제공하는 기능으로, 객체를 폴더로 구성하고 데이터를 논리적 파일 시스템 구조에 저장할 수 있습니다. 파일 시스템 구조로 데이터를 저장하면 성능이 향상되고 일관성이 보장되며 데이터 집약적인 파일 지향 워크로드의 관리가 간소화됩니다.
폴더 작업은 폴더 만들기, 삭제, 나열, 이름 바꾸기 등의 안정성과 관리 기능을 제공합니다. 객체의 계층적 구성은 데이터 구성을 간소화하고 데이터 관리 작업을 간소화합니다. 계층적 네임스페이스가 사용 설정된 버킷의 폴더에는 객체, 다른 폴더 또는 이 두 가지의 조합이 포함될 수 있습니다.
버킷에서 폴더를 사용하려면 버킷을 만들 때 계층적 네임스페이스를 사용 설정해야 합니다. 버킷을 만든 후에는 버킷의 계층적 네임스페이스 설정을 변경할 수 없습니다. 버킷에 계층적 네임스페이스를 사용 설정하는 방법에 관한 자세한 내용은 계층적 네임스페이스가 사용 설정된 버킷 만들기 및 관리를 참조하세요.
다음 다이어그램은 객체가 폴더의 계층 구조로 구성된 계층적 네임스페이스가 사용 설정된 버킷의 예시를 보여줍니다.
주요 특징
계층적 네임스페이스는 다음과 같은 기능을 제공합니다.
초기 초당 쿼리 수(QPS) 증가: 계층적 네임스페이스가 사용 설정된 버킷은 계층적 네임스페이스가 사용 설정되지 않은 버킷에 비해 객체 읽기 및 쓰기에 대한 초기 QPS 한도가 최대 8배 더 높습니다. 초기 QPS가 높을수록 데이터 집약적인 워크로드를 더 쉽게 확장하고 처리량을 개선할 수 있습니다. 계층적 네임스페이스가 사용 설정된 버킷에서 폴더를 사용할 때의 성능 최적화 방법에 관한 자세한 내용은 폴더 관리를 참조하세요.
폴더: 폴더는 객체 및 기타 폴더의 컨테이너 역할을 하며 폴더 만들기, 삭제, 가져오기와 같은 작업을 지원합니다.
폴더 이름 바꾸기: 폴더 이름 바꾸기 작업을 사용하면 객체를 삭제하지 않고도 폴더 및 기본 폴더의 경로 이름을 원자적으로 바꿀 수 있습니다. 이 기법은 특히 여러 개의 객체가 있는 대용량 폴더의 경우 효율적이고 시간을 절약할 수 있습니다.
폴더 나열: 폴더 나열 작업은 버킷 또는 특정 폴더 아래의 모든 폴더를 나열하여 버킷에 저장된 데이터의 구조를 관리하고 이해하는 데 도움이 됩니다.
버킷에 계층적 네임스페이스를 사용 설정해야 하는 경우
파일 시스템과 같은 계층 구조 및 시맨틱스를 예상하는 애플리케이션을 사용할 때는 계층적 네임스페이스를 사용 설정하는 것이 좋습니다. 계층적 네임스페이스는 분석, AI, ML 워크로드와 같은 데이터 집약적인 작업에 유용합니다. 다음은 계층형 네임스페이스를 사용해야 하는 일반적인 시나리오입니다.
Hadoop 기반 처리: Hadoop 및 Spark 워크로드는 전통적으로 파일 시스템과 같은 스토리지 구조와 파일 및 폴더의 시간 기반 이름 지정을 예상합니다. 계층적 네임스페이스는 Cloud Storage 커넥터와 통합되어 향상된 처리량과 원자적 폴더 이름 변경을 제공하여 여러 데이터 처리 파이프라인의 데이터 무결성과 일관성을 개선합니다.
파일 지향 워크로드 처리: 일괄 분석 처리, 금융 서비스 또는 고성능 컴퓨팅과 같은 워크로드는 폴더 및 파일의 계층 구조를 기반으로 파티션으로 구성됩니다. 계층적 네임스페이스는 폴더 관리 전용 API를 사용하여 이러한 환경을 관리하는 데 도움이 됩니다. 또한 계층적 네임스페이스를 사용하면 다른 폴더 및 객체가 포함된 폴더를 간편하게 관리할 수 있습니다. 단일 API 명령어를 사용하면 폴더와 모든 콘텐츠의 이름을 빠르게 바꿔 소중한 시간과 리소스를 절약할 수 있습니다.
AI 및 ML 처리: TensorFlow, Pandas, PyTorch와 같은 AI 및 ML 도구는 파일 시스템과 같은 액세스 및 시맨틱스를 예상합니다. 계층적 네임스페이스는 특히 Cloud Storage FUSE와 결합하면 처리량을 늘리고 데이터에 효율적으로 액세스할 수 있습니다. 따라서 계층적 네임스페이스는 ML 모델 반복의 성능과 안정성을 향상시킵니다.
버킷에 계층적 네임스페이스를 사용 설정하기 전에 계층적 네임스페이스의 제한사항을 고려해야 합니다. 계층적 네임스페이스 제한사항에 대한 자세한 내용은 제한사항을 참고하세요.
계층적 네임스페이스의 이점
버킷에 계층적 네임스페이스를 사용 설정하면 다음과 같은 작업을 할 수 있습니다.
조직 최적화: 데이터를 계층적 폴더 구조로 구성하여 파일 또는 데이터 세트를 관리하고 찾는 데 도움이 됩니다.
파일 시스템과 같은 생태계 구축: 계층적 네임스페이스는 폴더, 폴더 이름 변경, 폴더 나열과 같은 파일 시스템과 같은 기능을 도입합니다. 이러한 기능은 Hadoop 생태계, AI 및 ML 워크로드와 같은 파일 지향 애플리케이션에 유용합니다.
성능 개선: 데이터 집약적인 워크로드를 확장하여 더 높은 처리량을 처리하면 애플리케이션의 전반적인 성능을 개선할 수 있습니다.
플랫폼 지원
계층적 네임스페이스가 있는 버킷은 다음과 같은 Cloud Storage 플랫폼 기능을 지원합니다.
모든 Cloud Storage 객체 API 및 널리 사용되는 Cloud Storage 기능. 지원되지 않는 기능에 관한 자세한 내용은 제한사항을 참조하세요.
Storage Transfer Service를 사용하여 표준 버킷에서 계층적 네임스페이스가 있는 버킷으로 데이터를 전송합니다.
다음 제품과의 통합:
Hadoop 워크로드를 위해 Dataproc에서 유지관리하는 Cloud Storage 커넥터. 자세한 내용은 Hadoop 워크로드에 계층적 네임스페이스가 사용 설정된 버킷 사용을 참조하세요.
클라이언트를 사용하는 파일 시스템과 같은 버킷 액세스를 위한 Cloud Storage FUSE
Cloud Storage 작업 및 기능과의 호환성
계층적 네임스페이스가 사용 설정된 버킷은 다른 Cloud Storage 작업과 다음과 같이 상호작용합니다.
객체 작업
계층적 네임스페이스가 사용 설정된 버킷은 다음과 같은 방식으로 객체 작업을 처리합니다.
- 필요한 권한이 있는 경우
Upload
,Rewrite
,Compose
와 같은 작업은 누락된 상위 폴더를 자동으로 만듭니다. 따라서 객체를 업로드하기 전에 폴더를 미리 만들 필요가 없습니다. - 폴더는 객체 작업 중에 자동으로 생성될 수 있지만
DeleteFolder
작업을 사용하여 명시적으로 삭제해야 합니다. delimiter
매개변수와 함께ListObjects
작업을 사용하면 버킷이 각 하위 폴더를prefix.
로 반환합니다. 단, 빈 폴더는 기본적으로 제외됩니다. 일반적인 파일 시스템 목록과 마찬가지로 빈 폴더를 포함하려면includeFoldersAsPrefixes
파라미터를 설정해야 합니다. 계층적 네임스페이스가 사용 설정된 버킷에 객체를 나열하는 동안 성능 최적화 방법에 관한 자세한 내용은 객체 나열을 참조하세요.
관리형 폴더 작업
계층적 네임스페이스가 사용 설정된 버킷은 다음과 같은 방식으로 관리형 폴더 작업을 처리합니다.
- 계층적 네임스페이스가 사용 설정된 버킷은 관리형 폴더를 통해 세분화된 액세스 제어를 제공합니다. 폴더 내에서 액세스를 관리하려면 폴더와 동일한 이름의 관리형 폴더를 만든 다음 IAM 정책을 적용해야 합니다. 상응하는 폴더가 없으면 관리형 폴더가 존재할 수 없습니다.
- 관리형 폴더를 만들면 이름이 같은 폴더를 비롯하여 누락된 상위 폴더가 자동으로 생성됩니다.
- 폴더를 삭제하면 연결된 관리형 폴더도 자동으로 삭제됩니다.
- 폴더 이름을 바꾸면 연결된 관리형 폴더의 이름도 자동으로 바뀝니다.
- 계층적 네임스페이스가 있는 버킷은 관리형 폴더 이름 규칙 및 폴더 이름 규칙을 따라야 합니다. 폴더 이름은 최대 50단계까지 중첩할 수 있지만 관리형 폴더 이름은 최대 15단계까지만 중첩할 수 있습니다. 관리형 폴더 이름의 최대 크기는 최대 폴더 이름 크기(UTF-8 인코딩 시 512바이트)로 제한됩니다.
버킷 작업
계층적 네임스페이스가 사용 설정된 버킷은 다른 버킷과 동일한 방식으로 삭제할 수 있습니다. 계층적 네임스페이스로 사용 설정된 버킷에 비어 있는 폴더만 있고 객체나 관리형 폴더가 없는 경우 버킷을 삭제할 수 있습니다.
객체 수명 주기 관리
객체 수명 주기 관리를 사용하면 기간 또는 프리픽스와 같은 조건에 따라 객체에 대한 작업을 자동화할 수 있습니다. 그러나 RenameFolder
작업으로 인해 계층적 네임스페이스가 있는 버킷과 플랫 네임스페이스가 있는 버킷에서 객체 수명 주기 관리 규칙이 다르게 작동할 수 있습니다.
플랫 네임스페이스가 있는 버킷의 객체 수명 주기 관리 규칙: 이름 변경 작업에는 도구를 사용하여 모든 객체를 대상 위치로 복사하고 소스 위치에서 원본 객체를 삭제하여 모든 객체의 이름을 바꾸는 작업이 포함됩니다. 결과적으로, 새로운 객체가 대상 위치에 새로운 생성 시간으로 생성됩니다. 대상 위치에 기간 기반 객체 수명 주기 관리 규칙이 적용된 경우 생성 시간이 재설정되므로 새 객체에 즉시 적용되지 않습니다.
계층적 네임스페이스가 사용 설정된 버킷의 객체 수명 주기 관리 규칙: 폴더 이름 변경은 폴더 수준에서 이루어지므로 모든 개체의 이름을 변경할 필요가 없습니다. 결과적으로 객체의 생성 시간이 보존되며, 이름이 변경된 객체가 기간 기준을 충족하는 경우 기간 기반 객체 수명 주기 관리 규칙이 즉시 적용됩니다.
계층적 네임스페이스가 사용 설정된 버킷을 관리하는 방법
스토리지 레이아웃과 관계없이 계층적 네임스페이스가 사용 설정된 모든 버킷을 나열할 수 있습니다. 버킷의 스토리지 레이아웃은 객체가 버킷 내에서 플랫 네임스페이스 또는 계층적 네임스페이스로 정렬되는 방식을 나타냅니다. 버킷의 스토리지 레이아웃을 보는 방법에 관한 안내는 버킷의 스토리지 레이아웃 가져오기를 참조하세요. 모든 버킷을 나열하려면 버킷 나열에 설명된 안내를 따르세요.
계층적 네임스페이스가 사용 설정된 버킷은 다른 버킷과 동일한 방식으로 삭제할 수 있습니다. 삭제의 목적으로 계층적 네임스페이스로 사용 설정된 버킷에 비어 있는 폴더만 있고 객체나 관리 폴더가 없는 경우 버킷은 비어 있는 것으로 간주됩니다. 버킷 삭제에 관한 안내는 버킷 삭제를 참조하세요.
가격 책정
가격 정보는 Cloud Storage 가격 책정을 참조하세요.
제한사항
계층적 네임스페이스의 제한사항은 다음과 같습니다.
버킷을 만들 때 계층적 네임스페이스를 사용할지 여부를 선택해야 합니다. 버킷을 만든 후에는 버킷의 계층적 네임스페이스 설정을 변경할 수 없습니다.
계층적 네임스페이스를 사용 설정하려면 버킷에서 균일한 버킷 수준 액세스도 사용 설정해야 합니다.
계층적 네임스페이스를 사용하는 버킷에는 다음 Cloud Storage 기능이 지원되지 않습니다.
- 자동 클래스
- 버킷 잠금
- 객체 보존 조치
- 객체 보관 잠금
- 객체 버전 관리
다음 단계
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Cloud Storage의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
Cloud Storage 무료로 사용해 보기