🐳
Engineering Wiki
  • 🖐️Welcome
  • 📚백엔드 로드맵
    • 메인페이지
  • Spring
    • spring boot
      • security
        • security 기본
        • filter
        • JWT
      • 스프링 핵심 원리
        • 객체지향 설계와 스프링
        • 스프링IoC컨테이너와 bean
      • IntelliJ
        • Spring boot 생성 및 git clone
        • Spring boot 프로젝트 생성
      • vscode
        • Spring boot 프로젝트 생성
      • scheduling
        • 스케쥴링 설정시 에러 상황
      • paging
      • 에러 핸들링
        • ErrorCode생성 및 ExceptionHandler로 에러처리
        • Security & JWT 에러처리
        • spring cloud sleuth
      • 로그 핸들링
        • logback
        • HttpRequestServlet 래핑
      • gradle
        • hidetake.ssh 키파일 설정
      • maven
        • maven tomcat
      • lib
        • lombok
        • tiles
      • API 부하테스트 툴 K6
      • JPA
        • Mybatis / JPA 차이
      • Mybatis
    • spring batch
      • batch
        • Spring Batch 기본개념
  • FRONT
    • vue
      • Spring boot & Vue.js 설치 및 연동
      • Spring boot & Vue.js 웹개발 세팅
      • vue의 기본구조 실행순서
      • SPA 이해
  • JAVA
    • 환경설정
    • 자바의 정석
      • generics
  • DATABASE
    • mongoDB
      • 정규표현식을 사용해 대소문자 구분없이 검색
      • mongoDB export import
      • MAC 설치 및 실행
    • MYSQL
      • dbeaver 데이터 내보내기 불러오기
      • [에러] 스프링 mysql 8 연결 에러
      • MAC M1 mysql 설치
      • GROUP BY 정리
      • 테이블 명세서 빠르게 생성
  • AWS
    • IAM
    • 설치&명령어
      • eb 설치 & 명령어
      • CLI 설치 & 명령어
    • sam
      • SAM 개념
      • SAM Lambda S3이벤트 트리거, MongoDB 접근코드
      • SAM intellij 배포
    • peering
      • mongodb atlas AWS vpc peering
      • MongoDB & Lambda VPC peering ,endpoint설정
    • 쉘스크립트
      • 도커 컨테이너 중단시 슬랙 리포팅 및 재실행
  • DOCKER
    • 설치&명령어
      • Docker 기초
      • Docker Container 유용한 명령어
    • MAC관련 문제
      • 이미지 빌드 관련 문제상황
      • MAC M1 도커 실행 원리
      • [에러] docker: Error response from daemon: Mounts denied:
  • ELK
    • 세팅
      • 로드벨런서에 logstash 세팅
      • Elastic Beanstalk + Elastic Cloud + docker 설정
      • ElasticCloud + filebeat + logstash + docker 설정 (버전8.5.0)
      • ELK 적용 사례, 로그수집(filebeat/logstash) 설명
    • logstash
      • Logstash는 로그를 왜 message라는 field로 저장할까?
      • logstash health check
    • filebeat
      • filebeat 아키텍쳐
  • unity
    • 유니티 기본
      • 캐릭터 이동
      • 카메라
  • WORDPRESS
    • 워드프레스 기본
  • git
    • GIT 개념
      • 라이프사이클
    • 명령어
      • defult 브랜치 main 으로 변경
      • 첫번째 커밋 삭제(브런치삭제) 후 원격저장소에 강제 push
      • git 원격저장소에 remote 방법(vscode로 진행)
      • git gh
      • git reset
      • git rebase
  • MAC
    • 개발 환경세팅
      • 맥 초기 개발세팅
    • 유용한내용
      • app store 다운로드 없이 웹에서 Xcode 다운
      • ubuntu iso 설치 usb 만들기
      • 응용프로그램 에러
      • 잠김 파일
  • CS
    • data structure & algorism
      • 자료구조의 정의 및 종류
  • 방통대
    • 대학수학의 이해
      • 1강. 수학의 기초(1)
    • 딥러닝
      • 1강.신경망의 개요
  • NODE
    • 개발기록
      • 인스타그램 API 활용하여 게시물 슬랙에 리포팅
