IT관련/AWS

AWS에서 테넌트(Multi-Tenancy)란?

파란하늘999 2025. 12. 31. 00:16

AWS에서 **테넌트(Multi-Tenancy)**는 SaaS(Software as a Service) 애플리케이션에서 여러 고객(테넌트)이 하나의 공유 인프라를 사용하면서도 데이터와 리소스가 안전하게 격리되는 아키텍처를 의미합니다.

싱글 테넌트(Single-Tenancy)는 각 고객에게 전용 인스턴스를 제공하는 방식으로 보안과 커스터마이징이 강하지만 비용이 높습니다. 반대로 멀티 테넌시는 리소스를 공유해 비용 효율성과 스케일링이 우수하지만, **테넌트 격리(Tenant Isolation)**가 핵심 과제입니다.

AWS는 SaaS 빌더를 위해 다양한 격리 모델과 베스트 프랙티스를 제공합니다. 주요 패턴은 데이터베이스 중심으로 Silo, Bridge, Pool 모델입니다.

주요 테넌트 격리 모델 (AWS 공식 Guidance 기준)

모델 설명 격리
수준
비용/복잡도 장점 단점 적합한 경우
Silo 테넌트당 별도 데이터베이스 인스턴스 (e.g., RDS 인스턴스 하나당 하나의 테넌트) 최고 높음 강력한 격리, 규제 준수 용이, 성능 독립 비용 높음, 관리 복잡, 스케일링 어려움 고보안 요구 (금융, 의료 등)
Bridge 테넌트당 별도 스키마(Schema), 공유 인스턴스 중간 중간 격리와 비용 균형, 테넌트별 커스터마이징 가능 스키마 관리 필요, 노이즈 이웃 영향 가능 중간 규모 테넌트, 혼합 요구사항
Pool 모든 테넌트가 하나의 데이터베이스 공유, 행 수준(Row-level) 보안으로 격리 낮음 낮음 비용 최소, 운영 간편, 최고 효율성 격리 약함, 노이즈 이웃(Noisy Neighbor) 위험 대규모 테넌트, 비용 최적화 우선
  • 혼합(Hybrid) 접근: 많은 SaaS에서 Silo와 Pool을 조합 (e.g., 일반 테넌트는 Pool, 프리미엄은 Silo).
  • AWS 서비스 예시:
    • 데이터베이스: Amazon RDS/Aurora (Silo/Bridge/Pool 지원), DynamoDB (테넌트 ID로 파티셔닝).
    • 스토리지: S3 버킷-per-테넌트 (Silo) vs. 공유 버킷 + prefix (Pool).
    • 컴퓨트: Lambda/ECS/EKS에서 테넌트 컨텍스트 전달.

AWS에서의 테넌트 격리 베스트 프랙티스

  1. 아이덴티티와 인증 (Amazon Cognito):
    • 공유 User Pool: 모든 테넌트가 하나의 풀 공유 → 보안 정책 통일 (MFA, WAF 등).
    • 테넌트별 User Pool: 최대 격리, 하지만 관리 복잡.
    • 앱 클라이언트나 커스텀 스코프로 테넌트 분리.
  2. 데이터 격리:
    • 행 수준 보안(Row-Level Security) 사용 (PostgreSQL 등).
    • 테넌트 ID를 모든 테이블에 추가하고, 애플리케이션 레이어에서 필터링.
  3. 노이즈 이웃(Noisy Neighbor) 방지:
    • 하나의 테넌트가 리소스를 독점하지 않도록 쿼터/스로틀링 적용 (API Gateway, Lambda 등).
    • 모니터링: CloudWatch로 테넌트별 메트릭스 수집.
  4. 보안 및 컴플라이언스:
    • IAM 정책으로 테넌트별 접근 제어.
    • VPC, Network Policy로 네트워크 격리.
    • 로깅/감사: 테넌트별 로그 분리 (CloudTrail, S3).
  5. 온보딩 및 관리:
    • 테넌트 프로비저닝 자동화 (AWS CDK/CloudFormation).
    • 테넌트 컨텍스트를 API/Lambda全程 전달 (e.g., JWT 클레임에 tenant_id 포함).
  6. 비용 최적화:
    • 공유 리소스 최대화 (Pool 모델 기본).
    • 서버리스(Lambda, DynamoDB) 활용 → 사용량 기반 과금으로 테넌트 비용 정확 배분.

추천 자료 (AWS 공식)

멀티 테넌시는 비용과 보안의 트레이드오프입니다.

대부분의 SaaS는 Pool 모델을 기본으로 시작하고, 필요 시 Silo로 업그레이드 옵션을 제공하는 게 효과적이에요.

 

실제 구현 시 AWS SaaS Factory나 파트너와 상담 추천합니다!

반응형