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
'Spring' 카테고리의 다른 글
[SpringBoot MongoDB Sample] MongoDB 데이터 구조 설계에 따른 서비스 구현 및 테스트 코드 작성 (0) | 2024.07.01 |
---|---|
[SpringBoot MongoDB Sample] AWS DocumentDB, DynamoDB 비교 및 MongoDB 데이터 구조 설계 (0) | 2024.07.01 |
[배워서 바로 쓰는 스프링 부트2] 1.3 예제 프로젝트의 구성 (0) | 2020.09.05 |
[배워서 바로 쓰는 스프링 부트2] 1.2 웹 애플리케이션 개발 (0) | 2020.09.05 |
[배워서 바로 쓰는 스프링 부트2] 1.1 스프링 부트의 기초 (0) | 2020.09.05 |
댓글