관심분야/클라우드

#2 AWS DynamoDB설정 - AWS 음성지원 서비스를 활용한 신문 읽어주는 프로젝트

뱅노 2019. 10. 13. 20:04

앞에서 설명한 아키텍처를 기준으로 음성지원 서비스를 작업 할 예정이다.

 

우선 DynamoDB 부터 생성 작업한다. 왜냐면? 그냥 DynamoDB 만드는게 제일 안 귀찮다. 아래에 빨간색 동그라미 표시가 되어 있는 부분 작업이다.

자 그럼 먼저 AWS Console에서 DynamoDB를 검색을 한다.

검색 후 좌측 메뉴에 대시보드를 클릭하면 아래와 같은 화면이 나온다.

그냥 테이블 만들기 버튼 누르면 된다.

그냥 [테이블 만들기] 버튼을 클릭한다. 클릭하면 아래와 같은 화면이 나온다.

 

테이블 이름을 원하는 이름으로 설정을 한다. 나의 경우 [TTSREADSNEWSTABLE] 이름으로 설정을 할 것이다. 파티션 키로 설정을 한다. 파티션키는 관계형 데이터베이스 기준으로 설명을 하면 PK값이다.

 

파티션키 밑에 정렬키 추가라고 있다. 정렬키가 왜 필요하면, DynamoDB의 경우 파티션키로 설정된 컬럼을 기준으로 조회가 가능하다. [TTSREADSNEWSTABLE] 테이블을 기준으로 설명을 하자면,

 

등록일자 신문 제목 신문 내용 MP3위치
20191004 A A내용 /위치1
20191004 B B내용 /위치2
20191004 C C내용 /위치3
20191006 C 위에랑 내용 틀림 /위치4

등록일자를 파티션키로 설정을 한다. 등록일자 기준으로 조회를 하게 된다. 그러면 20191004 데이터의 신문 제목, 신문내용, MP3위치를 가져올 수 있다. 그러면 여기서 정렬키가 왜 필요한가?

 

우리나라에서는 정렬키로 번역이 되고 영어로는 RangeKey라고 한다. 범위 및 정렬 순서를 변경 할 수 있다. "20191004 등록일자를 기준으로 신문 제목이 A ~ B까지인 정보를 조회 하라"라고 조회 쿼리를 보낼 수 있다. 그러면 등록일자 기준 20191004 데이터 중 신문 제목이 A, B인 정보만 조회하게 된다.

 

다음으로 테이블 설정을 [기본 설정 사용] false로 설정하면 아래의 또다른 선택 정보가 나온다.

 

보조인덱스, 읽기/쓰기 용량모드, AutoScaling, 유휴시 암호화

 

읽기/쓰기 용량모드는 "얼마만큼 테이블 읽기/쓰기를 할 것인가" 하는 내용이다. AutoScaling은 "성능의 몇 프로를 사용하면 프로비저닝 용량을 얼마큼 변동 시킬 것인가" 하는 내용이다. 유휴시 암호화 설정의 경우 CMK를 사용하여 암호화 처리를 할 것 인가? KMS까지 활용하여서 암호화 처리를 할 것 인가의 내용이다.

 

DynamoDB에서 중요한 내용은 보조인덱스라고 생각한다. 보조인덱스는 secondary index라고 영문버전에서는 나온다. 보조인덱스는 글로벌 보조인덱스, 로컬 보조인덱스가 있다. 보조인덱스도 동일하게 파티션키, 정렬키가 존재한다. 영문 버전에서 파티션키를 hashkey, 정렬키를 sortkey라고 표현한다

 

글로벌 보조인덱스는 최대 20개, 로컬 보조인덱스는 최대 5까지 생성 할 수 있다. 글로벌 보조인덱스는 DynamoDB의 파티션키, 정렬키와 다를 수 있다. 그러나 로컬인덱스의 경우 파티션는 동일해야 한다. 다만 정렬키를 다르게 가져 갈 수 있다.

 

보조인덱스의 자세한 설명 내용은 AWS 메뉴얼을 참고 바란다.

https://docs.aws.amazon.com/ko_kr/amazondynamodb/latest/developerguide/SecondaryIndexes.html

 

보조 인덱스를 사용하여 데이터 액세스 향상 - Amazon DynamoDB

보조 인덱스를 사용하여 데이터 액세스 향상 Amazon DynamoDB은 지정된 기본 키 값을 사용하여 테이블의 항목에 신속하게 액세스할 수 있습니다. 그러나 많은 애플리케이션에서는 주요 키가 아닌 속성을 가진 데이터에 효율적으로 액세스할 수 있다는 장점을 활용하기 위해 하나 이상의 보조(또는 대체) 키를 사용하기도 합니다. 이를 위해 테이블에서 하나 이상의 보조 인덱스를 생성하고 이 인덱스에 대해 Query 또는 Scan 요청을 발행할 수 있습니다. 보

docs.aws.amazon.com

 

보조인덱스를 사용하는 이유는 위에서 설명한 내용처럼 파티션키 기준으로만 조회가 가능하다. 그러나 프로그램 작업을 하다보면, 파티션키 말고 다른 키로도 조회를 하고 싶은 경우가 생긴다. 이럴 때 보조인덱스를 사용하게 된다. 가능하면 로컬 보조인덱스로 처리가 가능하다.

 

글로벌 보조인덱스인 경우에는 속도 문제가 발생 할 때 사용하게 된다. Workload가 상당히 무거운 작업 일 경우 글로벌 보조인덱스를 사용해서 처리한다. 가벼운 작업량을 경우 DAX라고 하여 dynamodb accelerator를 사용해서 처리를 한다.

 

다음에는 DynamoDB에 크롤링 정보를 적재하도록 하겠다.