이번 시리즈에서는 AWS의 대표적인 NoSQL 데이터베이스인 DynamoDB의 작동방식에 대해서 이해한 바를 공유하려고 합니다. DynamoDB를 이해하려면 NoSQL이 무엇인지 알아야합니다.
NoSQL이 무엇의 약자인지는 많은 의견들이 있었지만, 현재는 Not Only SQL 로 설명하는 것이 다수를 차지하고 있습니다. "SQL만을 사용하지 않는 데이터베이스 관리 시스템" 을 의미하는 말로, 특정 데이터 모델에 대해 특정 목적에 맞추어 구축되는 데이터베이스로서 유연한 스키마를 갖추고 있는 것이 가장 큰 특징입니다.
특징을 간략히 정리하면 아래와 같습니다.
RDBMS와 NoSQL 중 어느 것을 사용해야하는지에 대한 논쟁을 하려는 것이 아닙니다.
응용 프로그램마다 요구 사항이 다르며 한 사용 사례에 대한 최선의 기술 선택은 다른 사용 사례에 대한 최상의 선택과 다를 수 있습니다. 따라서 예측 가능한 미래에 관계형 데이터베이스는 다양한 비관계형 데이터 저장소와 함께 계속 사용될 것으로 보입니다.
NoSQL 데이터베이스는 낮은 지연 시간의 애플리케이션을 포함한 수많은 데이터 액세스 패턴에 맞도록 설계되었습니다. 아래에 NoSQL 데이터베이스의 특징들을 간략하게 정리하였습니다.
NoSQL 데이터베이스의 유형은 위와 같이 크게 5가지로 나뉘고, 오늘 알아볼 DynamoDB는 key-value 형식에 해당합니다.
모든 규모에서 10밀리초 미만의 성능을 제공하는 빠르고 유연한 NoSQL 데이터베이스 서비스
aws 공식 사이트에서 DynamoDB를 위와 같이 소개하고 있습니다.
기존 RDBMS에서도 아래와 같이 대규모 데이터 처리가 가능합니다.
다만 DynamoDB와 비교해서 몇가지 뚜렷한 단점이 있습니다.
replica가 늘어나면 bin-log 복제에서 write node에 부하를 주고 sharding을 잘못하면 데이터가 한 쪽으로 몰릴 수 있습니다.
fully managed
mission-critical OLTP
Tier 0 Service
일반적으로 계층 수가 적을 수록 비용은 높아지고 해당 계층에서 데이터를 검색하는 데 걸리는 시간은 줄어듭니다.
multi-region replication
partition
이번 장에서는 NoSQL에 대한 이해 및 dynamoDB에 개요에 대해 간략하게 정리하였습니다. 다음 글에서는 작동방식 및 주요기능에 대하여 이어서 정리 하겠습니다😎