[수미수의 개발 브로구]

[WebFlux] AWS DynamoDB 설정 본문

Language & Framework/WebFlux

[WebFlux] AWS DynamoDB 설정

수미수 2023. 8. 8. 23:28
반응형

들어가기 전

  WebFlux 기반의 프로젝트에서, DynamoDB 를 적용하게 되었고, WebFlux 환경에서 어떻게 DynamoDB 를 설정하고, 구현했는지에 대해서 이야기 하고자 한다. 먼저, WebFlux 프로젝트에서 AWS DynamoDB 설정 하는 방법에 대해서 알아보자.

따라하기

build.kt 설정

  아래와 같이 build.kt 파일에 dynamodb 관련 설정 파일을 정의 한다.

implementation ("software.amazon.awssdk:dynamodb-enhanced")
 
dependencyManagement {
    imports {
        mavenBom("software.amazon.awssdk:bom:2.16.47")
    }
}

ConfigFile 생성

  build.kt 파일에 dynamodb 정보를 정의 한 뒤, DynamoDB 정보를 Bean 을 주입하기 위한 Config 파일을 생성 한다. 

@Configuration
class DynamoDbConfig {
 
    @Bean
    fun getDynamoDbAsyncClient(
        @Value("\${cloud.aws.ddb.region.static}") region: String?
    ): DynamoDbAsyncClient {
        return DynamoDbAsyncClient.builder()
            .region(Region.of(region))
            .credentialsProvider(DefaultCredentialsProvider.builder().build())
            .build()
    }
}
  • DynamoDbAsyncClient
    • WebFlux 프로젝트에서, 비동기 논블럭킹으로 처리하기 위해 DynamoDbAsyncClient 객체를 사용하였고, 해당 객체를 통해서 DynamoDB 에 Put 을 하게 되면, 새로운 Worker 쓰레드에서 Job 을 처리 한 뒤 다음 프로세스를 처리 할 수 있다.
  • DefaultCredentialsProvider

로컬에서 테스트 하기

  DynamoDB를 로컬에서 테스트 하기 위해서, VM options 에 아래와 같이 acccessKey 와 secretKey를 입력 한다. WebFlux 에서는 기존 MVC 와 다르게 Key 값의 이름이 아래와 같다.

  • aws.accessKeyId : Access Key 정보
  • aws.secretAccessKey : Secret Key 정보

  DynamoDbAsyncClient를 생성할때, DefaultCredentialsProvider 를 사용하였기 때문에, local 에서 VM Options 로 DynamoDB 와 통신 할 수 있게 된다.

반응형