Amazon DynamoDB

Database/DynamoDB 2017. 7. 13. 23:28

 

 

작년에도 DynamoDB 글을 하나 올렸었군; 기억이 안나...ㅡ.ㅡ 어쨌든 다시!

 

DynamoDB 는 AWS 에서 제공하는 NoSQL 데이터베이스 서비스이다.
굳이 DynamoDB 를 추천할 이유는 없지만,
어플리케이션이 AWS 플랫폼 상에서 돌아간다면 다른 NoSQL 에 비해 운영/관리에 노력을 덜 들일 수 있는 장점이 있으므로 사용해 볼 만하다.
RDS 에서 사용하던 관계성을 다 풀면서 DynamoDB 로 마이그레이션하여 사용하는게 가능할 수도 있겠지만 웹 서비스에서 그래야할 이유는 딱히 모르겠다.
우리 조직은 각종 통계를 위한 빅데이터 자료 및 각종 로그 등을 DynamoDB 에서 수집한다.

 

 

DynamoDB 의 장점

 

  • 용도에 맞게 예측하여, 테이블 생성시 파티션키와 읽기(RCU : Read Capacity Units) 및 쓰기(WCU : Write Capacity Units) 에 대한 처리량(capacity) 만 지정하면 됨.
  • 하드웨어 프로비저닝, 설정 및 구성, 복제, 소프트웨어 패치 또는 클러스터 조정 등의 관리에 대해 신경 쓸 필요가 없음.
  • 테이블 처리량을 조절하기 위해 가동 중지나 성능 저하가 나타나지 않음.
  • AWS Management Console 을 사용하여 리소스 사용률과 성능 측정치를 모니터링 가능.
  • TTL 설정으로 만료된 항목이 테이블에서 자동으로 삭제되므로 스토리지 사용량을 줄일 수 있음.
  • 모든 데이터가 SSD 에 저장되고 AWS 리전의 여러 가용 영역에 걸쳐 자동 복제되기 때문에 확실한 고가용성과 데이터 내구성을 보장.
  • 다른 AWS 서비스와의 편리한 통합 기능.

 

 

DynamoDB 의 단점

 

  • RCU / WCU 를 불필요하게 높게만 설정하면 과금 폭탄.


 

DynamoDB 의 과금


  • RCU 1 당 / WCU 1 당 / Table 데이터 차지 용량 GB 당 과금.



테이블에 데이터를 업로드할 때 할당된 모든 서버에 데이터를 동시에 업로드하면 설정한 처리량을 완전히 활용할 수 있다.
DynamoDB는 파티션 키가 중복되지 않으면 테이블 데이터를 여러 서버에 분할하므로, 데이터의 파티션 키가 중복되지 않게 만들어주는 약간의 꼼수가 필요하다.
파티션 키 뒤에 난수나 유닉스 타임등을 붙여 유일한 파티션 키로 만들어 주면 여러 서버에 분산 업로드가 될 것이다.

 

첫번째는 특정 파티션에만 워크로드가 발생하지 않도록 유일한 파티션 키를 만드는 것이 중요하고,
꾸준한 모니터링으로 적절한 처리량을 할당하는 것이 다음으로 중요하다.

 

다른 NoSQL 도 마찬가지겠지만 성능을 효율적으로 극대화 시키는 등의 작업은 많은 학습, 시행착오로 다져진 노하우와 꾸준한 모니터링 등이 필요할 수 있다.

 

 


WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret