개발자 / 애플리케이션 / 클라우드

마이크로서비스를 위한 데이터베이스 선택 방법

Jeff Carpenter | InfoWorld 2017.11.13


서비스 D는 고객 데이터와 같은 데이터, 그리고 조직 내 다양한 부서와 고객의 접촉 내역 간 관계와 같은 복잡한 관계를 탐색하는 데 사용된다. 여기에는 다른 서비스에서 소유한 데이터 유형 간의 관계가 연관될 가능성이 있다. 이는 위에서 언급한, 서비스가 개별 데이터 유형을 소유한다는 제약을 강제하기 시작한다는 면에서 흥미로운 경우다. 서비스가 기반 테이블에 대해 읽기 전용 접근 권한을 가진 그래프를 생성한 다음 원하는 변형을 "앞문", 즉 해당 데이터 유형을 "소유"한 다른 서비스의 API에 대한 호출을 통해 이동시킬 수 있다.

마지막으로, 관계형 기술을 사용하는 레거시 시스템 또는 서비스가 있거나 볼륨이 작은 데이터를 관리하는 서비스, 또는 자주 바뀌지 않는 데이터가 있다. 이런 사용 사례에는 관계형 데이터베이스로 충분하다.

개별 서비스가 다언어코드여야 하는가?
복수의 데이터베이스 위에 위치하는 서비스를 설계하는 것도 가능하다. 예를 들어 키-값 저장소를 인덱스로 사용하고 호텔 이름과 ID를 매핑하고 호텔에 대한 설명 데이터를 카산드라의 테이블 형식에 저장하는 호텔 서비스를 생성할 수 있다.


이름-ID 매핑은 비정규화된 설계 방법을 사용하여 카산드라에서도 똑같이 구현이 가능하다. 이 경우 이름-ID 매핑을 유지하기 위해 별도의 테이블이 사용된다. 스토리지 사용량은 조금 더 높지만 별도의 키-값 저장소 관리에 따른 운영 복잡성이 없다.

이것이 일반적인 필자의 권장 사항이다. 즉, 가능하다면 주어진 마이크로서비스에서 항상 하나의 데이터 모델과 데이터베이스를 고수하는 것이다. 하나의 서비스를 두 개의 서로 다른 데이터베이스 위에 올려야겠다는 생각이 든다면 그 서비스의 범위가 너무 커지지 않을지 여부를 고려하라. 서비스를 작은 서비스로 분할하는 편이 더 바람직할 수도 있다.

다언어코드 지속성의 한계와 타협
다언어코드 지속성의 가장 큰 단점은 초기 개발과 운영, 두 가지 측면 모두에서 여러 기술을 지원하는 데 따르는 비용이다.

주 개발 비용은 각각의 새로운 데이터베이스 기술에 대한 개발자 교육 비용이다. 특히 개발자가 팀을 자주 바꾸는 유동적인 환경에서는 이 비용이 상당히 커질 수 있다.

또 다른 요소는 여러 데이터베이스를 지원하기 위한 운영 비용이다. 데이터베이스 관리가 중앙에 집중되고 팀이 여러 기술 분야에서 높은 역량을 유지해야 하는 경우 문제가 될 수 있다. 그러나 개발 팀이 프로덕션에서 선택한 데이터베이스를 지원해야 하는 진정한 데브옵스 환경에서는 별 문제가 되지 않을 수도 있다.

다중 모델 데이터베이스
데이터베이스 업체들은 다언어코드 지속성 접근 방법의 대안 또는 보완책으로 다중 모델 데이터베이스를 구축해 홍보하기 시작했다. "모델"이라는 용어는 데이터 저장소가 제공하는 기본 추상화를 나타낸다. 예를 들어 테이블 형식(관계형 및 비 관계형 모두), 컬럼 저장소, 키-값, 문서 또는 그래프 등이 있다. 다중 모델 애플리케이션은 두 가지 이상의 데이터 저장소 유형을 사용하는 애플리케이션이며 다중 모델 데이터베이스는 두 가지 이상의 추상화를 지원하는 데이터베이스라고 생각하면 된다.

데이터스택스 엔터프라이즈(DataStax Enterprise, DSE)는 카산드라의 분할된 행 저장소(테이블 형식) 모델과 이를 바탕으로 구축된 그래프 추상화를 지원하므로(DSE 그래프) 다중 모델 데이터베이스의 예다. 또한 아래 그림에서 볼 수 있듯이 코어 모델을 기반으로 자기만의 키-값과 문서 스타일 추상화를 간단히 구축할 수 있다. 이 방법을 통해 위에서 말한 다언어코드 접근 방법을 수정, 모든 서비스에 하나의 기반 데이터베이스를 활용하면서 별도의 키 공간을 사용해 다른 서비스가 소유한 데이터 사이에 명확한 경계를 유지할 수 있다.



어떻게 작동하는지 살펴보면 다음과 같다.

- 테이블 형식 : 서비스 A와 같은 주 애플리케이션은 카산드라 쿼리 언어(CQL)를 사용해 DSE 코어와 직접 상호작용할 수 있다.

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.