Multi Tenancy Architecture

Hyunjun Jang·2021년 9월 8일
1

Multi Tenancy란?

Multi Tenancy 는 Tenants 라는 여러 사용자가 사용할 소프트웨어 응용 프로그램의 단일 인스턴스를 지원하는 아키텍처이다.

Software들은 모든 테넌트들에 대해 인스턴스의 일부분을 단독적으로 제공하기 위하여 설계되어 있다.

SaaS (Software as a Service) 모델은 단일 데이터베이스 인스턴스에서 단일 소프트웨어 애플리케이션 인스턴스를 실행하고 웹을 통해 여러 사용자에게 액세스를 제공한다. 다중 테넌트 데이터는 분리되어 다른 사용자(테넌트)에게 보이지 않는다.

사용자(테넌트)는 응용 프로그램 프레젠테이션 인터페이스의 모양과 느낌을 수정할 수 있는 유연성이 있지만 응용 프로그램의 소스 코드를 사용자 지정할 수는 없다.
테넌트는 공유 환경에서 작동하며 물리적으로 통합되어 있지만 각 테넌트 데이터가 클라우드의 공통 저장소에 별도로 저장되기 때문에 논리적 분리가 있다.


Multi Tenancy Architecture

멀티 테넌시 아키텍처는 복잡성과 비용에 따라 세 가지 유형으로 나눌 수 있다.

  • 단일 공유 데이터베이스 스키마
    이것은 공유 리소스 사용으로 인해 상대적으로 비용이 저렴한 가장 단순한 형태의 다중 테넌시 모델이다. 단일 애플리케이션과 단일 데이터베이스 인스턴스를 사용하여 테넌트를 호스팅하고 데이터를 저장합니다. 확장은 더 쉽지만 운영 비용이 높다.

    이것은 모든 것을 공유하는 모델 로도 알려져 있다. 모든 리소스는 모든 테넌트 간에 동일하게 공유된다.
    이 모델에는 이러한 복잡한 모델을 구현하는 것이 모든 수준의 모든 리소스에 대해 어려울 수 있고, 사용자 간의 데이터 공유로 인해 비즈니스 위험이 발생할 수 있고, 백업 및 복원 기능의 범위가 제한적이며, 로드 밸런싱 및 배포가 복잡하다는 것과 같은 몇 가지 고유한 위험이 있다.

  • 단일, 다중 데이터베이스 스키마
    다중 스키마가 있는 단일 데이터베이스를 사용한다. 이 모델에는 다중 테넌트가 있지만 데이터베이스는 각 고객에게 할당된 고유 ID로 식별되는 각 테넌트에 대해 개별적이다. 개별 데이터베이스를 관리하기 위한 추가 오버헤드로 인해 높은 비용이 발생 된다. 이러한 종류의 아키텍처는 테넌트가 지리적으로 분산되어 있고 지리적 규정에 따라 다른 테넌트의 데이터를 다르게 취급해야 하는 경우에 유용하다.

  • 다중 데이터베이스 가 있는 다중 테넌트 아키텍처
    관리 및 유지 관리 비용이 많이 들기 때문에 복잡한 모델이다. 여러 스키마 및 제한 사항이 데이터베이스 수준에서 구현되어 더 폐쇄적인 상호 작용을 갖는 다중 테넌트 SaaS에 적합하다.


Multi Tenancy 장단점

  • 장점
    • 공유 리소스로 인해 비용 축소
    • 단일 시스템 유지 관리
    • 쉽게 확장 가능한 아키텍처
  • 단점
    • 동일한 CPU가 많은 사이클(공유)을 소비하므로 성능문제으로 인해 응답 시간이 느릴 수 있다.
    • 여러 리소스 요청으로 인해 다운타임 문제
    • 공유 가능성 증가로 인한 데이터 보안 문제

Reference

https://networkinterview.com/what-is-multi-tenancy/
https://www.netsolutions.com/insights/5-reasons-why-you-should-choose-multi-tenant-architecture-for-your-saas-application/
https://soosun.tistory.com/660

profile
Let's grow together😊

0개의 댓글