채팅서비스를 개발하면서 데이터베이스에 채팅내용을 저장할 일이 생겼다.
주워들은 건 많아서 채팅 서비스를 많은 기업에서 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(더 많은 레퍼런스) | 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라는 특징으로 서버관리가 필요 없음 |
'AWS' 카테고리의 다른 글
[Spring] 배포 서버의 도커 컨테이너에 크롤링 환경 구축하기 (0) | 2023.09.28 |
---|---|
로드밸런싱 , 다중서버 oauth 401 error (1) | 2023.09.26 |
aws codedeploy 블루/그린배포 중 오류 (0) | 2023.09.08 |
NAT Gateway를 왜 쓰는걸까 ? (0) | 2023.08.30 |
AutoScaling 시작템플릿설정 (0) | 2023.08.15 |