본문 바로가기
Programing

[SaaS] Database Multi tenancy: 데이터베이스 멀티 테넌시

by 멍멍돌이야 2023. 3. 31.
반응형

데이터베이스 멀티 테넌시

우선 세입자가 무엇인지 이해하는 것부터 시작합시다.그러면 세입자는 자신의 집이나 사업을 위해 땅이나 부동산을 임대하는 사람입니다.

테넌시의 기술 버전은 애플리케이션  인프라의 인스턴스 고객에게 서비스를 제공하는 아키텍처입니다.

단일 테넌트 vs 멀티 테넌트

멀티 테넌시:

멀티 테넌시(Multi-tenancy)는 하나 이상의 응용 프로그램의 여러 독립 인스턴스가 공유 환경에서 작동하는 소프트웨어의 작동 모드를 말합니다.인스턴스(테넌트)는 논리적으로는 분리되어 있지만 물리적으로 통합되어 있습니다.

중요도:

  • 멀티 테넌시(Multi-tenancy)는 많은 채택이 가능하며 클라우드 컴퓨팅에서 가장 많이 사용됩니다.
  • 멀티 테넌트(Multi-tenant) 아키텍처는 퍼블릭 클라우드 환경과 프라이빗 클라우드 환경 모두에서 사용되므로 각 테넌트의 데이터를 서로 분리할 수 있습니다.
  • 멀티 테넌시(Multi-tenancy)는 퍼블릭 및 프라이빗 클라우드의 확장성에도 중요하며 멀티 테넌시(Multi-tenancy)를 표준으로 만드는 데 도움이 되었습니다.
  • 멀티 테넌트(Multi-tenant) 아키텍처는 더 나은 기능을 제공하는 데에도 도움이 됩니다.
    조직을 위한 투자수익률(ROI)과 테넌트의 유지 보수 및 업데이트 속도를 높입니다.

를 들어 멀티 테넌트(Multi-tenant) 퍼블릭 클라우드에서는 여러 사용자를 호스트하기 위해 호스트 환경에서 동일한 서버를 사용합니다.각 사용자에게는 데이터를 저장하기 위한 이상적인 보안 공간이 서버 내에 별도로 주어집니다.

단일 데이터베이스, 공유 스키마:

단일 데이터베이스를 사용하여 모든 테넌트의 모든 데이터를 보관하고 테넌트 ID는 각 테넌트를 소유한 행과 연결합니다.이 공유 스키마 방식은 하나의 데이터베이스를 사용하여 다수의 테넌트/클라이언트에 서비스를 제공할 수 있기 때문에 하드웨어 및 백업 비용이 가장 낮습니다.

공유 스키마 접근방식은 애플리케이션이 적은 수의 서버로 다수의 테넌트/클라이언트에 서비스를 제공할 수 있다는 것이 중요한 경우에 적합합니다.이러한 방법으로 설계된 애플리케이션의 유지보수 및 지원 요건을 대폭 줄입니다.

장점과 단점:

장점:

  • 유지관리할 단일 데이터베이스 스키마와 프로세스를 한 번 적용해야 하는 간단한 스키마 업데이트 원격 설치 프로세스입니다.
  • 단일 데이터베이스의 고가용성/디저스터 리커버리/유지보수 운용/모니터링 전략을 관리합니다.
  • 단일 스키마, 연결할 단일 데이터베이스.

단점:

  • 테넌트 분리 없음(모든 테넌트는 테넌트 ID가 유일한 차별화 요소인 다른 테넌트와 결합됩니다).
  • 개발자가 테넌트 ID에서 필터링할 WHERE 절을 놓치면 한 테넌트의 데이터가 다른 테넌트에 노출될 수 있습니다.
  • 단일 테넌트의 데이터를 쉽게 복원할 수 없습니다.

단일 데이터베이스, 개별 스키마:

단일 데이터베이스에는 모든 테넌트의 데이터가 저장됩니다.각 테이블이 테넌트별 스키마로 설정되는 각 테넌트에 대해 테이블을 구분합니다.

장점과 단점:

장점:

  • 테넌트 데이터의 분리가 강화됩니다.
  • 단일 데이터베이스의 고가용성/디저스터 리커버리/유지보수 운용/모니터링 전략을 관리합니다.
  • 최적화는 개별 테넌트의 스키마 수준에서 수행할 수 있습니다.

단점:

  • 단일 테넌트의 데이터를 쉽게 복원할 수 없습니다(단일 데이터베이스, 공유 스키마 접근 방식보다 약간 더 나은 프로세스이지만 테넌트 데이터의 격리로 인해).
  • 테넌트 수가 증가함에 따라 관리 및 유지 관리할 데이터베이스 개체가 많이 생성될 것입니다.
  • 스키마 업데이트는 더 복잡하며 n개의 테넌트에 롤아웃해야 합니다.

테넌트당 데이터베이스 수:

각 테넌트에는 데이터베이스가 있습니다.시스템에 새 테넌트가 추가될 때마다 사용자를 위해 새 데이터베이스가 생성됩니다.새 테넌트가 추가될 때마다 테넌트에 대해 별도의 데이터베이스를 생성하는 새 스키마가 생성됩니다.

장점과 단점:

장점:

  • 최고 수준의 테넌트 격리.공유 서버 및 격리 서버 옵션을 지원합니다.
  • 테넌트의 데이터를 쉽게 복원/재위치/삭제할 수 있습니다.
  • 쿼리의 복잡성이 추가되지 않았습니다.

단점:

  • 패치를 적용하여 보안을 유지하는 서버가 늘어날 수 있습니다.
  • 테넌트 수가 증가함에 따라 관리 및 유지 관리할 데이터베이스 개체가 많이 생성될 것입니다.
  • 새 스키마를 생성해야 하므로 새 테넌트를 추가하는 작업이 더 중요합니다.

다중 데이터베이스, 데이터베이스당 다중 테넌트, 공유 스키마

이는 테넌트당 단일 데이터베이스, 공유 스키마 및 데이터베이스의 조합입니다.데이터베이스 풀을 사용할 수 있습니다.테넌트는 데이터베이스 및 스키마를 다른 테넌트와 공유하지만 여러 데이터베이스에 분산되어 있습니다.

장점과 단점:

장점:

  • 일반적으로 단일 데이터베이스 단일 스키마를 통해 일부 테넌트 분리가 가능합니다.
  • 테넌트의 데이터를 재배치할 수 있습니다(단, 테넌트당 데이터베이스에 접근하는 것보다 어렵습니다).
  • 비용(더 높은 테넌트 밀도)과 성능(더 낮은 테넌트 밀도) 사이에서 균형을 맞추려면 선택하십시오.

단점:

  • 테넌트는 여전히 데이터베이스 및 스키마를 다른 사용자와 공유합니다.
  • 유지보수가 더 필요합니다.

결론:

여기에는 멀티 테넌시(Multi-tenancy)에 대한 설명과 데이터베이스의 아키텍처 수준에서 멀티 테넌시(Multi-tenancy)를 사용하는 방법에 대한 각각의 장점과 단점이 요약되어 있습니다.필요한 접근 방식은 애플리케이션 유형과 데이터 크기에 따라 결정됩니다.

 

 

출처: https://medium.com/@harish.somasundar14/database-multi-tenancy-7c8dbe848d50
728x90
반응형

댓글