Amazon S3에서 애플리케이션을 빌드할 때 고유한 범용 버킷을 사용하여 다양한 데이터세트 또는 워크로드를 분리할 수 있습니다. 최종 사용자 또는 다른 사용자 그룹에 서비스를 제공하는 애플리케이션을 빌드할 때는 모범 사례 설계 패턴을 사용하여 Amazon S3 기능과 확장성을 최대한 활용할 수 있는 애플리케이션을 빌드합니다.
중요
예측할 수 없는 버킷 이름을 생성하는 것이 좋습니다. 이미 버킷을 생성한 경우를 제외하고 선택한 버킷 이름을 사용할 수 있다고 가정하고 코드를 작성하지 마세요. 예측할 수 없는 버킷 이름을 생성하는 한 가지 방법은 버킷 이름에 전역 고유 식별자(GUID)를 추가하는 것입니다(예: amzn-s3-demo-bucket-a1b2c3d4-5678-90ab-cdef-EXAMPLE11111
). 범용 버킷 이름 지정 규칙에 대한 자세한 내용은 범용 버킷 이름 지정 규칙 섹션을 참조하세요.
다중 테넌트 버킷 패턴
다중 테넌트 버킷을 사용하여 팀 또는 워크로드에 대한 단일 버킷을 생성합니다. 고유한 S3 접두사를 사용하여 버킷에 저장하는 객체를 구성합니다. 접두사는 객체 키 이름의 시작 부분에 있는 문자열입니다. 접두사는 임의의 길이일 수 있지만 객체 키 이름의 최대 길이(1,024바이트)를 초과할 수 없습니다. 접두사를 디렉터리와 비슷한 방식으로 데이터를 구성하는 방법으로 생각할 수 있습니다. 그러나 접두사는 디렉터리가 아닙니다.
도시에 대한 정보를 저장하기 위해 대륙, 국가 및 시/도를 기준으로 도시를 구성한다고 가정해 보겠습니다. 이러한 이름에는 보통 문장 부호가 사용되지 않으므로 슬래시(/)를 구분 기호로 선택할 수 있습니다. 다음 예제에서는 슬래시(/) 구분 기호를 사용하여 대륙, 국가, 시/도별로 도시 이름을 구성하는 데 사용되는 접두사를 보여줍니다.
-
유럽/프랑스/누벨아키텐/보르도
-
북미/캐나다/퀘벡/몬트리올
-
북미/미국/워싱턴/벨뷰
-
북미/미국/워싱턴/시애틀
이 패턴의 규모는 버킷 내에 수백 개의 고유한 데이터세트가 있을 때 효과적으로 조정됩니다. 접두사를 사용하면 이러한 데이터세트를 쉽게 구성하고 그룹화할 수 있습니다.
그러나 다중 테넌트 버킷 패턴의 한 가지 잠재적 단점은 기본 버킷 암호화, S3 버전 관리 및 S3 요청자 지불과 같은 많은 S3 버킷 수준 기능이 접두사 수준이 아닌 버킷 수준에서 설정된다는 것입니다. 다중 테넌트 버킷 내의 서로 다른 데이터세트에 고유한 요구 사항이 있을 경우 접두사 수준에서 많은 S3 버킷 수준 기능을 구성할 수 없기 때문에 각 데이터세트에 올바른 설정을 지정하기 어려울 수 있습니다. 또한 다중 테넌트 버킷에서는 특정 접두사와 관련된 스토리지, 요청 및 데이터 전송을 이해하는 과정에서 비용 할당이 복잡해질 수 있습니다.
사용당 버킷 패턴
사용당 버킷 패턴을 사용하여 각 개별 데이터세트, 최종 사용자 또는 팀에 대한 버킷을 생성합니다. 이러한 각 버킷에 대해 S3 버킷 수준 기능을 구성할 수 있으므로 이 패턴을 사용하여 고유한 버킷 수준 설정을 구성할 수 있습니다. 예를 들어 각 버킷의 데이터세트에 사용자 지정된 방식으로 기본 버킷 암호화, S3 버전 관리 및 S3 요청자 지불과 같은 기능을 구성할 수 있습니다. 각 개별 데이터세트, 최종 사용자 또는 팀에 하나의 버킷을 사용하면 액세스 관리 및 비용 할당 전략 모두를 간소화하는 데 도움이 될 수 있습니다.
잠재적으로 수천 개의 버킷을 관리해야 한다는 점이 이 전략의 잠재적 단점입니다. 모든 AWS 계정의 기본 버킷 할당량은 범용 버킷 10,000개입니다. 할당량 증가 요청을 제출하여 계정의 버킷 할당량을 늘릴 수 있습니다. 범용 버킷의 증가를 요청하려면 Service Quotas 콘솔
AWS CloudFormation를 사용하면 사용별 버킷 패턴을 관리하고 인프라 관리를 간소화할 수 있습니다. S3 버킷에 대해 원하는 모든 설정을 이미 정의한 패턴의 사용자 지정 AWS CloudFormation 템플릿을 생성하여 인프라에 대한 변경 사항을 쉽게 배포하고 추적할 수 있습니다. 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS::S3::Bucket 섹션을 참조하세요.
