관리형 이름-값 또는 문서 저장소

관리형 이름-값 또는 문서 저장소

cloudhwang 0 605

 

2338743F57F4A18804



DynamoDB의 특징


- 배포가 단순하고 신속합니다. 이 의미는 설계를 해서 그 데이터베이스를 적용하기까지 오랜 시간이 걸리지 않는다는 이야기입니다.


- 확장이 단순하고 신속합니다. 수백만 IOPS를 처리할 수 있는 시스템 설계해두었기 때문에 단순한 인터페이스의 조작만으로 규모를 확장시키기 수월합니다.


- 데이터는 자동으로 복제됩니다. 데이터의 손실을 방지하기 위해서 데이터 베이스를 자동으로 백업해서 복사본을 두고 손실율을 낮추고 있습니다.


- 빠르고 일관된 응답시간. 일단 IO를 하는 시간이 빠른 것은 기본이고 아무리 규모가 증가하고 어떤 장애가 와도 일관적인 응답시간을 보여줍니다.


- 보조 인덱스를 통한 빠른 조회. NoSQL 특성상 관계가 없기 때문에 일반적으로 데이터를 찾기에는 인덱싱이 없으면 속도가 느려지지만 그 부분을 해결해줍니다.


- 사용한만큼 사용료를 지불합니다. 저장소의 사용과 사용하려는 퍼포먼스의 정도에 따라서 사용료를 지불합니다. 그래서 최적화시 킬 수 있습니다.


223AF34F57F4A3491E


DynamoDB를 사용하는 목적


DynamoDB를 사용해야 하는 이유는 성능과 편의성, 대규모 DB를 구축하는데 필요한 비용들을 줄일 수 있습니다.


서비스를 구현한다고 하면 서비스는 빈번한 읽기 쓰기로 처리 속도는 빠릅니다.


작은 용량의 데이터를 처리할 경우, DynamoDB는 아주 효과적으로 사용될 수 있습니다.


데이터베이스를 확장해야하고 확장하는 과정에서 분산된 데이터베이스를 관리하기에 힘든 경우 사용하면 유리합니다.


즉, 모바일 게임이나 소셜 네트워크 같은 짧은 작업들을 처리하는 경우 아주 유용하게 사용될 수 있습니다.


DBMS처럼 트랜잭션, JOIN 과 같은 복잡한 테이블 데이터 처리과정이 있는 경우에는 비적합합니다.


NoSQL은 RDBMS처럼 스키마가 정해져 있지않고 비정형적인 데이터를 저장하는데 유용합니다.


정형화된 데이터를 저장해도 되긴 하지만 비정형화된 데이터를 저장해서 Denormalization을 적극적으로 활용하는데에 큰 장점이 있습니다.


적극 Denormailzation을 활용하라는 의미는 기존의 RDBMS에서 정형화하여 모든 종속관계니 도메인 원자값이니 하는 정규화(Normalization)과정을 거쳤는데,


여기 DynamoDB에서는 그런 규약에 얽매히지 않고 데이터를 처리할 수 있는 환경을 구성할 수 있습니다. 단, 스토리지 용량은 늘어나긴 합니다.


DynamoDB는 자동으로 AWS의 Region별로 데이터를 가용영역 3곳에 보통 복제해서 저장을 합니다.


가용 영역 중에 하나가 장애가 발생하여 정지하더라도 DB를 정상적으로 사용이 가능합니다.


높은 가용성과 지속성을 제공하기때문에 사용자가 따로 데이터를 백업할 필요가 전혀 없습니다.


DBA입장에서 보면 엄청나게 큰 강점입니다.


DynamoDB의 저장할 수 있는 용량은 같은 AWS의 S3와 같이 무제한입니다.


데이터 용량이 증가하게되면 스토리지를 늘리고 클러스터를 확장하여 데이터를 분산합니다.


기존의 다른 데이터베이스를 사용하면, 용량이 커지면서 샤딩(Sharding)이라는 방법을 통해 테이블의 데이터를 여러 서버에 분산시키는 작업을 직접해야합니다.


DynamoDB는 Read/Write Thoughput을 직접지정할 수 있습니다. 트래픽이 증가하여 사용량이 많아지면 처리량을 늘리고, 사용량이 적어지면 처리량을 줄입니다.


지정한 처리량은 DynamoDB가 알아서 일관되게 유지합니다.



출처: https://interconnection.tistory.com/60 [라이언 서버]

0 Comments