

# 데이터 파티셔닝
<a name="data-partitioning"></a>

 *데이터 파티셔닝*은 멀티테넌트 환경에서 데이터를 나타내는 데 사용되는 다양한 전략을 설명하는 데 사용됩니다. 이 용어는 다양한 데이터 구성을 개별 테넌트와 연결하는 데 사용할 수 있는 다양한 접근 방식과 모델을 포괄하는 데 광범위하게 사용됩니다.

 데이터 파티셔닝과 테넌트 격리를 서로 바꿔서 사용할 수 있는 것으로 볼 수도 있습니다. 하지만 이 두 개념은 동일하지 않습니다. *데이터 파티셔닝*에 대해 이야기할 때는, 개별 테넌트의 테넌트 데이터가 저장되는 방식에 대해 설명하는 것입니다. 데이터를 파티셔닝한다고 해서 데이터가 격리되는 것은 아닙니다. 한 테넌트가 다른 테넌트의 리소스에 액세스할 수 없도록 하려면 여전히 격리를 별도로 적용해야 합니다.

 각 AWS 스토리지 기술에는 데이터 파티셔닝 전략에 대한 고유한 고려 사항이 있습니다. 예를 들어, Amazon DynamoDB에서 데이터를 격리하는 것은 [Amazon Relational Database Service](https://aws.amazon.com/rds/)(RDS)를 사용하여 데이터를 분리하는 것과 매우 다르게 보입니다.

 일반적으로 데이터 파티셔닝을 고려할 때는 먼저 데이터를 사일로화할지 아니면 풀링할지 고민합니다. 사일로 모델에서는 데이터를 혼합하지 않고도 각 테넌트마다 고유한 스토리지 구조를 갖게 됩니다. 풀 파티셔닝의 경우 각 테넌트와 관련된 데이터를 결정하는 테넌트 식별자를 기반으로 데이터가 혼합 및 파티셔닝됩니다.

 예를 들어, Amazon DynamoDB의 경우 사일로 모델은 각 테넌트에 대해 별도의 테이블을 사용합니다. Amazon DynamoDB에서 데이터를 풀링하려면 모든 테넌트의 데이터를 관리하는 각 Amazon DynamoDB 테이블의 파티션 키에 테넌트 식별자를 저장해야 합니다.

 각 서비스마다 사일로 및 풀링된 스토리지 모델을 구현하기 위해 서로 다른 접근 방식이 필요할 수 있는 자체 구조를 도입하는 등 AWS 서비스 범위에 따라 이러한 상황이 어떻게 달라질지 상상할 수 있습니다.

 데이터 파티셔닝과 테넌트 격리는 별개의 주제이지만 선택하는 데이터 파티셔닝 전략은 데이터 격리 모델의 영향을 받을 가능성이 높습니다. 예를 들어 도메인이나 고객의 요구 사항에 가장 잘 맞는 접근 방식이 있기 때문에 일부 스토리지를 사일로화할 수 있습니다. 또는 풀 모델에서는 솔루션에 필요한 세분화 수준으로 격리를 적용할 수 없기 때문에 사일로를 선택할 수도 있습니다.

 시끄러운 이웃도 격리 방식에 영향을 미칠 수 있습니다. 애플리케이션의 일부 워크로드 또는 사용 사례는 다른 테넌트의 영향을 제한하거나 서비스 수준에 관한 계약(SLA)을 충족하기 위해 별도로 보관해야 할 수도 있습니다.