---
id: 테넌시 선택 20260305
created: 2026-03-05 13:18
tags:
  - tenancy
  - cluster
  - ecs
  - ecr
  - saas
---
[[싱글 테넌시(Single-tenancy)]] vs [[멀티 테넌시(Multi-tenancy)]]
: 결정적인 차이는 **물리적으로 격리되어있는지** 여부

### [[멀티 테넌시(Multi-tenancy)]]
멀티 테넌시를 선택할 때 가장 중요한 것은 **인프라를 공유한다**는 것입니다.
순수 멀티 테넌시는 하나의 어플리케이션 인스턴스와 하나의 DB를 여러 고객들이 공유해서 사용합니다.

> [!note] 설정값, 환경변수 등의 차이만으로 고객간의 구분을 하고 모든 인프라는 하나를 공유해서 사용

고객간의 요구사항 편차가 적을 경우에는 효율이 좋음
편차가 클 경우 대응이 매우 어렵거나 거의 불가능에 가깝습니다. (고객 수가 적으면 되긴 함)

**SaaS 솔루션:** 완전한 멀티 테넌시 (공통 기능 + DB 설정 기반 커스텀)
즉 SaaS 솔루션은 모든 고객들이 하나의 인프라를 공유해서 사용하는 경우를 의미합니다.


> [!warning] 이렇게 되면 고객간의 요구사항 편차가 클 경우 대응이 불가능함

이 문제를 해결하기 위해 하이브리드 방식을 채택합니다.
**"인프라는 공유하되 애플리케이션은 격리하는 방식"** 같은 경우입니다.
이를 **가상 싱글 테넌시(Virtual Single Tenancy)** 또는 **격리형 멀티 테넌시**라고 부르기도 합니다.

격리형 테넌시 형태로 엔터프라이즈 솔루션 형태로 구성을 해야함.
**엔터프라이즈 솔루션:** 고객별 컨테이너/네임스페이스 분리 + 이미지 커스텀

테넌시별로 별도의 컨테이너 이미지를 확보해야함
코드레벨에서 독립되어지기 때문에 클라우드형 싱글테넌시 구조와 유사한 형태의 서비스가 가능

### 엔터프라이즈 솔루션의 구조도
(고객사별 독립된 어플리케이션 인스턴스 사용 + 하나의 DB 인프라 사용)
![[Pasted image 20260305140832.png]]
VPC레벨까지도 격리를 원하는 고객사의 경우에는 위의 이미지대로 별도의 ECS Cluster를 구성
그정도까지 아니면 하나의 공용 ECS Cluster에 [[태스크(Task)]]만 별도로 추가

## 🔗 관련 노트
- [[클러스터(Cluster)]]
- [[ECR(Elastic Container Registry)]]