핵심 데이터플랫폼Scale 플랜(테넌트 레지스트리)

멀티 테넌트 SaaS 백엔드

하나의 클러스터에서 많은 고객을 서비스하며, ACL로 각 고객을 자기 키 안에 가두고, 누가 어디에 속하는지 테넌트 레지스트리에 기록합니다.

서버당 테넌트
256
격리를 위한 키 패턴
ACL
사용자와 할당량 기록
테넌트별
단계 1 / 5
테넌트 등록

ID, 표시 이름, 할당량 값을 테넌트와 함께 기록합니다.

예시 세션playing
# 테넌트 등록
hotkv> TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
OK

실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.

문제

고객마다 캐시나 데이터 저장소를 하나씩 운영하면 비용이 많이 들고 운영도 고통스럽습니다. 하지만 하나를 공유하려면 고객 간의 강력한 격리와 어떤 사용자가 어떤 고객에 속하는지에 대한 기록이 필요합니다.

HotKV의 해결 방식

키 패턴이 있는 ACL 사용자가 각 테넌트의 애플리케이션을 자기 키 프리픽스 안에 가둡니다. 테넌트 레지스트리는 어떤 사용자가 어떤 테넌트에 속하는지를 할당량 값과 함께 기록합니다. 레지스트리는 클러스터의 모든 노드에서 동일합니다.

단계별 설명

명령 하나하나, 무슨 일이 일어나는가

  1. 01

    테넌트 등록

    ID, 표시 이름, 할당량 값을 테넌트와 함께 기록합니다.

    TENANT.CREATE acme "Acme Corp" MAX_MEMORY 1073741824 MAX_KEYS 1000000
  2. 02

    사용자 제한

    ACL 사용자는 acme: 아래의 키만 다룰 수 있고 위험한 명령은 실행할 수 없습니다.

    ACL SETUSER acme-app on >s3cret ~acme:* +@all -@dangerous
  3. 03

    사용자를 테넌트에 연결

    레지스트리가 어떤 사용자가 어떤 테넌트에 속하는지 기록합니다.

    TENANT.BIND acme acme-app
  4. 04

    격리 실제 동작

    acme의 앱은 자기 키를 읽습니다. globex의 키를 읽으려 하면 ACL이 거부합니다.

    GET globex:billing:plan
  5. 05

    테넌트 기록 읽기

    테넌트에 기록된 할당량 값입니다. 이번 릴리스에서는 사용량 카운터가 클라이언트 트래픽으로 채워지지 않으므로 0으로 표시됩니다.

    TENANT.STATS acme
적용 분야

실제 시나리오

B2B SaaS

각 고객의 캐시와 세션 데이터는 공유 클러스터에서 자체 프리픽스 아래에 있으며 ACL로 격리됩니다.

에이전시와 리셀러

클라이언트 프로젝트는 자체 사용자를 가진 테넌트이므로 클라이언트별로 접근 권한을 부여하고 회수할 수 있습니다.

내장 기능

제공되는 기능

키 패턴 격리

키 프리픽스와 명령 집합으로 제한된 ACL 사용자입니다.

ACL SETUSER

테넌트 레지스트리

이름, 상태, 할당량 값, 연결된 사용자를 가진 테넌트로, 모든 노드에서 동일합니다.

TENANT.CREATETENANT.BIND

테넌트 기록

각 테넌트의 이름, 상태, 할당량 값, 연결된 사용자입니다.

TENANT.INFOTENANT.STATS

테넌트 차단

테넌트의 ACL 사용자를 비활성화합니다.

ACL SETUSER off

자주 묻는 질문

할당량 값이 강제됩니까?

아닙니다. 할당량 값은 기록되고 TENANT.STATS에 표시되지만 HotKV는 명령에 이를 강제하지 않으며, 이번 릴리스에서는 사용량 카운터가 클라이언트 트래픽으로 채워지지 않습니다. 격리는 ACL 규칙으로 이뤄집니다.

테넌트를 일시 중지하면 차단됩니까?

TENANT.SUSPEND는 운영 도구를 위해 상태를 기록합니다. 테넌트의 사용자를 차단하려면 ACL SETUSER로 비활성화하십시오.

어떤 플랜에 포함됩니까?

ACL은 모든 플랜에서 동작합니다. 테넌트 레지스트리는 Scale 플랜에 포함됩니다.

관련 사용 사례

직접 워크로드로 사용해 보십시오

HotKV는 Redis 프로토콜을 사용하므로 기존 클라이언트를 연결해 같은 명령을 그대로 실행할 수 있습니다.