DynamoDB란?
AWS DynamoDB Local을 컨테이너에 띄우기
$ docker pull dwmkerr/dynamodb
$ docker run -p 8000:8000 dwmkerr/dynamodb -sharedDb
-sharedDb : AWS CLI를 통해 만들어진 Data에 AWS SDK를 통해 접근하기 위해서는 다음 옵션을 주어야 한다. 이 옵션을 주지 않으면, connection마다 database를 가지게 되어 다른 client인 경우 database를 공유하지 않는다.
설정이 끝나면 브라우저에 http://localhost:8000/shell을 띄워보자. 오른쪽 상단에 있는 톱니바퀴를 클릭하여 Access Key를 설정하자.
AWS CLI를 이용하기
$ aws dynamodb list-tables --endpoint-url http://localhost:8000
$ aws dynamodb create-table --table-name {Your Table Name} --attribute-definitions AttributeName={Your Key Name},AttributeType=S --key-schema AttributeName={Your Key Name},KeyType=HASH --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 --endpoint-url http://localhost:8000
$ aws dynamodb list-tables --endpoint-url http://localhost:8000
아래 그림은 AWS SDK ( javascript ) 명령어를 이용하여 실행한 화면이다. 왼쪽에 API를 입력해준 후 재생버튼을 누르면 오른쪽에 실행결과가 나타난다. API에 대한 정보는 우측 상단에 있는 </>을 클릭하여 확인해보면 된다.
Spring Boot와 연동하기
// AWS Dynamic DB
compile group: 'com.amazonaws', name: 'aws-java-sdk-dynamodb', version: '1.11.34'
compile group: 'com.github.derjust', name: 'spring-data-dynamodb', version: '4.3.1'
# --- Amazon DynamoDB
amazon:
dynamodb:
endpoint: http://localhost:8000
aws:
accesskey: your access key
secretkey:
3. AWS SDK를 이용하여 Local에 설치된 DynamoDB와 연동을 하자.
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB;
import com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
@Configuration
public class DynamoDBConfig {
@Value("${amazon.dynamodb.endpoint}")
private String amazonDynamoDBEndpoint;
@Value("${amazon.aws.accesskey}")
private String amazonAWSAccessKey;
@Value("${amazon.aws.secretkey}")
private String amazonAWSSecretKey;
@Bean
public AmazonDynamoDB amazonDynamoDB() {
AmazonDynamoDB amazonDynamoDB
= new AmazonDynamoDBClient(amazonAWSCredentials());
if (!StringUtils.isEmpty(amazonDynamoDBEndpoint)) {
amazonDynamoDB.setEndpoint(amazonDynamoDBEndpoint);
}
return amazonDynamoDB;
}
@Bean
public AWSCredentials amazonAWSCredentials() {
return new BasicAWSCredentials(
amazonAWSAccessKey, amazonAWSSecretKey);
}
}
다음과 같이 설정을 해주면 DynamoDB API(https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Operations_Amazon_DynamoDB.html)를 이용하여 테스트를 진행하면 되겠다.
마무리하며
'DevOps > AWS' 카테고리의 다른 글
AWS DynamoDB - (3) AWS SDK for Java 설정하기 (0) | 2018.07.20 |
---|---|
AWS DynamoDB - (2) 인증 및 접근 제어 ( Authentication and Access Control ) (0) | 2018.07.18 |
퍼블릭 서브넷과 프라이빗 서브넷이 있는 VPC 구축 (1) - VPC 설정 (0) | 2018.07.11 |
Private Subnet에 RDS 구축 및 연결하기 ( Hiding a DB Instance in a VPC from the Internet ) (0) | 2018.07.05 |
보안 설정하기 ( securing your system - IAM, security groups, VPC ) (0) | 2018.06.22 |