엔터프라이즈 모놀리틱 DB를 MSA 구조로 전환하기
<1> 모놀리스 아키텍처 특징
1
장점?
여러 서비스들이 1개의 큰 RDBMS를 메인 디비로 사용
각 서비스들은 서로 강한 의존성을 가진다.
관리 포인트가 적다
시스템을 표준화하기 쉽다.
2
단점?
새로운 서비스를 추가하거나 기존 서비스 변경에 어려움
사용자나 요청이 폭증할 경우 처리하기 위해 확장하는 것이 어렵다.
DB1개 장애 시 전체 시스템 장애로 이어짐
3
해결책?
마이크로 서비스
서로 독립적인 서비스를 구성
개발이나 배포가 용이해짐
시스템 확장도 용이해짐
4
모놀리스 아키텍처는 애플리케이션이나 디비의 변경이 있을 경우 영향이 매우 크다.
새로운 개발과 변경 시 많은 담당자들이 변경을 해야 한다.
변경?
서비스 단위로 분리하는 마이크로 서비스 아키텍처로 분리함 = 개발팀을 분리함
더 빠른 개발과 배포가 가능해 짐
<2> 목적별 데이터 베이스
1
고객의 요구사항을 만족시키기 위해 개발자들은 유연한 개발환경에서 애플리케이션을 빠르게 개발해야 한다.
하나의 통합된 데이터 베이스는 문제 해결을 위한 적절한 도구를 제한한다.
개발자의 생산성을 떨어 뜨린다.
서비스의 품질이 떨어진다.
2
하나의 데이터베이스에 모든 데이터 타입에 저장하면 성능이 떨어진다.
문서를 하나의 관계형 데이터베이스에 저장하지 않고, 다큐멘트 디비와 같은 문서 전용 데이터 베이스에 저장하자.
목적에 맞는 데이터베이스를 사용하여 비즈니스 대응 민첩성을 확보하고 요구사항을 빠르게 해결해야 한다.
<3> 데이터 특성에 따른 디비 사용
관계형, 키 벨류, 다큐멘트, 인메모리, 그래프, 타임 시리즈, 원장, 와이드 칼럼 등 8개로 분류
각 분류에 맞는 데이터 베이스가 있다.
1
관계형 데이터베이스?
오로라, RDS / 오로라는 mysql, Postgre 사용 가능, RDS는 오라클, MS-SQL , Mysql, Postgre 지원.
온프레미스에 있는 관계형 데이터 베이스를 리프트 앤 시프트로 전환하거나 금융 등 데이터 무결성과 트랜잭션을 보장해야 하는 경우 좋다.
2
키 벨류 - 다이나모 디비?
초당 수백만의 높은 요청 처리와 10밀리 세컨드 미만의 응답 성능을 일정하게 보장해야 하는 경우
NoSQL 키 벨류 데이터 베이스, 보조 인텍스 및 ACID 트랜잭션을 제공한다.
온라인 쇼핑의 장바구니나 제품 카탈로그 서비스에 주로 사용될 수 있다.
3
다큐멘트 - 다큐멘트 디비?
NOSQL
문서형 데이터를 효율적으로 저장한다.
모든 속성에 대해 빠른 조회 성능을 제공한다.
몽고 디비와 호환성을 가지고 있다.
스키마 리스 디비라 개발의 유연성을 최대한 활용할 수 있다.
초당 수백만의 요청량을 처리
밀리세컨드 수준의 응답 시간을 제공한다.
모바일
4
인메모리 - 일러스틱캐시?
Redis, Memcached와 호환된다.
마이크로세컨드 수준의 응답 시간을 제공한다.
자주 사용되는 데이터를 캐싱하는 용도로 많이 사용한다.
레디스의 경우 다양한 데이터 저장 방식을 제공한다. Sorted set을 사용하여 실시간 리더보드 서비스를 손쉽게 구현할 수 있다.
5
그래프- Neptune (넵튠)?
수십억 개의 관계를 저장하고 데이터 간의 관계를 손쉽게 쿼리 할 수 있게 해주는 그래프 기반의 넵튠
6
타임 시리즈 - 타임 스트림?
Iot 디바이스에서 들어오는 데이터들을 시간 기준으로 빠르게 저장하고 조회할 수 있는 시계열 디비 제공
7
Ledger - QLDB?
원장 데이터의 변조를 방지하고 모든 변경이력을 체이닝 방식으로 관리하는 아마존 Quantum Ledger Database(QLDB)
8
Wide Column - Keyspaces?
카산드라와 호환성을 가지는 Amazon Keyspaces 데이터 베이스
<4> 핸즈온 랩
오라클 디비에서 목적별 데이터 베이스로 분리해보자
1
온라인 마켓의 한정 판매(Hot Deal) 서비스
-> 레디스로 전환
핫 블록으로 인한 문제를 해결
2
리더보드 조회서비스
-> 레디스로 전환
고객의 실시간 요구사항을 충족시킴
3
CRM 고객 상담 서비스
-> 문서 기반 nosql 디비인 몽고 디비로 분리하자.
4
사용자의 구매내역 조회 서비스
-> AWS key value 데이터 베이스인 다이나모 디비로 전환
<10> 개인 정리
1
8개의 디비 특성을 이해하자.
2
핸즈온 랩을 통해 디비를 분리하는 법 실습을 꼭 해보자!
디비 분리하는 법에 대한 설명이 잘 되어 있다.
https://brunch.co.kr/@topasvga/2439
감사합니다.