본문 바로가기
1. SW 개발 & IT 트렌드

멀티테넌시 Multi-tenancy는 만능인가 ?

by soosun 2021. 1. 30.

Cloud 환경이 확산되면서, Multi-tenancy 처럼 다양한 기술들이 자주 언급되고 있다.

다만 이런 기술들이 전지전능해서 문제점이나 단점은 없는 것처럼 여겨지는 분위기는 고민할 부분인 것 같다.

내가 생각하는 몇가지 고려 사항은 다음과 같다.

  • 완벽한 아키텍처 설계 및 구현
  • 컴퓨팅 리소스에 대한 성능 로드 밸런싱
  • 장애에 대한 피해 범위와 복구
  • 비용대비 효과 검증(복잡한 개발에 추가되는 비용 등)
  • 데이타 보안에 대한 완벽한 대응 방법, 고객 설득
  • 테넌트 요구 사항에 대한 최적화 문제

 

ㅇ Google Kubernetes Engine(GKE) : 클러스터 멀티테넌시 부분에는 다음처럼 작성되어 있다.

다중 테넌트 클러스터는 '테넌트'라고 호칭되는 여러 사용자 및 작업 부하에 공유됩니다. 다중 테넌트 클러스터의 운영자는 각 테넌트를 격리하여 한 테넌트가 해킹을 당하거나 악의적인 행동을 할 때 다른 테넌트와 클러스터가 입는 피해를 최소화해야 합니다. 또한 클러스터 리소스를 테넌트 간에 공정하게 할당해야 합니다. - cloud.google.com/kubernetes-engine/docs/concepts/multitenancy-overview?hl=ko

 

ㅇ 멀티인스턴스, 가상화와의 구별

멀티테넌시는 개개의 소프트웨어 인스턴스들이 각기 다른 테넌트를 위해 운영되는 멀티인스턴스 구조와는 상반된다. 멀티테넌시 환경에서 복수의 고객들은 동일한 데이터 스토리지 매커니즘과 함께 동일한 하드웨어의 동일한 운영 체제에서 실행되는 동일한 응용 프로그램을 공유한다. 고객 간의 구별은 응용 프로그램 설계 중에 수행되므로 고객들은 각 고객의 데이터를 보거나 공유하지 못한다. 이는 구성 요소가 이양됨으로써 각 고객 애플리케이션이 별도의 가상 머신에서 구동되는 것처럼 보이게 하는 가상화와 비교된다. - wikipedia.org

 

멀티 테넌시(Multi-tenancy) 는 ?

멀티 테넌시(Multi-tenancy)는 소프트웨어의 단일 인스턴스가 서버에서 실행되어 여러 클라이언트 조직 (테넌트)에 서비스를 제공하는 소프트웨어 아키텍처의 원칙을 의미합니다. 멀티 테넌시(Multi-tenancy)는 서로 다른 클라이언트 조직에 대해 별도의 소프트웨어 인스턴스 (또는 하드웨어 시스템)가 설정된 다중 인스턴스 아키텍처와 대조됩니다. 멀티 테넌시(Multi-tenancy) 아키텍처에서 소프트웨어 애플리케이션은 데이터와 구성을 가상으로 분할하도록 설계되었으며 각 클라이언트 조직은 사용자 정의 된 가상 애플리케이션 인스턴스로 작업합니다. 멀티 테넌시(Multi-tenancy) 환경에서 여러 고객은 동일한 데이터 저장 메커니즘을 사용하여 동일한 운영 체제, 동일한 하드웨어에서 실행되는 동일한 애플리케이션을 공유합니다. 고객 간의 구별은 애플리케이션 설계 중에 이루어 지므로 고객은 서로의 데이터를 공유하거나 볼 수 없습니다. 이를 구성 요소가 추상화 된 가상화 와 비교 하여 각 고객 애플리케이션이 별도의 물리적 시스템에서 실행되는 것처럼 보이게합니다.

 

ㅇ Multi-tenancy 사용시 고민해야할 부분들에 대해 몇가지 글을 찾아보았다.

vladmihalcea.com/database-multitenancy/

 

A beginner's guide to database multitenancy - Vlad Mihalcea

Learn various multitetancy strategies when using a relational database system like catalog, schema or table-based tenant isolation patterns.

vladmihalcea.com

cloud.google.com/kubernetes-engine/docs/best-practices/enterprise-multitenancy?hl=ko

 

기업 멀티테넌시 권장사항  |  Kubernetes Engine 문서  |  Google Cloud

Google Kubernetes Engine(GKE)의 멀티테넌시는 테넌트 간에 공유되는 하나 이상의 클러스터를 의미합니다. Kubernetes에서 테넌트는 다음 중 하나로 정의할 수 있습니다. 하나 이상의 워크로드 개발 및 운

cloud.google.com

pasupuletipradeepkumar.wordpress.com/2015/01/15/multi-tenancy-and-hadoop/

 

Multi-tenancy and Hadoop

in a clustered computing environment like Hadoop, one has to deal with multi-tenancy at a data (filesystem) level, a workload (jobs and tasks) level, and a systems (node and host) level.In this pos…

pasupuletipradeepkumar.wordpress.com

댓글