싱글테넌시 VS 멀티테넌시

SEUNGJUN·2024년 5월 17일
0
post-thumbnail

테넌시(Tenancy)는 소프트웨어 아키텍처나 클라우드 컴퓨팅에서 주로 사용되며, 사용자 또는 사용자 그룹이 시스템이나 서비스를 공유하는 방식을 가르킨다. 테넌시 개념은 주로 SaaS, PaaS, IaaS와 같은 클라우드 서비스 모델에서 사용된다.

테넌트: 일반적으로 소프트웨어나 서비스를 사용하는 개별적인 사용자 또는 그룹을 가리킨다.

1. 싱글 테넌시(Singletenancy)

  • 싱글테넌시는 각각의 사용자 또는 테넌트가 독립된 소프트웨어 인스턴스를 가지고 있는 아키텍처를 의미한다. 각 사용자는 자체 인스턴스를 사용하여 데이터와 구성 요소를 완전히 격리시킬 수 있다. 이는 보안 및 커스터마이징 측면에서 특히 중요할 수 있다.

예시

1. 개별 서버 호스팅

  • 기업 A가 자체 서버를 운영하여 그 서버에 소프트웨어를 설치하고 운영하는 경우를 예로 들수 있다. 이 서버는 기업 A만의 용도로 사용되며, 기업 A의 데이터와 구성 요소는 다른 기업과 완전히 격리되어 있다.

2. 독립적인 클라우스 인스턴스

  • 기업 B가 클라우드 서비스를 제공 업체를 통해 자체적으로 가상 머신 인스턴스를 구축하고 운영하는 경우도 싱글테넌트의 예시이다. 각 인스턴스는 기업 B만의 용도로 사용되며, 다른 기업과는 완전히 분리되어 있다.

2. 멀티테넌시(Multitenancy)

  • 멀티테넌시는 하나의 소프트웨어 인스턴스가 여러 사용자 또는 테넌트를 지원하는 아키텍처를 의미한다. 각 사용자는 자신의 데이터와 구성 요소를 분리하여 소프트웨어를 사용하지만, 하나의 인스턴스에서 동작한다. 이는 여러 사용자가 동일한 애플리케이션을 사용하면서도 서로 독립된 환경에서 작업할 수 있도록 해준다.

예시

1. 소셜 미디어 플랫폼

  • Facebook, Instagram, Twitter 등의 소셜 미디어 플랫폼은 멀티테넌트 아키테처를 사용한다. 각 사용자(테넌트)는 자신의 계정을 통해 플랫폼에 액세스하고, 서로 다른 사용자들이 동일한 플랫폼을 공유하면서도 각자의 데이터와 설정을 분리하여 관리한다.

2. 클라우드 기반 이메일 서비스

  • Gmail, Outlook.com, Yahoo Mail 등의 클라우드 기반 이메일 서비스도 멀티테넌트 아키텍처를 사용한다. 각 사용자는 자체 이메일 계정을 통해 서비스에 접속하고, 서로 다른 사용자들이 동일한 서비스를 공유하면서도 각자의 이메일 데이터와 설정을 분리하여 관리한다.

적합성

싱글테넌트

  • 보안 및 격리의 필요성이 높은 경우: 데이터 보안이 매우 중요하거나 각 사용자의 요구사항이 다양하게 다를 때, 싱글테넌트 아키텍처가 더 적합할수 있다. 각 테넌트가 격리되어 있기 때문에 보안 문제를 최소화할 수 있다.

  • 커스터마이징이 필요한 경우: 각 테넌트가 자체적으로 소프트웨어를 수정하거나 확장해야 할 때, 싱글테넌트 아키텍처가 더 적합할수 있다. 각각의 테넌트가 독립적으로 자원을 활용하므로, 커스터 마이징이 용이하다.

멀티테넌트

  • 비용 효율성이 중요한 경우: 여러 테넌트가 하나의 인스턴스를 공유하면서 리소스를 효율적으로 활요할 수 있으므로, 비용을 절감할 수 있다.

  • 확장성이 필요한 경우: 사용자 수나 데이터 양이 늘어날 때 쉽게 확장할 수 있는 아키텍처가 필요할때, 멀티테넌시가 적합할수 있다. 여러 테넌트가 하나의 인스턴스를 공유하므로, 확장성이 높다.

profile
RECORD DEVELOPER

12개의 댓글