728x90
반응형
모놀리식 아키텍처에서는 주로 관계형 DB를 사용했다. 각 앱이 하는 일은 각기 달랐지만 DB는 꼭 관계형 DB였다. 관계형 DB는 트랜잭션(거래) 처리에 최적화 된 소프트웨어인데, 트랜잭션 처리가 아닌 경우에도 관계형 DB를 사용하는 경우가 많았다.
반면 MSA는 각 마이크로서비스가 별도의 DB를 가질 수 있다. 이 경우 하나의 노드나 DB에 장애가 발생하면 그 서비스만 문제가 생길 뿐이다. 그러다보니 MSA에는 다양한 DB 소프트웨어를 사용할 수 있게 됐다. 각 서비스의 목적에 따라 그 서비스를 가장 잘 구현할 수 있는 DB를 선택할 수 있게 된 것이다.
이런 MSA의 특징 중 하나는 다양한 종류의 DB를 사용할 수 있다는 점이다. 모놀리식 아키텍처에서는 오라클과 같은 대규모 DB를 구축하고 각 노드(서버)가 이 DB를 공유하는 게 일반적이었다. 이런 공유스토리지 방식은 노드 하나에 문제가 생겨도 시스템 전체가 셧다운 되지 않는다는 점에서 인기를 끌었다. 그러나 비용이 많이 들고, 스토리지에 장애가 일어나면 전체 시스템이 멈춘다는 단점도 있다.
키-밸류(Key-Value) DB
간단한 키와 값을 사용해 데이터를 저장하는 DB다. 키를 검색해서 데이터를 가져오기 때문에 성능이 뛰어나다. 조인(JOIN) 등의 복잡한 연산은 불가능하지만, 데이터량이 많고 빠르게 가져와야 할 때 유용하다.
REDIS(REmote DIctionary Server), 아마존 다이나모 DB 등이 키-밸류 DB로 유명하다. 아마존은 특히 최근 몇년간 오라클 DB를 자체 서비스로 대체하는 프로젝트를 진행했는데, 다이나모DB가 상당부분 오라클 DB를 대신한 것으로 전해지고 있다.
다큐먼트 DB
다큐먼트 DB는 스키마 없이 JSON처럼 문서 형태로 데이터를 저장하는 것이 특징이다. 데이터를 쉽게 가져올 수 있어서 개발자들이 선호한다. 가장 대표적인 다큐먼트 DB는 몽고DB이다. AWS는 몽고DB와 호환되는 아마존 다큐먼트DB라는 서비스를 제공한다. 마이크로소프트 애저 코스모스DB, 카우치베이스, 카우치DB 등도 인기가 있다.
그래프 DB
데이터 간의 관계를 저장하는 데 최적화 된 DB다. 소셜네트워크서비스(SNS)처럼 관계가 중요한 서비스에 유용하다. 관계형 DB에 데이터를 저장하고 데이터간 관계를 분석하려면 복잡한 계산을 해야 하지만, 그래프DB를 활용하면 훨씬 수월하게 같은 일을 할 수 있다.
Neo4j, 아랑고DB, 오리엔트DB 등이 유명하다. 국내 스타트업 중에도 비트나인이라는 회사가 그래프DB 자체 개발해 사업을 펼치고 있고, 카카오도 그래프DB를 개발해 오픈소스로 공개한 바 있다.
시계열 DB
시계열 DB는 시간 순서대로 데이터를 추가해 저장하는 DB를 말한다. 공장의 센서에서 나오는 데이터를 1초마다 기록해야 한다면 관계형DB에 이를 계속 담기 부담스럽다. 시계열DB는 정해진 시간별로 데이터를 계속 추가하면서 데이터의 변화를 추적할 수 있다.
인플럭스DB가 가장 유명한 시계열 DB이며, 국내에서도 마크베이스라는 시계열 DB가 높은 성능을 자랑하고 있다.
AWS코리아 김일호 리드 솔루션즈 아키텍트는 “기존에는 관계형 데이터베이스로 대부분의 서비스를 개발했지만, 최근에는 요구사항이 복잡해지고 비즈니스 변화도 빠르게 때문에 하나의 형태가 아니라 목적에 맞는 데이터베이스 사용이 필요하다”고 말했다.
728x90
'04.Database' 카테고리의 다른 글
CTO가 커리어를 걸고 비트 레벨까지 내려가서 DB를 해킹했던 이야기 (0) | 2023.01.31 |
---|---|
오래된 DB와 이별하는 방법 (0) | 2023.01.31 |
품질관리 - 데이터 품질 - 관리 - DQM (0) | 2020.06.08 |
빅데이터 - 분석기술 - ETL (0) | 2020.06.08 |
정규화 - 관계대수 (0) | 2020.06.08 |