한국에서는 아직 많이 사용을 하지 않는 것 같다. 하지만 AWS를 사용하면서 특히 DynamoDB를 활용하면서 정말 많은
장점을 가진 DB임을 확인한다. 한국에 많은 유투브 등에도 강좌가 없는 듯하여 조금씩 내 머리도 정리할 겸 다시 정리해 본다.
DynamoDB란 무엇인가?
DynamoDB란 Managed NoSQL 데이터베이스이다. 더 중요한 개념 ----> 키페어 DB이다. 즉, 이전에 자신의 데이터베이스를 운영 할 때는 본인이 직접 유지 보수나 확장에 있어 이를 관리 운영 해야 하지만 DynamoDB의 경우 AWS에서 쉽게 운영 할 수 있고 많은 트레픽이 있어도 자동으로 확장 되어 져 자동으로 Managed가 가능한 데이터 베이스란 이야기이다.
DynamoDB는 다음과 같은 핵심 장점을 가진다.
High Availability: DynamoDB는 저장 필요성과 처리량에 따라 자동으로 빠른 처리 속도를 유지하면서 Traffic을 분산하며 최적화된 상태를 유지한다.
High Durability: DynamoDB는 Synchronous 즉, 동시에 다수의 데이터 센터에 복제를 한다. 영어로 되어 있지만 아래 비디오를 참고 하면 좋다.
Easy Integration with AWS service: AWS에서 운영하는 서비스들을 정말 쉽게 클릭 몇 번(?)으로 Lambda나 S3등의 연결이 가능하다. --- 내가 DynamoDB를 애용하는 가장 큰 이유다.
저렴한 운영비: 굳이 provision할 용량을 예상하고 용량을 설정할 필요가 없다. 개발 시에는 오히려 돈이 더 나간다. 복잡하게 공부할 필요도 없는 것 같다. 그냥 On Demand로 설정하면 사용한 만큼만 청구되기 때문에 개발 시 정말 저렴한 비용으로 운영이 가능하다.
Ideal for known access patterns: 즉, 처음 데이터베이스를 기획 할 때 어떤 데이터를 받아와야 하는 지를 미리 패턴으로 만들어 놓고 운영하는 것이 좋다. 나중에 SK (Sort Key)부분을 공부할 때 좀 더 이해하게 될 것이다.
복잡한 Sort가 어렵다: 다른 NoSQL과 마찬가지로 다양한 parameter를 전달 해야 하는 복잡한 Sort가 필요한 경우 사용하기가 매우 어렵다. 이러한 필요가 있을 경우 해결 할 수 있는 방법은 복잡한 Get Call이 필요한 곳에 Elasticsearch와 함께 구성하면 해결 할 수 있다.