【AWS DynamoDB】 기본 구축
목표
AWS DynamoDB를 구축하고 간단한 테이블 작업을 AWS 콘솔 및 AWS CLI에서 실행
DynamoDB란?
AWS에서 제공하는 키 가치 유형의 관리형 데이터스토어 서비스입니다.
데이터가 세 개의 AZ에 분산되어 저장되므로 내구성이 높고 저장 용량에 상한선이 없습니다.
또한, 키 밸류 형식으로 지연 시간이 낮기 때문에 캐시나 WEB 세션의 저장처로서도 이용됩니다.
보다 자세한 것은 이하 기사가 참고가 됩니다.
【AWS】 지금은 DynamoDB 입문
참고 AWS 문서
NoSQL 테이블을 만들고 쿼리 실행
작업 흐름
항번
제목
1
DynamoDB 구축
2
DynamoDB 테이블을 AWS 콘솔에서 작업
3
DynamoDB 테이블을 AWS CLI로 작업
절차
1.DynamoDB 구축
① Amazon DynamoDB 콘솔 에 액세스
②
テーブルの作成
를 클릭③DynamoDB 테이블의 테이블명과 프라이머리 키의 설정
먼저 DynamoDB 테이블 이름과 기본 키(※)를 설정합니다.
샘플로 다음과 같이 설정
테이블 이름:
Music
파티션 키 : Artist
정렬 키(선택 사항): SongTitle
※DynamoDB의 프라이머리 키에 관하여
기본 키
"파티션 키"또는 "파티션 키와 정렬 키의 복합 키".
기본 키는 데이터를 고유하게 식별합니다.
파티션 키(설정 필수)
이 키에 저장된 값에 따라 어떤 파티션에 데이터가 저장되는지가 결정되므로,
광범위한 값을 가질 수 있는 키를 설정하는 것이 좋습니다(각 파티션에 대한 액세스가 균등하게 분산되어 성능이 향상됨)
정렬 키(설정 선택)
설정하면 각 파티션의 데이터를 정렬 할 수 있습니다.
한편 API에서는 소트 키를 지정해 꺼내는 데이터의 범위를 필터할 수 있는 것 같습니다.
보다 자세한 것은 이하 기사 참고
DynamoDB의 키 인덱스에 대해 정리해 보았습니다.
④ 처리량 용량의 AutoScaling용 롤 작성(임의 설정)
설정은 선택 사항입니다.
DynamoDB에서는 RCU(읽기 처리량 용량)와 WCU(쓰기 처리량 용량)라는 지표를 이용하여,
단위 시간당 읽기/쓰기량을 결정하고 있습니다.
그 RCU와 WCU의 AutoScaling 기능(자동 확장·축소)을 이용하기 위한 IAM 롤이 디폴트에서는 존재하지 않기 때문에 신규 작성합니다.
우선은
デフォルト設定の使用
의 체크를 해제합니다.DynamoDB Auto Scaling サービスにリンクされたロール
에 체크되어 있는지 확인다른 항목은 이번에는 설정 변경 없음으로 합니다.
마지막으로
作成
⑤ 테이블 작성 확인
테이블 목록에 추가되면 OK입니다.
2. DynamoDB 테이블을 AWS 콘솔에서 조작
본 기사에서는 순서 생략 하겠습니다.
아래 AWS 문서의 "2단계: NoSQL 테이블에 데이터 추가"이후를 참조하여 간단한 테이블 작업을 시도할 수 있습니다.
NoSQL 테이블을 만들고 쿼리 실행
3. DynamoDB 테이블을 AWS CLI로 조작
몇 가지 샘플로 실행해 보겠습니다.
보다 자세한 명령은 아래 기사 참조
aws cli에서 DynamoDB 사용
AWS CLI에서 DynamoDB 작업(삽입, 검색, 업데이트, 삭제)
put-item(데이터 저장)
$ aws dynamodb put-item --table-name Music --item '{ "Artist": { "S": "Ryosuke" }, "SongTitle": { "S": "FirstSong" }}'
$ aws dynamodb put-item --table-name Music --item '{ "Artist": { "S": "Ryosuke" }, "SongTitle": { "S": "SecondSong" }}'
$ aws dynamodb put-item --table-name Music --item '{ "Artist": { "S": "Michael" }, "SongTitle": { "S": "FirstSong" }}'
scan(데이터 목록)
$ aws dynamodb scan --table-name Music
{
"Count": 3,
"Items": [
{
"SongTitle": {
"S": "FirstSong"
},
"Artist": {
"S": "Ryosuke"
}
},
{
"SongTitle": {
"S": "SecondSong"
},
"Artist": {
"S": "Ryosuke"
}
},
{
"SongTitle": {
"S": "FirstSong"
},
"Artist": {
"S": "Michael"
}
}
],
"ScannedCount": 3,
"ConsumedCapacity": null
}
get-item (단일 데이터 취득)
$ aws dynamodb get-item --table-name Music --key '{ "Artist": { "S": "Ryosuke" }, "SongTitle": { "S": "SecondSong" }}'
{
"Item": {
"SongTitle": {
"S": "SecondSong"
},
"Artist": {
"S": "Ryosuke"
}
}
}
query (조건에 일치하는 Item 취득)
[ec2-user@ip-172-31-34-150 ~]$ aws dynamodb query --table-name Music --key-condition-expression 'Artist = :Artist' --expression-attribute-values '{ ":Artist"
: { "S": "Ryosuke" }}'
{
"Count": 2,
"Items": [
{
"SongTitle": {
"S": "FirstSong"
},
"Artist": {
"S": "Ryosuke"
}
},
{
"SongTitle": {
"S": "SecondSong"
},
"Artist": {
"S": "Ryosuke"
}
}
],
"ScannedCount": 2,
"ConsumedCapacity": null
}
Reference
이 문제에 관하여(【AWS DynamoDB】 기본 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/OPySPGcLYpJE0Tc/items/35f902f4c0992f532705텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)