찬란하게

Salesforce Multitenancy 본문

SaaS/Salesforce Certi

Salesforce Multitenancy

체리핫 2024. 11. 30. 10:42

**멀티테넌시(Multitenancy)**는 하나의 소프트웨어 인스턴스 데이터베이스가 여러 개의 **고객(tenant)**에게 서비스를 제공하는 아키텍처를 말합니다. 여기서 **고객(tenant)**은 각기 다른 사용자 그룹 또는 회사를 의미하며, 각 고객은 독립적인 환경에서 소프트웨어를 사용할 수 있습니다. Salesforce를 포함한 많은 클라우드 기반 플랫폼은 멀티테넌시 아키텍처를 사용하고 있습니다.

 

 

Salesforce 멀티테넌시 특징

  1. 하나의 시스템에서 여러 고객 지원
    • Salesforce의 멀티테넌시 아키텍처는 하나의 인스턴스에서 여러 고객을 지원합니다. 각 고객은 자기 데이터 설정이 분리된 독립적인 환경을 가지며, 데이터나 구성 요소는 고객별로 격리됩니다.
  2. 데이터 격리 (Data Isolation)
    • Salesforce는 각 고객의 데이터를 논리적으로 격리하여, 다른 고객의 데이터에 접근할 수 없도록 합니다. 각 고객의 데이터는 다른 고객의 데이터와 공유되지 않습니다.
    • 데이터 격리에는 공유 모델, 보안 규칙, 프로파일, 권한 세트 등 다양한 Salesforce 보안 기능이 사용됩니다.
  3. 공유된 인프라
    • 여러 고객이 공유된 하드웨어 소프트웨어 리소스를 사용합니다. 고객들이 공유하는 리소스 덕분에 운영 비용이 절감되며, 효율적인 자원 관리가 가능합니다.
  4. 업데이트와 유지보수의 효율성
    • Salesforce는 하나의 코드베이스와 인프라로 운영되므로, 시스템의 업데이트 보안 패치를 한 번에 모든 고객에게 제공할 수 있습니다. 각 고객은 별도로 업데이트를 설치할 필요가 없습니다.
  5. 스케일링(확장성)
    • Salesforce는 자동으로 확장됩니다. 여러 고객이 증가해도, Salesforce 시스템은 자동으로 리소스를 조정하여 성능을 최적화합니다. 새로운 고객이 추가되면 기존 시스템에서 바로 지원할 수 있도록 설계되어 있습니다.

Salesforce의 멀티테넌시가 제공하는 주요 이점

  1. 비용 절감
    • 여러 고객이 동일한 인프라를 공유하므로, 운영 비용이 절감됩니다. 고객은 소프트웨어나 하드웨어를 별도로 관리할 필요가 없으며, 공유된 리소스를 통해 더 낮은 비용으로 서비스를 제공받을 수 있습니다.
  2. 자동 업데이트
    • Salesforce는 클라우드 서비스이므로, 한 번의 업데이트로 모든 고객에게 최신 버전과 보안 패치를 동시에 제공할 수 있습니다. 고객은 별도로 업데이트를 관리하거나 설치할 필요가 없습니다.
  3. 고객별 독립적인 환경
    • 각 고객은 자기만의 데이터 설정을 가지며, 다른 고객의 데이터에 접근할 수 없습니다. 이로 인해 데이터 보안과 개인 정보 보호가 강화됩니다.
  4. 확장성과 유연성
    • 멀티테넌시 아키텍처는 고객 수가 증가해도 시스템 성능을 유지하며 확장할 수 있도록 설계되었습니다. Salesforce는 자동으로 성능을 확장하고, 더 많은 고객을 지원할 수 있도록 확장됩니다.

Salesforce의 멀티테넌시에서 발생할 수 있는 도전과제

  1. 리소스 공유로 인한 성능 저하
    • 여러 고객이 동일한 인프라를 공유하기 때문에, 특정 고객이 과도한 자원을 사용하면 성능에 영향을 미칠 수 있습니다. Salesforce는 이를 거버너 제한(Governor Limits)으로 관리하여, 특정 고객이 다른 고객의 성능에 영향을 미치지 않도록 합니다.
  2. 보안 관리
    • 여러 고객이 같은 시스템을 사용하기 때문에, 각 고객의 데이터를 철저히 분리하고 보호해야 합니다. Salesforce는 강력한 보안 모델 데이터 보호 정책을 통해 고객 데이터를 보호하고 있습니다. 고객 데이터의 격리와 접근 제어를 통해 보안을 강화합니다.
  3. 복잡한 관리
    • 멀티테넌시 환경에서는 다양한 고객을 지원하기 위해 많은 데이터를 처리하고 관리해야 합니다. 이로 인해 고객 데이터가 많아질 경우 성능 최적화 데이터 관리가 중요한 과제가 될 수 있습니다.

Salesforce에서 멀티테넌시 구현의 예

  1. 거버너 제한 (Governor Limits):
    • Salesforce는 하나의 인스턴스에서 여러 고객을 지원하기 때문에, 각 고객이 리소스를 과도하게 사용하지 않도록 거버너 제한을 설정합니다. 예를 들어, SOQL 쿼리의 최대 횟수, DML 작업의 최대 횟수 등이 제한됩니다. 이를 통해 Salesforce는 공정한 자원 분배를 보장합니다.
  2. 데이터 접근 제어:
    • Salesforce는 각 고객의 데이터를 독립적으로 관리하고, 권한 설정(Profiles, Permission Sets, Sharing Rules)을 통해 데이터를 격리합니다. 각 고객은 자신에게 할당된 데이터만 보고 수정할 수 있으며, 다른 고객의 데이터에는 접근할 수 없습니다.
  3. 클라우드 아키텍처:
    • Salesforce는 클라우드 서비스로 멀티테넌시를 구현하며, 여러 고객이 단일 인프라에서 서비스를 사용할 수 있도록 합니다. 고객이 늘어나더라도 시스템은 자동으로 확장되어 성능을 유지할 수 있습니다.