다중 테넌트란? | 다중 테넌트 아키텍처

다중 테넌트는 여러 회사가 동일한 물리적 서버에 데이터를 저장하는 경우와 같이 여러 클라우드 고객이 동일한 컴퓨팅 리소스에 액세스하는 경우입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • 다중 테넌트란 무엇이며 어떻게 클라우드 컴퓨팅이 가능해지는지 이해하기
  • 다중 테넌트의 이점과 위험 살펴보기
  • 다중 테넌트 아키텍처의 기술적 세부 사항을 알아보기

관련 콘텐츠


계속 알아보시겠어요?

인터넷에서 가장 인기 있는 인사이트를 한 달에 한 번 정리하는 Cloudflare의 월간 요약본 theNET를 구독하세요!

Cloudflare가 개인 데이터를 수집하고 처리하는 방법은 Cloudflare의 개인정보 취급방침을 참조하세요.

글 링크 복사

다중 테넌트란 무엇입니까?

클라우드 컴퓨팅에서 다중 테넌트는 클라우드 공급업체의 여러 고객이 동일한 컴퓨팅 리소스를 사용하고 있음을 의미합니다.클라우드 고객은 리소스를 공유하기는 하지만, 서로를 인식하지 못하며 데이터가 완전히 분리되어 있습니다.다중 테넌트는 클라우드 컴퓨팅의 중요한 구성 요소입니다. 다중 테넌트가 없으면 클라우드 서비스는 훨씬 실용성이 떨어질 것입니다.다중 테넌트 아키텍처는 IaaS, PaaS, SaaS, 컨테이너, 서버리스 컴퓨팅 등 다양한 유형의 퍼블릭 클라우드 컴퓨팅 기능입니다.

하이브리드 클라우드 다중 테넌트

다중 테넌트를 이해하려면 은행 업무 방식을 생각해 보면 됩니다. 여러 사람이 한 은행에 돈을 예치할 수 있고, 같은 곳에 예치하기는 하지만, 자산이 완전히 분리됩니다. 은행 고객은 서로 상호 작용하지 않고 다른 고객의 돈에 접근할 수 없으며 서로를 인식하지도 못합니다. 마찬가지로, 퍼블릭 클라우드 컴퓨팅에서도 클라우드 벤더의 고객은 동일한 인프라(일반적으로 동일한 서버)를 사용하면서도 데이터와 비즈니스 로직을 분리하고 안전하게 유지합니다.

다중 테넌트의 고전적인 정의는 여러 사용자 또는 테넌트에 서비스를 제공하는 단일 소프트웨어 인스턴스*였습니다. 그러나 최신 클라우드 컴퓨팅에서 다중 테넌트라는 용어는 더 넓은 의미를 가지며, 공유 소프트웨어 인스턴스 대신 공유 클라우드 인프라를 지칭합니다.

*소프트웨어 인스턴스는 랜덤 액세스 메모리(RAM)에 로드된 실행 중인 프로그램의 복사본입니다.

클라우드 컴퓨팅이란 무엇입니까?

클라우드 컴퓨팅에서 애플리케이션과 데이터는 다양한 데이터 센터의 원격 서버에서 호스팅되고 인터넷을 통해 액세스됩니다. 데이터와 애플리케이션은 개별 클라이언트 장치(예: 랩톱 또는 스마트폰) 또는 회사 사무실 내의 서버에 위치하는 대신 클라우드에 중앙 집중화됩니다.

최신의 여러 애플리케이션은 클라우드 기반이므로 예를 들어 사용자가 Facebook 계정에 액세스하고 여러 장치에서 콘텐츠를 업로드할 수 있습니다.

다중 테넌트의 이점은?

클라우드 컴퓨팅의 많은 이점은 다중 테넌트 덕분에 가능합니다. 다중 테넌트가 클라우드 컴퓨팅을 개선하는 두 가지 중요한 방법은 다음과 같습니다.

더 나은 리소스 사용: 한 테넌트에 대해 예약된 하나의 시스템은 비효율적입니다. 그 테넌트가 시스템의 컴퓨팅 성능을 모두 사용하지 않을 가능성이 크기 때문입니다.여러 테넌트 간에 시스템을 공유하면 사용 가능한 리소스의 사용이 극대화됩니다.

비용 절감: 여러 고객이 리소스를 공유함으로써 클라우드 벤더는 각 고객이 자체 전용 인프라를 필요로 하는 경우보다 훨씬 저렴한 비용으로 많은 고객에게 서비스를 제공할 수 있습니다.

다중 테넌트의 단점은?

가능한 보안 위험 및 규정 준수 문제: 일부 회사에서는 규정 요구 사항으로 인해 아무리 안전하더라도 공유 인프라 내에 데이터를 저장하지 못할 수 있습니다.또한 한 테넌트의 보안 문제 또는 손상된 데이터가 동일한 시스템의 다른 테넌트로 확산될 수 있지만, 이는 매우 드문 일이며, 클라우드 벤더가 인프라를 올바르게 구성한 경우에는 발생하지 않아야 합니다.이러한 보안 위험은 일반적으로 개별 기업에서 보안에 투자할 수 있는 것보다 클라우드 벤더가 보안에 더 많이 투자할 수 있으므로 다소 완화됩니다.

