멀티테넌시
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
멀티테넌시는 여러 고객(테넌트)이 동일한 하드웨어 및 소프트웨어 리소스를 공유하는 소프트웨어 아키텍처이다. 시분할 시스템, 호스팅 애플리케이션, 웹 애플리케이션에서 진화했으며, 비용 절감, 데이터 집계 및 릴리스 관리 단순화 등의 장점이 있다. 가상화와는 다르게, 동일한 애플리케이션 인스턴스를 공유하며, 커스터마이징, 서비스 품질, 워크로드 그룹화 등을 고려해야 한다. 가상화 기술을 활용하여 멀티테넌시를 구현할 수 있다.
더 읽어볼만한 페이지
- 서비스 지향 - 서비스 지향 아키텍처
서비스 지향 아키텍처(SOA)는 기능들을 독립적인 서비스 단위로 분리하여 느슨하게 결합함으로써, 네트워크를 통해 접근 가능한 서비스를 재사용하고 결합하여 응용 프로그램을 구축하는 소프트웨어 아키텍처이다. - 서비스 지향 - 마이크로소프트 비즈토크 서버
마이크로소프트 비즈토크 서버는 다양한 시스템 통합 및 비즈니스 프로세스 자동화를 지원하는 서버 소프트웨어로, 여러 버전이 출시되었으며 어댑터, 가속기 등의 기능을 제공하고 대한민국 여러 산업 분야에서 활용되었으나 클라우드 기반 솔루션의 등장으로 입지가 변화하고 있다. - 소프트웨어 구조 - Ajax
Ajax는 웹 페이지 전체를 새로고침하지 않고 비동기적으로 서버와 통신하여 웹 애플리케이션의 일부를 업데이트하는 웹 개발 기술로, XMLHttpRequest 객체의 등장으로 가능해졌으며 HTML, CSS, DOM, JavaScript, JSON 등의 기술을 통합하여 동적인 사용자 인터페이스를 구현한다. - 소프트웨어 구조 - 모델-뷰-컨트롤러
모델-뷰-컨트롤러(MVC)는 소프트웨어 디자인 패턴으로, 응용 프로그램을 모델, 뷰, 컨트롤러 세 가지 요소로 분리하여 개발하며, 사용자 인터페이스 개발에서 데이터, 표현 방식, 사용자 입력 처리를 분리해 유지보수성과 확장성을 높이는 데 기여한다.
멀티테넌시 | |
---|---|
개요 | |
![]() | |
일반적인 설명 | |
유형 | 소프트웨어 아키텍처 패턴 |
설명 | 소프트웨어의 단일 인스턴스가 여러 테넌트에게 서비스를 제공함 |
상세 정보 | |
장점 | 효율적인 자원 활용 중앙 집중식 관리 및 업데이트 확장성 및 유연성 |
단점 | 보안 및 개인 정보 보호 문제 데이터 격리 문제 성능 문제 사용자 정의 제한 |
클라우드 컴퓨팅과의 관계 | |
중요성 | 클라우드 규모를 달성하는 유일한 방법으로 여겨짐 |
표준 | 클라우드 환경에서 표준으로 사용됨 |
2. 역사
멀티테넌트 애플리케이션은 시분할, 호스팅 애플리케이션, 웹 애플리케이션의 세 가지 유형의 서비스에서 진화했으며, 이들의 특징을 결합한다.
2. 1. 시분할 시스템
1960년대부터 기업들은 컴퓨팅 비용을 절감하기 위해 메인프레임 컴퓨터(시분할 시스템)의 공간과 처리 능력을 임대했다.[4] 이들은 종종 기존 애플리케이션을 재사용했는데, 로그인 화면에 고객 계정 ID를 지정하는 별도의 입력 필드를 추가하는 방식이었다. 메인프레임의 회계 담당자는 이 ID를 기반으로 CPU, 메모리, 디스크/테이프 사용량 등 실제로 발생한 비용을 개별 고객에게 청구할 수 있었다.[4]2. 2. 호스팅 애플리케이션
1990년대부터 전통적인 애플리케이션 서비스 제공자(ASP)는 고객을 대신하여 (당시에 존재하던) 애플리케이션을 호스팅했다. 기본 애플리케이션의 제한 사항에 따라 ASP는 애플리케이션을 별도의 머신에서 호스팅하거나(애플리케이션의 여러 인스턴스를 동일한 물리적 머신에서 실행할 수 없는 경우), 별도의 프로세스로 호스팅해야 했다. 멀티테넌트 애플리케이션은 운영 비용을 절감하면서 유사한 서비스를 가능하게 하는 더 성숙한 아키텍처를 나타낸다.[4]2. 3. 웹 애플리케이션
핫메일과 같이 모든 고객에게 단일 애플리케이션 인스턴스를 제공하는 소비자 지향 웹 애플리케이션이 개발되었다.[4] 멀티테넌트 애플리케이션은 이 모델에서 자연스럽게 진화하여, 동일한 클라이언트 조직 내의 사용자 그룹에 추가적인 사용자 지정을 제공한다.[4]3. 가상화와의 차이점
멀티테넌시 환경에서 여러 고객은 동일한 운영 체제, 동일한 하드웨어, 동일한 데이터 저장 메커니즘에서 실행되는 동일한 애플리케이션을 공유한다. 고객 간의 구분은 애플리케이션 설계 중에 이루어지므로 고객은 서로의 데이터를 보거나 공유할 수 없다. 이는 각 고객의 애플리케이션이 별도의 가상 머신에서 실행되는 것처럼 보이도록 하는 구성 요소가 변환되는 가상화와 비교된다.[15][5]
4. 경제적 측면
멀티테넌시는 IT 자원을 효율적으로 사용하여 비용 절감을 이끌어 낼 수 있다.[7] 여러 고객이 하나의 애플리케이션 인스턴스를 공유함으로써 메모리 및 처리 오버헤드를 줄이고, 운영 체제나 데이터베이스 관리 시스템과 같은 소프트웨어 라이선스 비용도 절감할 수 있다.
하지만, 단일 인스턴스의 확장성 문제가 발생할 수 있다. 더 빠른 CPU, 더 많은 메모리 등 고성능 하드웨어가 필요하며, 이는 여러 서버에 부하를 분산하는 것보다 비용이 더 많이 들 수 있다. 또한, 멀티테넌트 시스템[8] 개발은 복잡하고, 보안 테스트도 더 엄격하게 진행해야 한다.
데이터 집계 및 데이터 마이닝의 용이성은 멀티테넌시의 또 다른 이점이다. 모든 고객 데이터가 단일 데이터베이스 스키마에 저장되기 때문에, 벤더는 고객 전체 데이터를 대상으로 쿼리를 실행하고 추세를 파악하기 쉽다. 그러나 서비스 제공업체가 고객 정보에 접근하는 것을 막아야 하고, 운영 데이터베이스와 마이닝 데이터베이스를 분리하는 것이 일반적이기 때문에 이 주장은 다소 약화될 수 있다.
멀티테넌트 애플리케이션은 사용자 정의의 복잡성 증가, 테넌트별 메타데이터 유지 필요성 때문에 개발 노력이 더 많이 필요하다. 벡터 기반 데이터 시퀀싱, 암호화 가능 알고리즘 인프라, 가상화된 제어 인터페이스와 같은 사항들을 고려해야 한다.[9]
4. 1. 비용 절감 효과
멀티테넌시는 IT 자원을 단일 운영으로 통합하여 얻을 수 있는 기본적인 규모의 경제를 넘어선 비용 절감을 가능하게 한다.[7] 애플리케이션 인스턴스는 일반적으로 일정량의 메모리 및 처리 오버헤드를 발생시키는데, 특히 고객 수가 많거나 고객이 소규모일 경우 상당할 수 있다. 멀티테넌시는 이러한 오버헤드를 여러 고객에게 분산시켜 줄인다. 추가적인 비용 절감은 기본 소프트웨어(운영 체제 및 데이터베이스 관리 시스템 등)의 라이선스 비용에서 발생할 수 있다. 간단히 말해, 모든 것을 단일 소프트웨어 인스턴스에서 실행할 수 있다면, 하나의 소프트웨어 라이선스만 구입하면 된다.이러한 비용 절감은 수요가 증가함에 따라 단일 인스턴스의 확장의 어려움에 의해 가려질 수 있다. 단일 서버에서 인스턴스의 성능을 높이려면 더 빠른 CPU, 더 많은 메모리, 더 빠른 디스크 시스템과 같은 더 빠른 하드웨어를 구입해야 하며, 일반적으로 이러한 비용은 대략 동일한 총 용량을 가진 여러 서버 간에 부하가 분산되는 경우보다 더 빠르게 증가한다. 또한, 멀티테넌트 시스템[8]의 개발은 더 복잡하며, 여러 고객의 데이터가 함께 사용되기 때문에 보안 테스트가 더욱 엄격하다.
4. 2. 데이터 집계 및 마이닝
멀티테넌시를 활용하는 가장 설득력 있는 이유 중 하나는 벤더/ISV가 내재적인 데이터 집계 이점을 얻을 수 있다는 점이다. 잠재적으로 서로 다른 데이터베이스 스키마를 가진 여러 데이터 소스에서 데이터를 수집하는 대신, 모든 고객에 대한 모든 데이터가 단일 데이터베이스 스키마에 저장되기 때문이다. 따라서 고객 전체에 걸쳐 쿼리를 실행하고, 데이터를 마이닝하고, 추세를 파악하는 것이 훨씬 간단해진다. 그러나 이 이유는 과장되었을 수 있는데, 멀티테넌시의 핵심 요구 사항 중 하나가 서비스 제공업체가 고객(테넌트) 정보에 접근하는 것을 막아야 하기 때문이다. 또한, 운영 데이터베이스와 마이닝 데이터베이스를 분리하는 것이 일반적이기 때문에(일반적으로 작업 부하 특성이 다르기 때문) 이 주장은 더욱 약해진다.4. 3. 복잡성 증가
멀티테넌트 애플리케이션은 사용자 정의의 복잡성 증가, 테넌트별 메타데이터 유지 필요성 때문에 개발 노력이 더 많이 필요하다. 벡터 기반 데이터 시퀀싱, 암호화 가능 알고리즘 인프라, 가상화된 제어 인터페이스와 같은 사항들을 고려해야 한다.[9]5. 릴리즈 관리
멀티테넌시는 릴리스 관리 프로세스를 단순화하지만, 새로운 릴리스 버전을 적용할 때 위험과 영향도 커진다. 여러 테넌트가 단일 소프트웨어 인스턴스를 공유하므로, 한 테넌트를 위한 업데이트가 모든 테넌트에게 영향을 주고 다운타임을 유발할 수 있다. 또한, 새로운 릴리스의 버그나 문제가 다른 테넌트에게도 나타날 수 있으며, 릴리스 적용 시점은 여러 테넌트의 일정에 따라 제한될 수 있다.[1]
5. 1. 단순화된 배포
멀티테넌시는 릴리스 관리 프로세스를 단순화한다. 전통적인 릴리스 관리 프로세스에서는 코드와 데이터베이스 변경 사항이 포함된 패키지가 클라이언트 데스크톱 및/또는 서버 머신에 배포된다. 단일 인스턴스의 경우 고객당 하나의 서버 머신이 해당된다. 이러한 패키지는 각 개별 머신에 설치되어야 한다. 멀티테넌트 모델에서는 일반적으로 단일 서버에만 패키지를 설치하면 된다. 이는 릴리스 관리 프로세스를 크게 단순화하며, 규모는 더 이상 고객 수에 의존하지 않는다.[1]동시에, 멀티테넌시는 새로운 릴리스 버전을 적용하는 데 내재된 위험과 영향을 증가시킨다. 여러 테넌트를 서비스하는 단일 소프트웨어 인스턴스가 있기 때문에 이 인스턴스에 대한 업데이트는 업데이트가 단일 테넌트에 대해서만 요청되고 유용하더라도 모든 테넌트에 대해 다운타임을 유발할 수 있다. 또한, 새로운 릴리스를 적용하여 발생한 일부 버그 및 문제는 다른 테넌트의 애플리케이션 개인화된 보기에서 나타날 수 있다. 가능한 다운타임 때문에, 릴리스 적용 시점은 둘 이상의 테넌트의 시간 사용 일정에 따라 제한될 수 있다.[1]
5. 2. 업데이트 위험 증가
멀티테넌시는 새로운 릴리스 버전을 적용할 때 위험과 영향을 증가시킨다. 여러 테넌트를 서비스하는 단일 소프트웨어 인스턴스가 있기 때문에, 이 인스턴스에 대한 업데이트는 모든 테넌트에 대해 다운타임을 유발할 수 있다. 이는 업데이트가 단일 테넌트에 대해서만 요청되고 유용하더라도 마찬가지이다. 또한, 새로운 릴리스 적용으로 발생한 버그 및 문제는 다른 테넌트의 애플리케이션 개인화된 보기에서 나타날 수 있다. 다운타임 가능성 때문에, 릴리스 적용 시점은 둘 이상의 테넌트의 시간 사용 일정에 따라 제한될 수 있다.[1]6. 구현 시 고려 사항
멀티테넌트 아키텍처를 구현할 때는 기술적 요구사항과 비기술적 요구사항을 모두 고려해야 한다.
멀티테넌트 애플리케이션은 여러 테넌트에게 적절한 컴퓨터 보안, 강건성, 컴퓨터 성능을 제공해야 한다. 이는 멀티 인스턴스 애플리케이션의 경우 애플리케이션 아래 계층에서 제공된다.[10]
마크 브루커에 따르면, 멀티테넌트 아키텍처에서는 서로 관련이 없고 상관 관계가 없는 워크로드를 함께 그룹화해야 한다. 서로 다른 요구 사항과 패턴을 가진 다양한 워크로드를 혼합하면 각 워크로드의 패턴이 숨겨지기 때문이다. 워크로드를 그룹화하면 전체 시스템의 최고점과 평균 비율이 감소한다. 개별 워크로드는 시스템의 전체 비용 구조를 크게 증가시키지 않으면서 피크 타임에 더 많은 리소스를 활용할 수 있으며, 결과적으로 더 많은 비용 효율성을 달성하는 데 도움이 된다. 동일한 애플리케이션, 고객 또는 산업의 여러 워크로드는 단일 워크로드처럼 작동하는 경향이 있다.[10]
6. 1. 커스터마이징
멀티테넌트 애플리케이션은 일반적으로 각 대상 조직의 요구 사항을 지원하기 위해 높은 수준의 사용자 정의를 제공해야 한다. 사용자 정의는 일반적으로 다음 측면을 포함한다.- 브랜딩: 각 조직이 기업 브랜딩에 맞춰 애플리케이션의 모양과 느낌을 사용자 정의할 수 있도록 허용한다(종종 별도의 "스킨"이라고 한다).
- 워크플로우: 광범위한 잠재 고객이 사용할 워크플로우의 차이를 수용한다.
- 데이터 모델의 확장: 고객에게 애플리케이션에서 관리하는 데이터 요소를 특정 요구 사항에 맞게 사용자 정의할 수 있는 기능을 제공하기 위해 확장 가능한 데이터 모델을 지원한다.
- 접근 통제: 각 클라이언트 조직이 각 사용자에 대한 접근 권한 및 제한 사항을 독립적으로 사용자 정의할 수 있도록 허용한다.
6. 2. 서비스 품질 (QoS)
멀티테넌트 애플리케이션은 여러 테넌트에게 적절한 컴퓨터 보안, 강건성, 컴퓨터 성능을 제공해야 한다. 이는 멀티 인스턴스 애플리케이션의 경우 애플리케이션 아래 계층에서 제공된다.6. 3. 워크로드 그룹화
마크 브루커에 따르면, 멀티 테넌트 아키텍처에서는 서로 관련이 없고 상관 관계가 없는 워크로드를 함께 그룹화해야 한다. 서로 다른 요구 사항과 패턴을 가진 다양한 워크로드를 혼합하면 각 워크로드의 패턴이 숨겨지기 때문이다. 워크로드를 그룹화하면 전체 시스템의 최고점과 평균 비율이 감소한다. 개별 워크로드는 시스템의 전체 비용 구조를 크게 증가시키지 않으면서 피크 타임에 더 많은 리소스를 활용할 수 있으며, 결과적으로 더 많은 비용 효율성을 달성하는 데 도움이 된다. 동일한 애플리케이션, 고객 또는 산업의 여러 워크로드는 단일 워크로드처럼 작동하는 경향이 있다.[10]7. 가상화 기술 활용
가상화 기술을 활용하면, 여러 고객이 동일한 하드웨어와 운영 체제에서 실행되는 동일한 응용 프로그램을 공유하면서도 데이터는 서로 보거나 공유할 수 없다. 이는 응용 프로그램 설계 시 고객 간 구분이 이루어지기 때문이다. 각 고객 애플리케이션은 별도의 가상 머신에서 구동되는 것처럼 보이게 된다.[15]
아키텍처를 크게 변경하지 않고도 멀티테넌시를 구현할 수 있는데, 가상화 기술을 이용하여 하나 이상의 서버에서 여러 개의 격리된 애플리케이션 인스턴스를 호스팅하는 것이다. 가상 어플라이언스로 재포장된 애플리케이션은 ISV 호스팅, 온-프레미스, 또는 신뢰할 수 있는 타사 위치에 배포될 수 있으며, 시간이 지남에 따라 한 배포 사이트에서 다른 사이트로 마이그레이션할 수도 있다.
참조
[1]
논문
Architectural Concerns in Multi-tenant SaaS Applications
http://se2.informati[...]
SciTePress
2015-02-21
[2]
웹사이트
Defining the true meaning of cloud
https://www.zdnet.co[...]
CBS Interactive
2016-03-17
[3]
서적
Cloud Architecture Patterns: Using Microsoft amit
https://books.google[...]
O'Reilly Media, Inc.
[4]
뉴스
What Is The SaaS Architecture Maturity Model?
https://www.forbes.c[...]
Forbes
2019-11-20
[5]
뉴스
The silly debate over multitenancy
http://www.infoworld[...]
[6]
뉴스
Software as a service: The next big thing
https://www.computer[...]
ComputerWorld
2006-03-23
[7]
웹사이트
Web-to-Print Technology, Recuce Costs, Increase Sales, Integration with Salesforce and Metrix
http://www.presscent[...]
Presscentric.com
2014-01-20
[8]
웹사이트
Building SaaS App with Codeigniter MVC
http://www.series99.[...]
2016-05-05
[9]
논문
2011 IEEE 27th International Conference on Data Engineering
2011
[10]
서적
Building Multi-Tenant SaaS Architectures
O'Reilly Media
[11]
논문
Multi-Tenant Fair Share in NoSQL Data Stores
IEEE
[12]
논문
Architectural Concerns in Multi-tenant SaaS Applications
http://se2.informati[...]
SciTePress
2017-02-13
[13]
웹인용
Defining the true meaning of cloud
http://www.zdnet.com[...]
CBS Interactive
2016-03-17
[14]
서적
Cloud Architecture Patterns: Using Microsoft amit
https://books.google[...]
O'Reilly Media, Inc.
2013-07-04
[15]
뉴스
The silly debate over multitenancy
http://www.infoworld[...]
관련 사건 타임라인
( 최근 20개의 뉴스만 표기 됩니다. )
지코어, ‘에브리웨어 인퍼런스’ 배포 옵션 다양화 – 바이라인네트워크
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com