-
[1] Lambda & DocumentDB 연결AWS/Hands-on 2023. 7. 14. 16:05
API Gateway 에서 받은 데이터를 Lambda에서 처리 후 DocumentDB 에 로그를 저장하는 로직을 구성하게 되었다.
이번 포스팅에서는 Lambda에서 DocumentDB 연결 방법을 2개 글에 나눠서 DocumentDB 생성과 Lambda에서 DocumentDB 연결 방법으로 작성해보려고한다.
DocumentDB 란
DocumentDB 를 처음 다루게 되어서 생성부터 클러스터를 막 만들어야하고 이자식 엄청 생소한 서비스로 다가왔다.
그래서 먼저 DocumentDB에 대해 알아봤는데 AWS 공식문서를 찾아보면 DocumentDB는 AWS 의 관리형 MongoDB 호환 데이터베이스 서비스라고 한다. 때문에 MongoDB 를 이해하면 DocumentDB의 기본 구조도 이해할 수 있을것 같았다.
Amazon DocumentDB란 무엇입니까 (MongoDB와 호환) - Amazon DocumentDB
이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.
docs.aws.amazon.com
MongoDB의 데이터 모델
Database - Collection 의 물리적 컨테이너(Collection들의 그룹)
Collection - RDBMS의 table 개념. Document의 그룹이다.
Document - RDBMS의 row 개념. MongoDB는 Json 기반의 Document 모델을 사용한다.
아래와 같이 한 개 이상의 key-value로 이루어진 Json 형식 모델이다.
{ _id: POST_ID, title: POST_TITLE, content: POST_CONTENT, author: POST_WRITER, hashtags: [ TAG1, TAG2, TAG3 ], // subdocument time: POST_TIME comments: [ // subdocument { username: COMMENT_WRITER, mesage: COMMENT_MESSAGE, time: COMMENT_TIME }, { username: COMMENT_WRITER, mesage: COMMENT_MESSAGE, time: COMMENT_TIME } ] }
Key/Value - 일반 RDBMS의 Column 개념이다.
정리해보면 아래와 같은 구조인것!
• Mongodb : DB > Collection > Document > Key:Value
• RDBMS : DB > Table > Row > Column
몽고디비는 기본적으로 하나의 primary와 두개의 secondary로 ReplicaSet을 구성하며 primary는 데이터 쓰기 요청을 처리하고 secondary는 primary부터 변경된 데이터를 복제한다.
만일 primary 서버에 문제가 생기면 secondary가 primary로 전환되어 서버를 계속 유지시킨다.
AWS DocumentDB 도 리소스 생성시 클러스터를 생성하면 인스턴스 수를 조정할 수 있으며 기본인스턴스와 복제본 인스턴스로 구성된다. 생성된 DocumentDB의 기본 인스턴스를 삭제하면 복제본 인스턴스가 기본 인스턴스로 올라오게된다.
DocumentDB 생성
AWS 콘솔에서 DocumentDB 서비스를 선택하여 클러스터 생성을 시작합니다.
1. 생성할 DocumentDB 클러스터의 이름과 인스턴스 타입, 개수를 선택합니다. 인스턴스 개수가 2개 이상이 되면 기본 인스턴스와 복제본 인스턴스가 만들어지는데 테스트용이니 기본 인스턴스 1개만 생성하겠습니다
2. 마스터 사용자 정보를 입력하고 네트워크 설정을 합니다.
이때 VPC 보안그룹에서 DocumentDB 포트를 인바운드로 열어주어야합니다. DocumentDB 포트번호는 이거 다음 아래에서 설정합니다!
아래에 클러스터 옵션에 지정된 포트 번호를 위에 보안그룹에서 열어주면 됩니다! 나머지 옵션들은 디폴트값으로 놔두고 클러스터 생성을 완료합니다.
기다리다보면 클러스터가 available 상태로 올라옵니다.
다음 글에서는 생성한 DocumentDB와 Lambda 연결 과정을 포스팅하겠습니다 👾
DocumentDB 공부 시 참고한 블로그
[MONGO] 📚 몽고디비 특징 & 비교 & 구조 (NoSQL)
MongoDB 란? MongoDB는 문서 지향 데이터 모델(Document DB)을 사용하는 데이터베이스 이다. 이러한 유형의 모델을 사용하면 정형 및 비정형 데이터를 보다 쉽고 빠르게 통합할 수 있다는 장점이 있다. RD
inpa.tistory.com
'AWS > Hands-on' 카테고리의 다른 글
Lambda 에서 XML 이벤트 처리하기 (0) 2023.07.19 [2] Lambda & DocumentDB 연결 (0) 2023.07.14 ECR에 도커 이미지를 업로드하여 Auto Scaling으로 배포하기 (1) 2023.07.09 EC2에 Nexus 설치하기 (0) 2023.07.09 Codepipeline과 Jenkins를 이용한 CI/CD (0) 2023.07.09