【AWS DynamoDB】 기본 구축

9624 단어 DynamoDBAWS

목표



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
}

좋은 웹페이지 즐겨찾기