본문 바로가기

Programming Interfaces DynamoDB SDK 는 대부분의 프로그래밍 언어를 제공하며, 이를 사용하여 프로젝트에 필요한 작업을 할 수 있다.SDK 가 다음 기능을 제공하여 개발자의 코드 양을 엄청나게 줄여준다.HTTP(S) 요청 서식 설정 및 요청 파라미터 직렬화.각 요청의 암호화 서명 생성.요청을 DynamoDB 엔드포인트에 전달하고 DynamoDB로부터 응답을 수신.이러한 응답에서 결과 추출.오류 발생 시 기본적 재시도 로직 구현.AWS SDK는 DynamoDB 작업을 위한 3가지 프로그래밍 인터페이스를 제공한다.사용 가능한 인터페이스는 사용하는 AWS SDK와 프로그래밍 언어에 따라 달라질 수 있다.1. Low-Level InterfacesSDK 는 Low-Level DynamoDB API 요청과 매우 비슷한 메서드를 사..
DynamoDB Low-Level API DynamoDB Low-Level API 는 실제 DynamoDB 에 요청하는 마지막 단계 인터페이스로, 이 HTTP(S) 요청은 올바른 형식이어야 한다.HTTP(S) 요청은 POST 방식이어야 한다.Authorization 헤더에는 DynamoDB 가 요청을 인증하는 데 필요한 정보가 포함되어야 한다.X-Amz-Target 헤더에는 DynamoDB 작업의 이름(GetItem, PutItem 등...) 이 포함되어야 한다.요청 본문은 JSON 형식이어야 한다.응답도 JSON 형식으로 반환된다.DynamoDB 가 요청을 처리할 수 없는 경우, HTTP 오류 코드와 메시지를 반환하므로 오류 처리를 해주면 된다.이런 요청과 응답 모두 AWS SDK 가 구성하므로 개발자는 어플리케이션 로직에만 집중하면 된다.P..
Data CURD Parameter 데이터 쓰기{ TableName: "Music", Item: { "Artist":"No One You Know", "SongTitle":"Call Me Today", "AlbumTitle":"Somewhat Famous", "Year": 2015, "Price": 2.14, "Genre": "Country", "Tags": { "Composers": [ "Smith", "Jones", "Davis" ], "LengthInSeconds": 214 } }}Colored by Color ScriptercsSQL 의 INSERT INTO 와 같은 역할이다.Item 을 추가하려면 PutItem 작업에 위와 같은 파라미터를 전달한다.복수의 데이터를 BatchWriteItem 작업으로 한번에 추가하는 것도 가능하다...
Table CURD Parameter Table 생성{ TableName : "Music", KeySchema: [ { AttributeName: "Artist", KeyType: "HASH", //Partition key }, { AttributeName: "SongTitle", KeyType: "RANGE" //Sort key } ], AttributeDefinitions: [ { AttributeName: "Artist", AttributeType: "S" }, { AttributeName: "SongTitle", AttributeType: "S" } ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1 }}Colored by Color ScriptercsSQL..
Partitions and Data Distribution DynamoDB 는 데이터를 파티션에 저장한다. 파티션은 SSD(Solid State Drive) 에 저장되는 테이블용 스토리지이다.DynamoDB 는 기존 파티션이 한도를 초과하거나, Table 의 프로비저닝된 처리량 설정이 늘어나는 경우 자동으로 추가 파티션을 할당한다.파티션 관리는 백그라운드에서 자동으로 이루어지므로 어플리케이션에는 표시되지 않는다.DynamoDB 의 GSI(Global secondary index) 도 파티션으로 구성되며, 기본 테이블의 데이터와 별도로 저장된다.Data Distribution Partition keyTable 이 Primary Key 로 Partition key 만 가질 경우, Partition key 값을 기준으로 각 Item 을 저장하고 검색한다.DynamoD..
Throughput Capacity Throughput CapacityTable 이나 Index 를 생성할 때 읽기(RCU : Read Capacity Units) 및 쓰기(WCU : Write Capacity Units) 에 대한 처리량(capacity) 을 지정해야 한다.처리량을 미리 정의함으로써, DynamoDB 는 읽기 및 쓰기 작업량에 충족할 만큼의 리소스를 예약하여 일관되고 낮은 대기 시간의 성능을 보장한다.1 RCU 는 4 KB 크기의 Item 의 경우, 초당 strongly consistent read 1 또는 초당 eventually consistent read 2 를 나타낸다. 4 KB 미만의 Item 은 4 KB 단위로 반올림 된다.1 WCU 는 1 KB 크기의 Item 의 경우, 초당 쓰기 1 을 나타낸다. 1 KB ..
Naming Rules and Data Types Naming RulesDynamoDB 의 Table 및 Attribute 등에 지정할 수 있는 허용 문자와 규칙.a-z, A-Z, 0-9, _(밑줄), -(대시), .(점)대소문자 구분속성에 예약어(웬만한 프로그래밍 명령어 같은...) 는 사용하지 않는 것이 좋음. #(해시) 나 :(콜론) 도 표현식에서 사용되므로 사용하지 않는 것이 좋음.Data TypesDynamoDB 가 Attribute 에 지원하는 데이터 타입을 다음처럼 분류할 수 있다.Scalar Types : number, string, binary, Boolean, null 중 하나의 값만 표현.Document Types : list 나 map 같은 복잡한 구조 표현.Set Types : string set, number set, binar..
DynamoDB API DynamoDB 를 어플리케이션에서 사용할 수 있는 몇가지 API 카테고리이다.심플하게 데이터 올리기, 가져오기, 수정하기 정도가 전부이다.Control Plane : Table 및 Key, Index 관련.CreateTableTable 생성. Secondary Indexes 및 DynamoDB Stream 설정 가능.DescribeTableTable 정보 반환 (Primary key 스키마, 처리량 설정, Index 정보)ListTables모든 Table 의 이름을 목록으로 반환.UpdateTableTable, Index, Stream 수정.DeleteTableTable 및 해당 종속적 객체 모두를 삭제.Data Plane : Table 의 데이터에 대해 생성, 읽기, 업데이트 및 삭제(CRUD) 작업..