테넌시
개요
테넌시는 한 독립적인 소프트웨어 인스턴스가 사용자나 주체와 가지는 속성,아키텍처를 말한다.
쿠버네티스, 클라우드 환경에서 이 테넌시는 하나의 중요한 운영 고려 요소로 여겨진다.
이 개념을 명확히 하기 위해서는 테넌트(tenant)의 개념이 먼저 명확해야 한다.
테넌트는 일반적으로 소프트웨어나 서비스를 사용하는 개별적인 사용자 또는 그룹을 의미한다.
보통 도메인에 따라 다양하겠지만 기본적으로 테넌트를 구분짓는 기준은 접근 권한 공유 여부이다.
운영 조직을 기준으로는 팀마다 테넌트라고 할 수 있고, 고객 서비스에서는 등급이나 유형별 고객이 테넌트가 될 수 있다.
서비스, 시스템 구조에 대해 이 테넌트들이 사용하는 관계의 관점에서 아키텍쳐를 표현할 때 테넌시라고 표현하는 것이다.
멀티 테넌시
이때 테넌시는 크게 두 가지로 나뉜다.
먼저 싱글 테넌시는 사용자, 혹은 주체가 독립된 소프트웨어 인스턴스를 가지고 있는 아키텍처를 말한다.
가령 한 물리 서버를 한 기업이 사용할 수 있도록 임대를 해주는 상황은 기업을 테넌트라고 봤을 때 싱글 테넌시이다.[1]
그럼 멀티 테넌시는?
하나의 인스턴스를 여러 주체가 같이 사용할 때, 이를 두고 멀티 테넌시 아키텍쳐라고 부른다.
한 물리 서버에 여러 서비스를 구성하고 기업 내 다양한 조직이 쓴다면?
각 조직을 테넌트라고 봤을 때 이는 멀티 테넌시가 된다.
보다시피 무엇을 테넌트로 두고 보는가에 따라 아키텍처를 보는 시각이 달라진다.
다만 클라우드 환경에서 테넌트라고 하면 보통 하나의 서비스나 프로세스를 기준으로 두고 보는 경우가 많다.
가령 쿠버네티스의 한 노드에 여러 파드가 배치되어 노드의 자원을 활용하고 있을 때 이를 멀티 테넌시라고 부른다.
활용
이 개념은 크게는 두 가지 운영 고려 요소와 얽혀서 사용된다.
- 확장성, 자원 재사용성
- 멀티 테넌시는 하나의 인스턴스를 여러 테넌트가 사용하며 자원 낭비를 줄일 수 있다.
- 한편 각 테넌트의 자원이 경합하는 시끄러운 이웃(annoying neighbor) 문제가 발생할 수 있다.
- 보안, 격리
- 싱글 테넌시는 명확하게 테넌트 별로 접근하는 인스턴스를 분할하여 높은 보안 격리 수준을 달성할 수 있다.
관련 문서
EXPLAIN - 파생 문서
이름0 | related | 생성 일자 |
---|
기타 문서
Z0-연관 knowledge, Z1-트러블슈팅 Z2-디자인,설계, Z3-임시, Z5-프로젝트,아카이브, Z8,9-미분류,미완이름0 | 코드 | 타입 | 생성 일자 |
---|