Powered by GitBook
On this page
  • VPC peering
  • Lambda VPC 세팅
  1. AWS
  2. peering

MongoDB & Lambda VPC peering ,endpoint설정

Previousmongodb atlas AWS vpc peeringNext쉘스크립트

Last updated 1 year ago

상태: Done 생성일: 2023년 1월 12일 오후 5:06 유형: 세팅

S3에 파일업로드시 lambda가 실행되어 MongoDB의 데이터를 변경하는 작업을 위해 세팅해주어야 하는 요소들이 있다. MongoDB Atlas와는 Peering으로 VPC를 연결해 주어야하고 람다를 VPC내부 private subnet 에 생성해주어야한다. 그리고 S3는 private subne에 접근하지 못하기 때문에 VPC endpoint 설정을 해주어야 정상적으로 작동한다.

VPC peering

  1. 대시보드에서 vpc 생성 ( VPC Wizard )

  1. 아래와 같이 지정 후 생성

  1. vpc와 연결된 보안그룹이 없으면 생성해줌

  • 기존에 있는 VPC를 사용한다면 새로 생성해줄 필요없음

  1. mongoDB peering Connection

위에서 설정한 aws의 적절한 정보를 작성해줌

  1. 아래와 같이 피어링 된 목록이 뜨고, 안내된 내용대로 피어링을 진행하면 됨

Now all you have to do is accept the peering connection in your AWS account and update your route tables to send traffic for the Atlas VPC CIDR block to the peering ID.

→ 이제 AWS 계정에서 피어링 연결을 수락하고 라우팅 테이블을 업데이트하여 Atlas VPC CIDR 블록에 대한 트래픽을 피어링 ID로 전송하기만 하면 됩니다.

  1. AWS 의 피어링 연결 목록에서 피어링 요청 수락

  1. 라우팅 테이블에서 Atlas VPC CIDR 블록에 대한 트래픽을 피어링 ID로 전송하도록 세팅

라우팅 테이블 : 같은 VPC 내에서 서브넷A → 서브넷B를 연결할때 나침반처럼, 172.31.0.0 ~ 172.31.255.255 의 요청은 local로 같은 VPC내 로컬에서 찾도록 해주고, 그외 모든 IP대역은 인터넷 게이트웨이와 라우팅되어 인터넷과 연결된다.

현재 192.168.248.0/21(Atlas VPC CIDR)를 추가하여 이 IP대역으로 요청을 보낼땐 피어링연결이 된 MongoDB Atlas쪽 VPC로 라우팅 되도록 세팅해준것


Lambda VPC 세팅

MonboDB와 피어링된 VPC내의 private subnet을 2개 생성, 보안그룹도 하나 생성해준다.

template.yaml에 VpcConfig 세팅하면 배포시 자동으로 VPC가 설정된다.

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      .....
			VpcConfig:
			  SecurityGroupIds:
			   - sg-***
			  SubnetIds:
			   - subnet-***
			   - subnet-***
  • 람다를 vpc에 생성할때 private subnet을 써야하는 이유? 아직 모르겠음

그리고 VPC에 엔드포인트를 설정해야한다.

  • VPC 엔드포인트?

  • AWS를 벗어나지 않고 VPC의 외부서비스(=AWS서비스)와 프라이빗하게 연결하기 위해 사용한다. 이경우 퍼블릭으로 해당 서비스를 노출하지 않더라도 연동 할 수 있다.

Untitled

VPC에서 Lambda 함수에 인터넷 액세스 권한 부여
Access AWS S3 from Lambda within VPC
Workshop - AWS Core Services
스크린샷 2023-01-12 오후 5.34.48.png
스크린샷 2023-01-12 오후 5.40.43.png
스크린샷 2023-01-12 오후 5.46.58.png
스크린샷 2023-01-12 오후 5.47.42.png
스크린샷 2023-01-12 오후 5.52.24.png
스크린샷 2023-01-12 오후 5.52.03.png
스크린샷 2023-01-13 오전 10.04.36.png
스크린샷 2023-01-25 오후 12.13.36.png