DynamoDB
이번엔 AWS 의 DynamoDB를 한번 사용해보려고 한다.
일단 AWS의 사용자 키가 필요한데 없다면 mik-a.tistory.com/59 이 글을 보고 만들수있다.
1. 테이블 만들기
ap-northeast-2.console.aws.amazon.com/dynamodb/home?region=ap-northeast-2#
https://ap-northeast-2.console.aws.amazon.com/dynamodb/home?region=ap-northeast-2
ap-northeast-2.console.aws.amazon.com
테이블을 만들었다.
nodejs 로 넘어가서,
npm install aws-sdk
aws sdk 를 사용하기위한 모듈을 설치해준다
테이블에 데이터를 넣어보자
const AWS = require('aws-sdk');
const tableName = 'Test';
const key = {
accessKeyId : '<Access Key>', // 개인 Access key 를 넣어준다.
secretAccessKey: '<Secret AccessKey>',
region : 'ap-northeast-2'
};
AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();
const put = {
TableName : tableName,
Item : {
idx : 'idx001',
data : 'data1',
data2 : 'data2'
}
}
dynamoDB.put(put, (e,d) => {
console.log(e,d)
});
key 의 region 은
aws 의 지역을 보면 된다.
위의 코드를 실행하고, aws 의 dynamodb 테이블을 보자
데이터가 들어가있는걸 확인할수 있다.
추가로 2개의 데이터를 더 추가했다.
이제 하나의 데이터를 찾아보자
const AWS = require('aws-sdk');
const tableName = 'Test';
const key = {
accessKeyId : '<Access Key>',
secretAccessKey: '<Secret AccessKey>',
region : 'ap-northeast-2'
};
AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();
const query = {
TableName : tableName,
KeyConditionExpression : 'idx = :i',
ExpressionAttributeValues : {
':i' : 'idx001'
}
}
dynamoDB.query(query, (d) => {
console.log(d);
})
{
Items: [ { data2: 'data2', data1: 'data1', idx: 'idx001' } ],
Count: 1,
ScannedCount: 1
}
테이블의 모든 데이터를 가져와보자
const AWS = require('aws-sdk');
const tableName = 'Test';
const key = {
accessKeyId : '<Access Key>',
secretAccessKey: '<Secret AccessKey>',
region : 'ap-northeast-2'
};
AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();
const scan = {
TableName : tableName,
}
dynamoDB.scan(scan, (e,d) => {
console.log(d);
})
{
Items: [
{ data2: 'data2', data1: 'data1', idx: 'idx002' },
{ data2: 'data2', data1: 'data1', idx: 'idx003' },
{ data2: 'data2', data1: 'data1', idx: 'idx001' }
],
Count: 3,
ScannedCount: 3
}
테이블의 데이터중 하나를 수정(업데이트) 해보자
const AWS = require('aws-sdk');
const tableName = 'Test';
const key = {
accessKeyId : '<Access Key>',
secretAccessKey: '<Secret AccessKey>',
region : 'ap-northeast-2'
};
AWS.config.update(key);
const dynamoDB = new AWS.DynamoDB.DocumentClient();
const update = {
TableName : tableName,
Key : {idx : 'idx001'},
UpdateExpression : 'set data1 = :d1, data2 = :d2',
ExpressionAttributeValues:{
":d1": 'newdata1',
":d2": 'newdata2'
},
}
dynamoDB.update(update, (e,d) => {
console.log(e,d)
})
이렇게 간단하게 DynamoDB 를 사용해봤다.
지금까지 MongoDB만 사용하다가 DynamoDB를 처음써보니 아직 익숙하지가 않은데..
쓰다보면 익숙해지겠지 뭐..