데이터 파티셔닝
데이터 파티셔닝은 멀티테넌트 환경에서 데이터를 나타내는 데 사용되는 다양한 전략을 설명하는 데 사용됩니다. 이 용어는 다양한 데이터 구성을 개별 테넌트와 연결하는 데 사용할 수 있는 다양한 접근 방식과 모델을 포괄하는 데 광범위하게 사용됩니다.
데이터 파티셔닝과 테넌트 격리를 서로 바꿔서 사용할 수 있는 것으로 볼 수도 있습니다. 하지만 이 두 개념은 동일하지 않습니다. 데이터 파티셔닝에 대해 이야기할 때는, 개별 테넌트의 테넌트 데이터가 저장되는 방식에 대해 설명하는 것입니다. 데이터를 파티셔닝한다고 해서 데이터가 격리되는 것은 아닙니다. 한 테넌트가 다른 테넌트의 리소스에 액세스할 수 없도록 하려면 여전히 격리를 별도로 적용해야 합니다.
각 AWS 스토리지 기술에는 데이터 파티셔닝 전략에 대한 고유한 고려 사항이 있습니다. 예를 들어, Amazon DynamoDB에서 데이터를 격리하는 것은 Amazon Relational Database Service
일반적으로 데이터 파티셔닝을 고려할 때는 먼저 데이터를 사일로화할지 아니면 풀링할지 고민합니다. 사일로 모델에서는 데이터를 혼합하지 않고도 각 테넌트마다 고유한 스토리지 구조를 갖게 됩니다. 풀 파티셔닝의 경우 각 테넌트와 관련된 데이터를 결정하는 테넌트 식별자를 기반으로 데이터가 혼합 및 파티셔닝됩니다.
예를 들어, Amazon DynamoDB의 경우 사일로 모델은 각 테넌트에 대해 별도의 테이블을 사용합니다. Amazon DynamoDB에서 데이터를 풀링하려면 모든 테넌트의 데이터를 관리하는 각 Amazon DynamoDB 테이블의 파티션 키에 테넌트 식별자를 저장해야 합니다.
각 서비스마다 사일로 및 풀링된 스토리지 모델을 구현하기 위해 서로 다른 접근 방식이 필요할 수 있는 자체 구조를 도입하는 등 AWS 서비스 범위에 따라 이러한 상황이 어떻게 달라질지 상상할 수 있습니다.
데이터 파티셔닝과 테넌트 격리는 별개의 주제이지만 선택하는 데이터 파티셔닝 전략은 데이터 격리 모델의 영향을 받을 가능성이 높습니다. 예를 들어 도메인이나 고객의 요구 사항에 가장 잘 맞는 접근 방식이 있기 때문에 일부 스토리지를 사일로화할 수 있습니다. 또는 풀 모델에서는 솔루션에 필요한 세분화 수준으로 격리를 적용할 수 없기 때문에 사일로를 선택할 수도 있습니다.
시끄러운 이웃도 격리 방식에 영향을 미칠 수 있습니다. 애플리케이션의 일부 워크로드 또는 사용 사례는 다른 테넌트의 영향을 제한하거나 서비스 수준에 관한 계약(SLA)을 충족하기 위해 별도로 보관해야 할 수도 있습니다.