Vercel + Mongodb Atlas 연동 (feat. 504 Error)

Shyuuuuni·2024년 1월 9일
1

❌ Trouble-shooting

목록 보기
9/9

문제상황

  • Next.js 14와 Mongodb Atlas를 사용해 프론트+서버 풀스택 개발 진행
  • Mongodb Altas 클러스터 생성 시 허용 IP를 집 IP만 허용하도록 설정
  • 배포 후 Next.js의 데이터베이스 접근이 포함된 서버 액션 호출 시 504 에러 발생

원인/문제점

  • 인바운드 IP를 설정해두고 이를 수정하지 않음
  • Vercel에서 서버 액션과 같은 함수 호출은 Serverless로 작동하는데, 그 때 마다 동적으로 IP가 할당됨
  • 즉, Vercel의 특정 IP를 허용할 수 없는 상황

해결방법

mongodb 공식문서에 방법이 소개되어 있다.

1. Vercel - integrations - MongoDB Atlas 선택

2. Add integration

2-1. 계정 선택

2-2. 대상 프로젝트 선택

전체 혹은 일부 프로젝트만 선택하여 적용할 수 있다.

나는 프로젝트가 하나이기도 하고, 혹시 모를 사이드이펙트 방지를 위해 두번째 특정 프로젝트만 적용하도록 선택했다.

3. MongoDB 로그인 - 대상 데이터베이스 선택

2번을 완료하면 Vercel 사이트에서 새로운 창이 뜨고, MongoDB 로그인을 요청한다. 로그인 이후 Vercel과 MongoDB 연결에 대한 설정을 할 수 있도록 안내가 진행된다.

결과

Serverless 함수 호출에서도 MongoDB Atlas에 접근하여 데이터를 가져올 수 있게 되었다.

래퍼런스

  • mongodb
  • hasan-alsulaiman.medium.com: 비슷한 에러 코드가 발생해서 찾아봤는데, region이 다르면 연결하는데 시간이 오래 걸려서 504가 발생할 수 있다고 한다. 필요하다면 적용해도 좋을 것 같다.
profile
배짱개미 개발자 김승현입니다 🖐

0개의 댓글