AWS 다이나모 DB 데이터베이스 CURD 기초 및 활용
- Computer/아마존 AWS
- 2021. 4. 22. 20:34
요즘 시간이 날 때마다 AWS에 관련된 책을 보고 있습니다. 당신이 지금 알아야 할 AWS라는 책을 참고해서 데이터베이스에서 간단한 항목을 만들고 수정 편집 그리고 삭제까지 구현해봤습니다. 인덱스를 만들어서 좀 더 빠르게 접근하는 방법도 배웠습니다. 몽고 DB에 비교하면 거의 다른 점은 없는데 기본키가 있고 웹 콘솔에서 조작한다는 점이 특이하네요. 아마존 웹 서비스는 거의 이런 식으로 접근하니 당연한 것 같기도 합니다. 기존의 DBMS처럼 조인이나 트랜잭션에는 적합하지 않지만 매우 유용하게 서비스에 적용할 수 있을 것 같습니다. 무엇보다도 정규화 같은 머리 아픈 개념이 없으니 좋네요. 또한 가용 영역 3군데에서 데이터베이스를 복제해서 SSD에 기록한다고 합니다. 엄청난 장점이죠. 샤딩과 같은 복잡한 개념을 포함하지 않아도 될 것 같습니다. 또한 직접 읽기 쓰기 Throughput을 지정할 수 있어서 처리량을 관리할 수 있습니다. 처리량은 한 번에 최대 2배까지 높일 수 있으며 처리량을 낮추는 횟수는 4번으로 제한됩니다.
다이나모 데이터베이스 특징
- 단순하고 신속한 배포 및 확장
- 데이터 백업의 편리함
- 일관된 응답시간
- 보조 인덱스를 이용한 조회 (이 부분이 특별함)
- 사용량에 따른 과금
- 무제한 용량 (S3와 같음)
예제 실습을 위해 AWS 콘솔에 접근한 뒤 모든 서비스에서 DynamoDB를 선택합니다.
다이나모 DB 테이블 생성
▼ 1. 우선 테이블을 만들어보겠습니다. 왼쪽 메뉴에서 테이블을 선택한 뒤 테이블 만들기 버튼을 누릅니다.
▼ 2. 테이블 이름(UnivStudent)을 입력하고 파티션 키(univ_name) 정렬 키(univ_id)로 입력한 뒤 정렬 키는 번호로 변경해줍니다. 참고로 파티션 키만 적용이 가능하지만 정렬 키를 추가해서 기본키를 만들면 해당 정렬키로 기본 인덱싱이 됩니다.
▼ 3. 테이블을 만드는 중입니다. 몇 초 안에 생성이 완료됩니다.
▼ 4. 이번에는 항목을 만들어 보겠습니다. 항목 탭을 누르고 항목 만들기 버튼을 누릅니다.
▼ 5. 항목 만들기 창이 뜨면 아까 테이블을 만들 때 사용했던 univ_name, univ_id를 기본값으로 입력합니다. null은 허용이 안됩니다.
▼ 6. 새로운 필드를 추가해보겠습니다. + 버튼을 누르면 되고 Append 타입을 문자열로 설정해줍니다.
▼ 7. 입력이 완료되면 저장 버튼을 눌러서 항목을 추가합니다.
▼ 8. 새로운 항목이 테이블에 하나 생성된 것을 볼 수 있습니다.
▼ 9. 새로운 항목을 계속 추가해보겠습니다.
▼ 10. 새로운 항목을 계속 추가해보겠습니다.
▼ 11. 3개의 항목이 추가된 것을 확인합니다.
▼ 12. 만약 특별히 필드를 삭제하거나 편집하고 싶다면 해당 항목의 체크박스를 선택한 뒤에 작업 버튼을 눌러서 수정 편집 및 변경할 수 있습니다.
다이나모 DB 스캔과 쿼리
▼ 13. 이제 위에서 만든 테이블 및 항목을 검색해보겠습니다. 다이나모 DB는 스캔과 쿼리라는 개념이 있습니다. 스캔은 필터를 기준으로 모든 항목을 검색해옵니다.
▼ 14. 만약 스캔보다 더 좁은 의미의 쿼리를 선택해서 검색하고 싶다면 스캔 드롭박스를 눌러서 쿼리로 변경해줍니다.
▼ 15. 쿼리는 특정 키값으로 검색할 수 있습니다. 처음 테이블을 만들때 사용했던 파티션 키로 검색이 가능합니다.
다이나모 DB 인덱스 생성
▼ 16. 위의 검색 기능을 좀 더 잘 활용하기 위해서 인덱스를 만들어 쓸 수 있습니다. 인덱스 탭을 선택하고 인덱스를 생성합니다. major라는 파티션 키를 기본키로 입력합니다. 그럼 자동으로 인덱스 이름이 생성되는데요. 이를 변경할 수도 있습니다. 추정 비용은 약 3달러 정도가 나오네요. 한 달 기준이니 걱정 안 하셔도 됩니다. 어차피 예제는 만들고 삭제하면 됩니다.
▼ 17. 인덱스를 생성하는 과정은 대략 5분 정도 걸린다고 쓰여있는데 그보다는 빨리 되는 것 같습니다.
▼ 18. 이제 인덱스를 통해 검색해보겠습니다. 스캔 옆의 표 드롭박스를 선택해서 인덱스로 변경해줍니다.
▼ 19. 검색 시작 버튼을 누르면 두 개의 항목이 표시됩니다. 즉 위에서 만든 파티션 키인 major라는 값이 없는 항목은 노출되지 않습니다.
▼ 20. 쿼리로 검색합니다. 역시 major가 없는 항목에 대해서는 표시되지 않습니다. 또한 기본 키로 검색하는 것보다 훨씬 빠르다고 하네요.
다이나모 DB 테이블 삭제
▼ 21. 삭제는 아주 간단합니다. 왼쪽 상단 메뉴 버튼 중 테이블 만들기 옆에 있는 테이블 삭제 버튼을 눌러줍니다.
▼ 22. 테이블 삭제 팝업이 뜨면 delete라고 입력한 뒤 삭제 버튼을 눌러주면 간단히 테이블이 삭제됩니다.
다이나모 DB는 NoSQL로 처음에는 무슨 다이너마이트 이런 게 떠오릅니다. AWS를 사용한다면 보통 이런 NoSQL을 고려하는 사람도 많을 것입니다. 더욱이 아마존 웹서비스에서 기본적으로 지원하는 데이터베이스라서 조금 믿음이 가네요. 구글의 빅 테이블과 몽고 디비와 비슷하게 이제는 대중적으로 사용하는 데이터 베이스 같습니다.
현존하는 NoSQL을 제외하고 대부분의 데이터베이스가 스케일 업에 의존하고 있기 때문에 요즘은 이런 스케일 아웃이 가능한 NoSQL이 대세라고 합니다. 그런데 몽고 DB를 쓴다고 해도 대부분에 전문가가 아니라면 사용량 증가에 따른 고민이 꽤 많을 것 같은데요. 아무래도 아마존의 다이나모 DB 같은 경우 이런 서버 스케일링과 스토리지 확장에 대한 부분이 매우 손쉬워서 저 같은 초보자도 쉽게 서버리스 개발이 가능할 것 같습니다.
Amazon DynamoDB 요금표
aws.amazon.com/ko/dynamodb/pricing/
'Computer > 아마존 AWS' 카테고리의 다른 글
AWS SNS (Simple Notification Services) 알림 만들기 - 2 (2) | 2021.04.30 |
---|---|
AWS SNS (Simple Notification Services) 알림 만들기 - 1 (0) | 2021.04.29 |
아마존 AWS 람다로 웹 서비스 만들기 (0) | 2021.04.23 |
아마존 AWS, 결제 비용 클라우드 와치 경보 알람 설정 (1) | 2021.04.19 |
[ VS Code ] Remote 원격 아마존 AWS SSH 클라이언트 접속 (2) | 2021.03.13 |