"시끄러운 이웃" 효과: 한 테넌트가 과도한 양의 컴퓨팅 성능을 사용하는 경우 다른 테넌트의 성능이 저하될 수 있습니다.다시 말하지만, 클라우드 공급업체가 인프라를 올바르게 설정한 경우에는 이러한 일이 발생하지 않아야 합니다.

Cloudflare는 클라우드 배포를 통해 기업을 어떻게 지원할까요?

Cloudflare는 모든 유형의 클라우드 배포를 사용하는 기업에서 데이터를 안전하게 유지하고 웹 자산을 빠르게 유지하도록 돕습니다.Cloudflare 제품 스택은 모든 유형의 인프라 앞에 위치하며 따라서 웹 속성이 보다 안전하고 안정적이며 빨라집니다.Cloudflare가 클라우드 배포와 통합되는 방식을 자세히 알아보려면 Cloudflare가 모든 클라우드 인프라와 함께 작동하는 방식을 참조하세요.

다중 테넌트는 어떻게 작동할까요?

여기에서는 다양한 종류의 클라우드 컴퓨팅에서 다중 테넌트를 가능하게 하는 기술 원칙에 대해 더 자세히 살펴보겠습니다.

퍼블릭 클라우드 컴퓨팅에서

여러 자동차와 자동차 소유자가 쉽게 공유할 수 있는 특별한 자동차 엔진을 상상해 보세요. 자동차 소유자마다 약간 다르게 작동하는 엔진을 필요로 합니다. 일부 자동차 소유자는 강력한 8기통 엔진을 필요로 하는 반면, 다른 자동차 소유자는 연비가 더 높은 4기통 엔진을 필요로 합니다. 이제 이 특수 엔진이 시동을 걸 때마다 자체적으로 변형되어 자동차 소유자의 요구를 더 잘 충족할 수 있다고 상상해 보세요.

이는 많은 퍼블릭 클라우드 공급자가 다중 테넌트를 구현하는 방식과 유사합니다. 대부분의 클라우드 공급자는 다중 테넌트를 공유 소프트웨어 인스턴스로 정의합니다. 클라우드 공급자는 각 테넌트에 대한 메타데이터*를 저장하고 이 데이터를 사용하여 런타임 시 각 테넌트의 요구에 맞게 소프트웨어 인스턴스를 변경합니다. 테넌트는 권한을 통해 서로 격리됩니다. 테넌트는 모두 동일한 소프트웨어 인스턴스를 공유하지만, 각각 소프트웨어를 다르게 사용하고 경험합니다.

*메타데이터는 책 뒷면에 표시된 설명과 같이 파일에 대한 정보입니다.

컨테이너 아키텍처에서

컨테이너는 애플리케이션, 시스템 라이브러리, 시스템 설정, 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 독립형 소프트웨어 번들입니다. 컨테이너 덕분에 호스팅되는 위치와 관계없이 애플리케이션이 동일하게 실행될 수 있습니다.

컨테이너는 서로 다른 사용자 공간 환경으로 분할되며 각 컨테이너는 해당 호스트 시스템의 유일한 시스템인 것처럼 실행됩니다. 컨테이너는 독립형이므로 서로 다른 클라우드 고객이 만든 여러 컨테이너를 단일 호스트 시스템에서 실행할 수 있습니다.

서버리스 컴퓨팅에서

서버리스 컴퓨팅은 하나의 모델로, 애플리케이션이 기능이라고 하는 더 작은 조각으로 분할되고 각 기능이 다른 기능과 별도로 필요할 때만 실행됩니다.(이 클라우드 컴퓨팅 모델은 서비스형 기능(FaaS))이라고도 합니다.)

이름에서 알 수 있듯이 서버리스 기능은 전용 서버에서 실행되는 것이 아니라 서버리스 공급자의 인프라에서 사용 가능한 모든 시스템에서 실행됩니다. 회사에는 별도의 물리적 서버가 할당되어 있지 않으므로 서버리스 공급자는 지정된 시간에 여러 고객의 코드를 단일 서버에서 실행하는 경우가 많습니다. 이는 다중 테넌트의 또 다른 예입니다.

일부 서버리스 플랫폼에서는 서버리스 코드를 실행하기 위해 Node.js를 사용합니다.Cloudflare 서버리스 플랫폼인 Cloudflare Workers는 각 기능이 자체 샌드박스 또는 별도의 환경에서 실행되는 Chrome V8을 사용합니다.따라서 동일한 인프라에서 실행되는 경우에도 서버리스 기능은 서로 완전히 분리됩니다.

프라이빗 클라우드 컴퓨팅에서

프라이빗 클라우드 컴퓨팅은 퍼블릭 클라우드 컴퓨팅과 거의 동일한 방식으로 다중 테넌트 아키텍처를 사용합니다.차이점은 다른 테넌트가 외부 조직에서 온 것이 아니라는 것입니다.퍼블릭 클라우드 컴퓨팅에서 회사 A는 회사 B와 인프라를 공유합니다. 프라이빗 클라우드 컴퓨팅에서는 회사 A 내의 여러 팀이 서로 인프라를 공유합니다.