본문 바로가기
AWS

[DDB] DynamoDB 세팅하기

by yonikim 2021. 5. 26.
728x90

비하인드 스토리를 말하자면,

 

사    수曰: DynamoDB 보니까 괜찮아 보이더라. 도입하자.

요니킴曰: MySQL, MongoDB, Redis 등 이미 사용하고 있는 데이터베이스가 많지 않냐. 관리포인트가 너무 늘어나는 거 같다.

사   수曰: ...

 

 

 

사    수曰: 내가 도입했다. 품목 관련 DB는 DynamoDB 로 통일하자.

요니킴: ...

 

그리하여 접하게 된 AWS DynamoDB.


AWS DynamoDB


 

AWS DynamoDB 는 키-값 및 문서 데이터 구조를 지원하는 완전관리형 NoSQL 구조의 데이터베이스 서비스이다. DynamoDB 의 강점은 아래와 같다.

1. 어떤 규모에서도 일관되게 10밀리초 미만의 응답 시간을 제공한다. 

2. 서버리스이므로, 서버를 프로비저닝하거나 패치를 적용하거나 관리할 필요가 없으며 소프트웨어를 설치하거나 관리할 필요도 없다.

 


 

아직 많은 기능을 사용해 보진 않았지만 일주일 정도 사용해 본 후 느낀점은 진짜 빠르네 였다. (몇십억건의 데이터를 넣어본 후 테스트를 해본건 아니지만...이건 추후에 테스트해보겠다.)

또한 PartiQL 을 지원하기 때문에 SQL 문을 짤 수 있다면 DynamoDB 쿼리도 쉽게 짤 수 있다. 

 

단 주의할 점으로는 DynamoDB에서 항목 컬렉션을 가져오기 위한 방법으로는 쿼리스캔 두가지 방법이 있는데, 왠만해선 쿼리를 사용하는 것이 좋다.

 

  쿼리 스캔
응답시간 100ms 이내 몇 시간이 걸릴 수도 있음
사용해야 하는 경우 키 값을 모르는 경우를 제외하고 모든 경우 키 값을 모르는 경우
* 자주 사용되는 패턴인 경우에는 해당 속성을 인덱싱하고 활성화하기 위해 GSI(Global Secondary Index)를 추가 하는 것이 좋다.
비용 훨씬 저렴 스캔된 데이터를 기준으로 청구되므로, 전체 테이블 공간을 통과해야 할 경우에는 어마무시한 비용 발생

 

 


DynamoDB 세팅하기 


 

1. AWS Console 로그인 후 DynamoDB 에 들어간다. 

 

2. [테이블] 클릭 > [테이블 생성] 버튼을 클릭한다.

 

3. 테이블 세부 정보를 입력한다.

 

4. [테이블 생성] 버튼을 클릭하면 테이블이 생성된다. 

 

* GSI(Global Secondary Index) 생성 방법

5. 해당 테이블 클릭 > [인덱스] 탭 클릭

 

6. 인덱스 세부 정보를 입력한다.

 

7. [인덱스 생성] 버튼을 클릭하면 인덱스가 생성된다.

 

 

 

References 

https://dynobase.dev/dynamodb-scan-vs-query/

728x90