쇼피파이는 싱글태넌트로 설계 되어있다는 걸 알고, 싱글 태넌트와 멀티 태넌트의 차이점과 장단점은 무엇인지 간략히 정리해보려 한다.

먼저 태넌트(tenant)가 뭘까?

태넌트 (tenant)는 ‘임차인’이라는 뜻을 가진다.

즉 자신의 자원이 아닌 서비스 제공자의 클라우드 자원을 빌려서 서비스를 이용하는 주체를 태넌트라고 한다.

태넌트 개념은 주로 SaaS(서비스형 소프트웨어) 제품과 엮여서 사용되곤 한다.


왜 SaaS와 연결될까?

  • 아래에서도 언급하겠지만 SaaS는 주로 멀티 태넌트를 채택하여, 여러 고객이 동일한 서비스를 이용하도록 설계하는게 일반적이다.
  • 하지만 IaaS와 PaaS는 주로 인프라 또는 플랫폼을 제공하는데 중점을 두고 있어서, 태넌트 개념의 필요성이 상대적으로 적다.

그러면 멀티 태넌트 / 싱글 태넌트는 뭘까?


멀티 태넌트

  • 멀티 태넌트는 여러 사용자 또는 고객이 하나의 소프트웨어 인스턴스를 공유하는 것이다.
  • SaaS에서 멀티 태넌트는 여러 고객이 동일한 서버, 데이터베이스, 애플리케이션 인스턴스 등을 사용하여 서비스를 이용하는 것을 의미한다.

장점

  • 비용절감 및 자원 공유를 통해 효율성 증대
  • 업그레이드 및 유지보수 용이

단점

  • 보안과 격리가 어렵고 의존성 문제가 발생 할 수 있다. 각 테넌트가 완전히 격리되어 있지 않기 때문에 하나의 테넌트에서 발생한 문제가 다른 테넌트에 영향을 미칠 수 있다.
  • 커스터마이징이 어렵다.
  • 성능이 저하 될 수 있다. 하나의 인스턴스를 여러 테넌트가 공유하다보니, 트래픽이 몰리면 당연히 성능 이슈가 생긴다.

언제 사용해야 할까?

  • 대부분의 SaaS 제품들은 멀티태넌트를 채택한다.
  • 즉, 테넌트 간 커스터마이징이나 보안에 극도로 예민하지 않을 경우는 멀티 테넌트를 사용하는 것이 비용/유지보수 측면에서 효율적일거라 생각한다.

싱글 태넌트

  • 각 사용자에 대해 별도의 소프트웨어 인스턴스를 제공하는 것이다.
  • 각 고객은 독립된 인프라 및 애플리케이션 인스턴스를 가지며, 다른 고객과는 완전히 격리된다.

장점

  • 보안 / 커스터마이징이 유리하다.

단점

  • 리소스 사용/ 유지보수 측면에서 높은 비용 /복잡성 초래

언제 사용할까?

  • 멀티 테넌트와 다르게 보안과 격리, 커스터마이징이 중요한 소프트웨어에 사용 할 수 있겠다.
  • 예시로, 쇼피파이는 싱글 태넌트 아키텍쳐를 사용하고 있음. 따라서 각 상점은 독립적인 인프라/리소스를 사용하여 운영되고 관리되어 상점들간의 완전한 격리를 제공한다.
  • 왜 쇼피파이는 싱글 태넌트를 채택했을까?
    • 고객이 배포한 각 상점들의 보안을 유지할 수 있다.
    • 각 상점들이 독립적으로 운영/커스터마이징 될 수 있다.

참고