Share via


다중 테넌시 및 Azure Database for PostgreSQL

Azure의 많은 다중 테넌트 솔루션은 오픈 소스 관계형 데이터베이스 관리 시스템 Azure Database for PostgreSQL을 사용합니다. 이 문서에서는 다중 테넌트 시스템을 사용할 때 유용한 Azure Database for PostgreSQL 기능을 검토합니다. 또한 이 문서는 다중 테넌트 솔루션에서 Azure Database for PostgreSQL을 사용하는 방법에 대한 지침 및 예제에 연결됩니다.

배포 모드

다중 테넌트 애플리케이션에 사용하기에 적합한 Azure Database for PostgreSQL 사용할 수 있는 두 가지 배포 모드가 있습니다.

  • 유연한 서버 - Azure Cosmos DB for PostgreSQL에서 제공하는 높은 확장성이 필요하지 않은 대부분의 다중 테넌트 배포에 적합합니다.
  • Azure Cosmos DB for PostgreSQL - 다중 테넌트 애플리케이션을 포함하는 높은 수준의 규모가 필요한 솔루션을 위해 설계된 Azure 관리형 데이터베이스 서비스입니다. 이 서비스는 Azure Cosmos DB 제품군의 일부입니다.

참고

Azure Database for PostgreSQL - 단일 서버가 사용 중지 경로에 있으며 2025년 3월 28일까지 사용 중지될 예정입니다. 새 다중 테넌트 워크로드에는 권장되지 않습니다.

다중 테넌시를 지원하는 Azure Database for PostgreSQL의 기능

Azure Database for PostgreSQL 사용하여 다중 테넌트 애플리케이션을 빌드할 때 솔루션을 개선하는 데 사용할 수 있는 다양한 기능이 있습니다.

참고

일부 기능은 특정 배포 모드에서만 사용할 수 있습니다. 이러한 기능은 아래 지침에 표시됩니다.

행 수준 보안

행 수준 보안은 공유 테이블을 사용하는 경우 테넌트 수준 격리를 적용하는 데 유용합니다. PostgreSQL에서 행 수준 보안은 행 보안 정책을 테이블에 적용하여 테넌트별로 행에 대한 액세스를 제한하는 방식으로 구현합니다.

테이블에서 행 수준 보안을 구현할 때 약간의 성능 영향이 있을 수 있습니다. 따라서 성능에 영향을 주지 않도록 행 수준 보안을 사용하도록 설정된 테이블에 추가 인덱스를 만들어야 할 수 있습니다. 성능 테스트 기술을 사용하여 행 수준 보안을 사용할 때 워크로드가 기준 성능 요구 사항을 충족하는지 확인하는 것이 좋습니다.

추가 정보:

분할을 사용하여 수평 스케일링

분할 패턴을 사용하면 여러 데이터베이스 또는 데이터베이스 서버에서 워크로드를 스케일링할 수 있습니다.

매우 높은 수준의 규모가 필요한 솔루션은 Azure Cosmos DB for PostgreSQL을 사용할 수 있습니다. 이 배포 모드를 사용하면 여러 서버(노드)에서 테넌트의 수평 분할을 수행할 수 있습니다. 다중 테넌트 데이터베이스에서 분산 테이블을 사용하면 테넌트의 모든 데이터가 동일한 노드에 저장되어 쿼리 성능이 향상될 수 있습니다.

참고

2022년 10월부터 Azure Database for PostgreSQL 하이퍼스케일(Citus)은 Azure Cosmos DB for PostgreSQL로 브랜드를 변경하고 Cosmos DB 제품군으로 이전되었습니다.

추가 정보:

연결 풀링

Postgres는 연결에 프로세스 기반 모델을 사용합니다. 이 모델은 많은 수의 유휴 연결을 유지 관리하는 데 비효율적입니다. 일부 다중 테넌트 아키텍처에는 많은 수의 활성 연결이 필요하며, 이는 Postgres 서버의 성능에 부정적인 영향을 줍니다.

PgBouncer를 통한 연결 풀링이 기본적으로 Azure Database for PostgreSQL 유연한 서버에 설치됩니다.

추가 정보:

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

기타 기여자:

  • John Downs | 수석 고객 엔지니어, FastTrack for Azure
  • Arsen Vladimirskiy | 수석 고객 엔지니어, FastTrack for Azure
  • Paul Burpo | 주요 고객 엔지니어, Azure ISV용 FastTrack
  • Assaf Fraenkel | 선임 엔지니어/데이터 설계자, ISV 및 스타트업을 위한 Azure FastTrack

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인합니다.

다음 단계

다중 테넌시에 대한 스토리지 및 데이터 접근 방식을 검토합니다.