- 기타멀티테넌시 개념 잡기 문의드립니다.
-
궁*이 2024-04-03 20:29:46- hits64
안녕하세요 먼저 이전글 문의 드린내용 답변 감사합니다.
이전글에 아래와 같이 두개의 멀티 테넌시를 나누어서 설명을 해주셨습니다.
========================================================
■ 애플리케이션 단위 멀티 테넌시
애플리케이션 내에서 테넌트를 식별하고 관리하는 로직을 포함하여, 각 테넌트에 대한 요청을 처리할 때 적절한 데이터에 접근하도록 합니다.
로그인 세션, API 키, 도메인 이름 등을 통해 각 요청이 어떤 테넌트에 속하는지 식별하여 데이터 처리합니다.
■ 데이터베이스 단위 멀티 테넌시
데이터베이스 레벨의 멀티 테넌시는 데이터 보호를 위한 격리 단계에 따라 여러가지로 나뉩니다.
1. 데이터베이스 단위 분리
- 보안 수준 높음 / 자원 사용량 높음
2. 스키마 단위 분리
- 데이터 베이스는 공유 / 데이터는 격리되지만, 스키마 관리가 필요
3. 동일 스키마
- 모든 테넌트가 하나의 데이터베이스와 스키마 공유 / 구현이 쉽고, 유지보수 용이하지만, 보안 우려
========================================================
여기서 제가 이해한 것이 애플리케이션 단위 멀티 테넌시는 멀티테넌시를 구현하기 위해서는 필수 부분이고
db단위 멀티 테넌시는 3가지 유형중에 하나를 선택한다고 이해를 했는데 맞는지요?
다시 정리하면
1) 초기 저의 생각은 어플리케이션 단위 멀티테넌시와 db단위 멀티테넌시 둘 중에 하나만 선택을 해야되는 것으로 알았습니다. 즉 아래 4가지 type으로 구분이 된다고 생각을 하였습니다.
type1 ) 어플리케이션 단위 멀티 테넌시
type2 ) 데이터베이스 단위 멀티 테넌시(DB단위 분리)
type3 ) 데이터베이스 단위 멀티 테넌시(스키마단위 분리)
type4 ) 데이터베이스 단위 멀티 테넌시(동일스키마)
2) 지금 저의 생각으로 정리된 멀티테넌시의 유형은 아래 3가지로 생각이 되어 집니다.
type1) 어플리케이션 단위 멀티 테넌시 + 데이터베이스 단위 멀티 테넌시(DB단위 분리)
type2) 어플리케이션 단위 멀티 테넌시 + 데이터베이스 단위 멀티 테넌시(스키마단위 분리)
type3) 어플리케이션 단위 멀티 테넌시 + 데이터베이스 단위 멀티 테넌시(동일스키마)
왜 이렇게 달라진 생각을 하게 되었냐면 어플리케이션 단위에서 멀티 테넌시를 구분한 것으로
db단위 멀티 테넌시 3가지중에 하나를 선택해서 진행이 가능한 것이 아닌가 생각했기 때문입니다.
바쁘시겠지만 한번만 더 검토해 주시면 감사하겠습니다.
안녕하세요.
앞선 문의사항에 대해서 멀티테넌트의 개념 및 멀티 테넌트 타입에 대해 말씀드렸습니다.
멀티테넌트는 단일 서버에서 여러 소프트웨어가 실행되는 아키텍쳐에서부터 시작되었습니다.
현재는 위 개념에서 서버는 클라우드를 통한 확장가능한 IaaS 환경이거나, Kubernetes와 같은 클러스터 기반 컨테이너 플랫폼으로 확장되어 왔고,
앞서 설명드린 내용은 이런 환경 하에 실행되는 소프트웨어의 멀티테넌트를 적용하는 방식의 종류에 대해 설명드렸습니다.
애플리케이션 레벨이든 Database 레벨이든 혼합적인 방식이든, 이는 IaaS 자원을 좀더 효율적으로 사용하여,
다양한 사람들에게 보안적인 문제 없이 잘 작동하게 개발하고자 하는 여러 가지 방식일 뿐이며, 어떤방식이 가장 적합하다고 말씀드릴 수 없습니다.
소프트웨어의 규모, 보안 요구사항 등을 고려하여 개발하고자 하는 목적에 따라 적합한 멀티 테넌트 아키텍쳐를 설계하여
수행하여 나가시기 바랍니다.
참고자료 : https://www.linkedin.com/pulse/how-do-single-multi-tenancy-cloud-native-born-cloud-differ-gaethofs/
감사합니다.