Spring

[SpringBoot MongoDB Sample] AWS Document DB 개발환경 셋팅 + MongoDB Compass Aggregation 테스트

nineDeveloper 2024. 7. 1.
728x90

Document DB 개발환경 셋팅

 

Sample Code를 작성하기 전에 AWS DocumentDB 로 개발환경을 셋팅해서 진행했던 내용을 정리

AWS Document DB의 경우 기본적으로 Private 도메인만 제공되므로 로컬에서는 AWS SSM을 통해 port forwarding 하여 접속


🚦 개발 환경 설정

Mongo Shell 접속 명렁어

$ mongosh --host test-dev-docdb.cluster-cueokyhf6yae.ap-northeast-2.docdb.amazonaws.com:27017 --username username --password password

SSM Connection 명령어

$ aws ssm start-session --target i-07609be66e5800000 \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{"portNumber":["27017"],"localPortNumber":["27017"],"host":["test-dev-docdb.cluster-cueokyhf6yae.ap-northeast-2.docdb.amazonaws.com"]}'

Application 접속 URI

mongodb://username:password@localhost:27017/database?directConnection=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false&w=majority

DocumentDB Local 접속 Alias 설정

먼저 Local에 aws-session-manager-plugin 가 설치 되어 있어야 된다

# Local에 aws-session-manager-plugin 설치
brew install aws-session-manager-plugin

DocumentDB Local 접속 Alias를 .zshrc에 추가

alias docdb="aws ssm start-session --target i-07609be66e5800000 \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{\"portNumber\":[\"27017\"],\"localPortNumber\":[\"27017\"],\"host\":[\"test-dev-docdb.cluster-cueokyhf6yae.ap-northeast-2.docdb.amazonaws.com\"]}'"

이렇게 나오면 Local에서 DocumentDB에 접속할 준비가 완료된 상태


🚦 MongoDB Compass로 DocumentDB 접속

DocumentDB 개발 환경 설정을 마치고 Local에서 DocumentDB 접속할 준비가 된 상태에서

접속 URI를 입력하거나 Advanced Connection Options를 설정하고 Connect 버튼을 클릭하여 접속

mongodb://username:password@localhost:27017/?directConnection=true&authSource=database


MongoDB Compass Aggregations 탭에서 Aggregation 테스트

$match, $lookup 을 사용한 Pipeline Query를 구성해서 user와 연관된 recent_search 와 recent_vew 데이터를 Aggregation 해서 가져오는 Sample

코드로 작성하기 전에 MongoDB Compass의 Aggregation 탭에서 Query를 먼저 테스트해보고 코드를 작성하는 것이 좋다

728x90

댓글

💲 추천 글