데이터베이스
Last updated
Last updated
RDBMS
오라클, MySQL 등
OLTP(Online Transaction Processing)
주로 다수의 사용자나 애플리케이션이 동시에 빠르게 데이터를 조회하고, 삽입, 업데이트, 삭제할 수 있도록 설계된 데이터베이스 환경
But 점점 다양해지는 데이터베이스 요구사항이 필요하게됨
분석용, 검색용, 타임시리즈, 키밸류 접근, 그래프 데이터 등
빠른 읽기, 대용량 분석, 로깅 키/밸류 조합의 단순한 쿼리, 복잡한 쿼리 및 트랜잭션, 풍부한 검색 기능 등
하나의 RDBMS로 처리하기에는 그렇게 좋은 선택이 아닐 수 있음
여전히 RDBMS는 근간임, 용도에 따라 특화된 다른 데이터베이스를 추가로 구축하는건 어떨까? -> 클라우드 DB
클라우드 시대에 접어들면서 목적에 맞는 데이터베이스가 폭발적으로 성장하게됨
클라우드 플랫폼이 가지고 있는 방대한 인프라, 관리형으로 제공하는 데이터베이스
많은 사용자들이 클라우드로 이동하면서 데이터베이스에 다양한 선택지가 있다는걸 체감하게됨
용량 제한이 없는 확장형 Serverless DB
schemaless NoSQL
key/value store
10 밀리초 미만의 응답시간
서버리스 아키텍처에서 주료 사용됨
Gateway(클라이언트 요구사항) -> SQS(큐잉) -> Lambda(로직처리) -> DynamoDB(저장)
in-memory 기반 cache 시스템
Redis / Memcached
read 워크로드가 과중한 경우 latency와 처리용량을 향상
뒷단에 실제 영구적으로 데이터를 저장하는 RDS 같은 DB의 부하를 줄여주는 중간 레이어 역할
stateful 구성에서 세션 DB로 활용
Apache Lucene 기반의 분산형 데이터베이스
검색 및 로그용으로 많이 쓰임 (ELK 스택)
kibana 내장으로 BI를 함께 제공
Elasticsearch의 데이터를 시각화하고 대시보드를 구성할 수 있는 도구
REST API 호출을 통한 인덱스와 도큐먼트를 조회/등록/변경/삭제
ELK 스택은 로그 관리, 데이터 검색, 분석, 시각화를 위한 오픈 소스 소프트웨어 도구들의 조합
Elasticsearch + Logstash + Kibana
Logstash -> 로그 라우터 역할, 데이터 수집 및 처리 파이프라인 도구로, 다양한 소스로부터 데이터를 수집한 후 이를 변환하여 Elasticsearch에 전달