본문 바로가기

AWS

채팅서비스 sql vs nosql mongodb ? dynamodb ?

728x90

채팅서비스를 개발하면서 데이터베이스에 채팅내용을 저장할 일이 생겼다.

주워들은 건 많아서 채팅 서비스를 많은 기업에서 nosql을 사용해서 저장하는 걸 알고 있었지만

왜? 사용하는지 알지 못하기에 한번 정리하고 가면 좋을 것 같아서 정리해봅니다.

또한 nosql 의 대표적인 mongodb와 aws 에서 지원하는 nosql dynamodb 의 차이점을 정리하고 갑니다.

 

1. 채팅서비스 왜 noSql을 사용하는거야 ?

 

RDBMS에 채팅 내용을 담으면 I/O비용이 크다. I/O 비용이 크다는 말은 데이터를 넣고 빼는데 리소스(cpu, disk, memory)를 사용하는 량이 크다.그에 비해  NoSQL은 상대적으로 적습니다.\

확정성에 용의하다. 채팅서비는 대규모 동시 사용자와 데이터를 다루어야 한다. nosql데이터베이스는

수평 확장이 용이하며,샤딩과 같은 기술을 사용하여 데이터베이스의 성능과 처리능력을 올릴 수 있다.

 

샤딩이란?

 

DB트래픽을 분산할 수 있는 중요한 수단, 추가적으로 특정 db의 장애가 전면 장애로

이어지지 않게하는 역할을 하며, 샤딩은 각 db서버에서 데이터를 분할하여 저장하는 방식이다.

해당 데이터에 접근할 때는 샤딩키를 사용하여 동적으로 db서버를 매핑하는 과정

 

샤딩과 수평적 파티셔닝의 차이:

수평적 파티셔닝은 동일한 db서버 내에서 테이블을 분할하는 것이고, 샤딩은 db서버를 분할한다는 뜻,

db서버의 부하를 분산할 수 있다.

 

그럼 mongodb와 dynamodb의 차이는 뭐야?

 

dynamodb는 aws에서 관리되는 nosql데이터베이스 서비스

원활한 확장성과 빠른 성능을 제공하며,관리부담을 줄일 수 있다.

하드웨어 프로비저닝,설정 및 구성,복제,소프트웨어 패치 또는 클러스터 크기 조정에 대해 걱정할 필요가없다.

 

쉽게 말해 , dynamodb는 서버리스 서비스로 관리자가 인프라를 구성할 필요가없다.

aws console에서 바로 사용할 수 있는 테이블을 생성하고 읽기/쓰기 용량 설정을 구성한다.

 

스케일링부분에서 mongodb를 사용하게 될 경우 클러스터 구축을 자기가 직접 다 해야하지만

dynamodb는 자동으로 확장 가능한 서비스로 제공한다.

 

 

비교하자면 mysql 과 rds차이라고 보면 될 것 같다.!

 

2. MongoDb vs DynamoDb

 

  MongoDb DynamoDb
스프링과 호환성 O(더 많은 레퍼런스)
가격 시간당 0.236 USD 쓰기 요청 유닛 100만 
개당 1.3556 USD
읽기 요청 유닛 100만 
개당 0.271 USD

1유닛 당 1KB
스토리지 가격  범용 SSD(gp2) 볼륨
월별 제공된 스토리지 GB당 0.114 USD
월별 GB당 0.27075 USD
연결 TCP HTTP
저장 방식 Document Key-Value
관리  EC2직접 설치, serverless 존재 다른 NoSQL 과 다르게 serverless DB라는 특징으로 서버관리가 필요 없음

 

728x90