클라우드 컴퓨팅과 SaaS에 대한 관심이 있다면, 멀티테넌시 개념을 이해하는 것이 아키텍처를 깊이 있게 파악하는 데 큰 도움이 될 것입니다.
데이터 공유가 보편화됨에 따라, 멀티테넌시는 클라우드 컴퓨팅 환경에서 빼놓을 수 없는 중요한 요소로 자리 잡았습니다. 수많은 클라우드 서비스 제공업체들이 사용자들에게 멀티테넌시 기반의 서비스를 제공하고 있으며, 이 아키텍처는 클라우드 기반의 작업들이 효율적으로 분산되도록 지원합니다.
멀티테넌시에 대한 자세한 논의를 시작하기 전에, 먼저 클라우드 컴퓨팅에 대한 간략한 개요부터 살펴보겠습니다.
클라우드 컴퓨팅이란 무엇인가?
클라우드 컴퓨팅이란 사용자가 필요에 따라 인터넷을 통해 컴퓨터 자원, 저장 공간, 컴퓨팅 파워 등의 IT 리소스를 유연하게 이용할 수 있도록 지원하는 기술입니다. 이는 사용한 만큼 비용을 지불하는 종량제 서비스 형태로 제공되어, 물리적인 데이터 센터를 직접 구매하고 유지 관리해야 하는 번거로움을 줄여줍니다.
오늘날, 다양한 종류의 기업들이 개발 및 테스트 환경 구축, 이메일 서비스, 데이터 백업, 분석 작업, 재해 복구 등 다양한 목적으로 클라우드 컴퓨팅을 적극적으로 활용하고 있습니다.
클라우드 컴퓨팅에서의 멀티테넌시
멀티테넌시를 간단하게 정의하자면, 여러 ‘세입자(tenant)’가 하나의 환경을 공유하는 것을 의미합니다. 클라우드 컴퓨팅에서는 여러 고객 또는 최종 사용자들이 퍼블릭 또는 프라이빗 클라우드 솔루션의 IT 리소스를 공유하는 아키텍처를 말합니다. 하지만 각 세입자의 데이터는 다른 세입자로부터 철저히 격리되어 보이지 않으므로, 데이터 프라이버시에 대한 걱정은 하지 않아도 됩니다.
이러한 시스템에서 각 세입자 또는 고객은 데이터를 저장하고 처리하기 위한 독립적인 공간을 할당받습니다. 멀티테넌트 클라우드 네트워크의 각 부분은 사용자가 격리된 데이터에 접근하기 전에 복잡한 접근 권한 처리를 거쳐야 합니다.
다시 말해, 서비스 공급자로부터 허가를 받은 사용자만이 자신의 데이터에 접근할 수 있으며, 다른 세입자는 해당 데이터에 접근할 수 없습니다.
일반적으로 프라이빗 클라우드 환경에서는 동일한 조직에 속한 개인 또는 그룹들이 세입자가 됩니다. 반면에 퍼블릭 클라우드 서비스 공급자의 경우에는 서로 다른 조직이 서버 공간을 공유하는 세입자가 될 수 있습니다.
대부분의 퍼블릭 클라우드 솔루션 제공업체들이 이러한 모델을 따르는 이유는, 단일 인스턴스 서버를 운영하는 것이 비용 효율적이고 업데이트를 간소화하기에 유리하기 때문입니다.
클라우드 컴퓨팅에서 멀티테넌시가 작동하는 방식
클라우드 컴퓨팅 멀티테넌시는 여러 환경에서 각기 다르게 작동합니다.
#1. 퍼블릭 클라우드
대다수의 서비스 제공업체에서 멀티테넌시는 소프트웨어 인스턴스를 공유하는 방식으로 이루어집니다. 각 세입자의 메타데이터는 런타임 시 사용을 위해 저장되며, 이를 통해 소프트웨어 인스턴스를 변경할 수 있습니다. 사용자는 각자에게 할당된 데이터에만 접근할 수 있도록 권한을 부여받으며, 이는 애플리케이션 인스턴스를 공유하더라도 서로 다른 사용자 경험을 제공합니다.
#2. 프라이빗 클라우드
프라이빗 클라우드 멀티테넌시는 퍼블릭 클라우드 컴퓨팅과 매우 유사한 방식으로 동작합니다. 유일한 차이점은 서로 다른 세입자들이 모두 동일한 조직에 속해 있다는 점입니다. 프라이빗 클라우드 플랫폼에서는 동일한 조직 내 여러 팀들이 자원을 공유합니다.
#3. 컨테이너 아키텍처
컨테이너는 애플리케이션과 시스템 라이브러리, 애플리케이션 실행에 필요한 다른 모든 구성 요소를 독립적으로 묶은 번들입니다. 컨테이너를 사용하면 애플리케이션은 호스팅 위치에 관계없이 동일한 방식으로 실행됩니다.
여러 세입자를 처리하기 위해 다수의 컨테이너가 생성되며, 이를 통해 여러 사용자가 동일한 호스트 시스템에서 애플리케이션을 실행할 수 있습니다.
멀티테넌트 클라우드 대 싱글테넌트 클라우드
클라우드 기반 SaaS 서비스에는 사용자를 위한 두 가지 주요 모델, 즉 싱글테넌트 모델과 멀티테넌트 모델이 존재합니다. 이 두 모델의 가장 큰 차이점은 사용자의 접근 방식에 있습니다.
싱글테넌트 클라우드 서비스에서는 모든 고객에게 개별 인프라에서 실행되는 고유한 소프트웨어 인스턴스가 제공됩니다. 반면 멀티테넌시 클라우드 컴퓨팅에서는 고객들이 공유 인프라를 활용하여 SaaS 솔루션에 온디맨드 방식으로 접근하게 됩니다.
멀티테넌시 클라우드의 특징
데이터 프라이버시
멀티테넌트 클라우드 서비스 공급자들은 데이터 프라이버시를 보장하기 위한 최적의 관행을 구현합니다. 이러한 노력 덕분에 한 세입자는 다른 세입자의 데이터에 접근할 수 없도록 철저히 차단됩니다.
보안
클라우드에 저장된 데이터는 사이버 공격에 취약할 수밖에 없습니다. 특히 멀티테넌시 환경에서는 하나의 공격으로 인해 수많은 세입자들의 데이터가 유출될 위험이 있습니다. 이러한 이유로 서비스 공급자들은 강력하고 최신 보안 조치를 구현하여 데이터를 보호합니다.
데이터 백업
예측하기 어려운 다양한 상황으로 인해 데이터 손실이 발생할 수 있기 때문에, 클라우드 서비스 공급자는 신속한 데이터 복구를 위해 모든 세입자의 데이터를 정기적으로 백업합니다.
사용 격리
특정 세입자가 애플리케이션을 과도하게 사용하더라도, 다른 세입자의 소프트웨어 성능에는 영향을 미치지 않도록 격리되어 있습니다.
확장성
대부분의 멀티테넌트 플랫폼은 늘어나는 세입자들의 요구 사항을 수용할 수 있도록 뛰어난 확장성을 갖추고 있습니다.
애플리케이션 업그레이드 기능
멀티테넌트 플랫폼에는 새로운 기능 추가와 버그 수정이 지속적으로 필요하므로, 시스템 업그레이드는 중요한 관리 요소 중 하나입니다.
측정 사용량 및 요금
멀티테넌트 클라우드를 사용하는 것은 필요에 따라 자원을 활용하고, 사용한 만큼만 비용을 지불하는 종량제 방식을 의미합니다.
가상화 대 멀티테넌시
사람들은 종종 멀티테넌시를 가상화와 혼동하기도 합니다. 하지만 이 둘은 엄연히 다른 개념입니다. 멀티테넌시에서는 여러 고객이 동일한 환경 또는 하드웨어 내에서 동일한 애플리케이션을 공유합니다.
반면 가상화의 경우에는 서버의 여러 가상 복사본이 하나의 물리적 서버에서 호스팅됩니다. 각 애플리케이션은 운영 체제를 갖춘 별도의 가상 머신(VM)에서 실행됩니다.
SaaS 애플리케이션 설계를 위한 멀티테넌시의 중요성
SaaS 애플리케이션을 개발하는 과정에서, 어떤 테넌시 모델을 선택할지는 중요한 결정 사항입니다. 제공해야 하는 리소스의 양과 애플리케이션이 처리할 수 있는 운영 복잡성을 고려하여 싱글테넌트 모델 또는 멀티테넌트 모델 중 하나를 선택해야 합니다.
SaaS용 멀티테넌트 아키텍처를 사용하면 벤더는 소프트웨어를 한 번만 업데이트하여 모든 세입자에게 서비스를 제공할 수 있습니다. 단일 데이터베이스 인스턴스에서 하나의 애플리케이션 인스턴스를 실행하여 여러 고객에게 동시에 액세스를 제공할 수 있습니다. 이 경우 각 사용자의 데이터는 다른 사용자에게 보이지 않도록 안전하게 보호됩니다.
멀티테넌트 SaaS 제공업체는 중소기업(SMB)부터 대기업까지 모든 규모의 고객에게 서비스를 제공할 수 있습니다. 또한 현재의 비즈니스 요구 사항에 따라 리소스 사용량을 유연하게 확장 또는 축소할 수 있으므로 고객에게 높은 확장성을 제공합니다.
멀티테넌시는 IT 자원의 효율적인 사용을 보장하는 데에도 기여합니다. 관리에 필요한 초기 인프라 조달 및 리소스가 절감되기 때문입니다. 또한 이 모델은 공급업체와 고객 모두 비용을 절감하는 데 도움을 주어, 보다 많은 고객 기반을 확보하는 데 긍정적인 영향을 미칩니다.
멀티테넌시 컴퓨팅 애플리케이션
#1. ADP
ADP DataCloud는 클라우드 기반 비즈니스 데이터 분석 소프트웨어입니다. 이는 HR, 급여, 시간 및 비용 관리, 인력 출석, HR 아웃소싱, 기업 규정 준수 등 다양한 비즈니스 분야에 적용되므로, 멀티테넌시 클라우드 소프트웨어의 대표적인 예시로 꼽을 수 있습니다.
다양한 세입자 또는 클라우드 앱 사용자는 각자의 내부 비즈니스 요구 사항에 맞게 앱과 관련 정책을 맞춤화하여 사용할 수 있습니다.
#2. FreshBooks
회계 및 부기 분야의 선두 클라우드 앱인 FreshBooks 역시 멀티테넌시 모델을 기반으로 SaaS 서비스를 제공하고 있습니다. 이 도구는 모든 규모의 비즈니스 회계 부서를 위한 10가지 이상의 다양한 기능들을 제공합니다.
고객은 비즈니스 요구에 따라 필요한 기능을 선택하고, 사용한 서비스에 대해서만 비용을 지불할 수 있습니다. 또한 비즈니스 브랜딩에 맞춰 애플리케이션을 맞춤 설정할 수도 있는데, 멀티테넌시 클라우드 컴퓨팅은 이처럼 광범위한 맞춤 설정을 가능하게 합니다.
#3. Zoho
Zoho CRM 및 Workplace 역시 클라우드에서 멀티테넌시 모델을 따르고 있습니다. Zoho는 기업 운영을 간소화할 수 있는 40개 이상의 다양한 비즈니스 애플리케이션을 제공합니다. Zoho Assist, Zoho CRM 등 개별 도구를 사용하거나 Zoho One과 같은 전체 번들에 가입하여 이용할 수 있습니다.
#4. Kubernetes
Kubernetes 커뮤니티에서는 멀티테넌트 프로젝트가 빠르게 증가하고 있습니다. Kubernetes의 멀티테넌시 기능을 활용하면 여러 팀이 각자의 요구 사항에 따라 클러스터를 공유할 수 있습니다.
이러한 모델은 관리 작업을 단순화하고 비용을 절감하는 데 도움을 줍니다. 멀티테넌시는 클러스터 공유와 다중 클러스터의 두 가지 방식으로 구현될 수 있습니다.
멀티테넌시 컴퓨팅: 단점
- 규제 및 규정 준수 문제로 인해, 많은 조직들이 멀티테넌트 클라우드 플랫폼에 데이터를 저장하는 것을 꺼릴 수 있습니다.
- 인프라 설정이 제대로 이루어지지 않은 경우, 특정 세입자의 과도한 자원 사용이 다른 세입자의 성능에 부정적인 영향을 미칠 수 있습니다. 이러한 현상을 종종 ‘시끄러운 이웃’ 효과라고 부릅니다.
- 데이터베이스 유지 관리 및 코드베이스와 관련하여, 하나의 애플리케이션 인스턴스에서 여러 세입자를 서비스하면 이러한 작업이 훨씬 더 복잡해집니다.
- 멀티테넌트 환경에서 데이터를 백업하고 복원하는 작업은 상당히 복잡할 수 있습니다. 따라서 모든 공급업체가 신뢰할 수 있는 복원 서비스를 제공하는 것은 아닙니다.
- 멀티테넌시 모델에서는 세입자들이 사용자 지정 옵션이 제한적이며, 데이터 품질에 대한 통제력이 낮아질 수 있습니다.
- 시스템 전체 재설정이 필요한 문제는 환경 내 모든 세입자들에게 영향을 미칠 수 있다는 단점이 있습니다.
멀티테넌시 컴퓨팅의 미래
멀티테넌시는 현대 애플리케이션의 미래를 이끌어갈 중요한 기술입니다. 앞으로 우리는 더욱 많은 멀티테넌트 애플리케이션이 가상 환경에서 실행되고, 멀티테넌트 하드웨어를 활용하는 모습을 볼 수 있을 것입니다.
점차적으로 싱글테넌트 애플리케이션의 수는 줄어들고, 그 사용은 온프레미스 데이터 센터 환경으로 제한될 것으로 예상됩니다.
멀티테넌시와 관련된 보안 문제를 해결함으로써, 클라우드 솔루션 공급업체들은 더 많은 사용자들이 그들의 플랫폼을 선택하도록 유도할 수 있을 것입니다.
멀티테넌시: 학습 리소스
Windows Azure에서 클라우드용 멀티테넌트 애플리케이션 개발
이 책은 미래의 확장성 요구 사항을 충족하는 멀티테넌트 애플리케이션을 구축하는 방법에 대한 지식을 제공합니다. 멀티테넌트 애플리케이션 구현을 위한 모범 사례를 소개하는 것 외에도, SaaS 애플리케이션의 확장성, 보안, 가용성 및 탄력성 등에 대해서도 자세히 설명합니다.
이 책은 Windows 시스템에서 작업하는 개발자, 설계자, IT 전문가들에게 특히 유용할 것입니다.
멀티테넌트 아키텍처의 발전
이 책을 통해 멀티테넌시 아키텍처 또는 모델의 발전에 대한 깊이 있는 이해를 얻을 수 있습니다. 또한 멀티테넌트 애플리케이션을 위한 데이터 모델링 및 데이터 보안에 대한 상세한 내용도 다루고 있습니다.
이 책은 데이터베이스 수준의 멀티테넌시, 세분화된 데이터 접근 제어, 그리고 수직적 확장성을 갖춘 테이블을 학습하는 데 큰 도움이 될 것입니다.
저자의 메모
오늘날 조직들은 싱글테넌시 클라우드와 멀티테넌시 클라우드의 장점을 지속적으로 활용하려고 노력하고 있습니다. 심지어 하이브리드 테넌시나 멀티클라우드 테넌시를 선택하는 경우도 있습니다.
하지만 전반적인 추세는 멀티테넌시 클라우드 컴퓨팅이 다른 모델들에 비해 더욱 많은 인기를 얻고 있음을 보여줍니다. 무한한 확장성과 비용 효율적인 가격 모델을 제공하므로, 온프레미스 환경에서 클라우드 서비스로 전환하는 기업들에게 이상적인 선택이 될 것입니다.
결론
멀티테넌시는 다른 사용자의 개인 정보와 보안을 침해하지 않으면서 많은 사용자와 클라우드 컴퓨팅 자원을 공유하기 위한 보편적인 모델로 자리 잡았습니다.
본문에서는 클라우드 컴퓨팅에서 멀티테넌시의 모든 중요한 측면에 대해 논의했습니다. 위에 제시된 학습 리소스를 통해 이 주제에 대해 더 자세히 알아볼 수 있습니다. 하이브리드 클라우드 컴퓨팅에 대한 정보를 얻는 데에도 관심을 가질 수 있을 것입니다.