ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [개인] DLD Project (1)
    프로젝트 2023. 1. 9. 23:38


    틀린 내용이 있을 수 있습니다.
    발견하시면 말씀 부탁드립니다! 🙇



    나는 낯선 곳에 가면 꼭 지도 어플을 연다. 어플에서 잠시 시선을 떼고 '이쯤으로 가면 되겠지' 싶어 걷다 보면 잘못된 길로 새곤 한다. 그렇기에 더더욱 지도에 시선을 고정하고 다닌다. 이러다 보니 주변 건물이나 풍경을 못 보고 지나친 적이 많다. 만약 내가 엉뚱한 길로 가기 시작할 때 누군가 알려준다면, 지도 대신 주변을 구경하며 걸을 수 있겠지? 이게 이 프로젝트를 시작한 이유다. DLD는 Don't Look Down을 줄인 말로, 고개 숙여 지도를 보는 것에서 벗어나 주변 풍경을 구경했으면 하는 나의 소소한 바람을 나타낸 것이다.😎

    기술 스택

    Javascript, Typescript, React.js, Nest.js, Mongo DB

    Mongo DB 세팅 방법

    방법 1. AWS EC2 서버에 mongodb 설치 및 환경 설정
    → 프리티어 지원되는 스펙을 선택해 서버에 설치하면 되므로 비교적 간단.
    https://www.mongodb.com/docs/manual/administration/install-on-linux/
    방법 2. AWS DocumentDB를 사용해 MongoDB 호환
    → 편리하지만 DocumentDB는 프리티어 지원이 안돼 비용 발생.
    방법 3. Mongo Atlas 사용
    → 무료 버전 지원. 기본 기능만 제공하며, 전체 기능을 사용하려면 Dedicated 버전(유료)으로 업그레이드 필요.

    첫 번째 방법처럼 진행하려고 했으나 구글링을 하며 세 번째 방법이 있다는 것을 알게 되었다. 무료 버전도 지원하겠다, 안 해본 방법으로 진행하는 게 재미있을 것 같아 세 번째 방법을 통해 환경 세팅하기로 결정했다. (이게 잘한 결정인지는 하다 보면 알게 되겠지!) 그리하여 우선 EC2 서버 1개와 Mongo Atlas를 구축했다. 아래 이어지는 내용은 Mongo Atlas를 구축하는 방법이다. (EC2 서버 구축하는 건 생략)

    Mongo Atlas 구성

    1. 회원가입

    https://cloud.mongodb.com/

    MongoDB Cloud

    MongoDB Cloud is a unified data platform for modern applications and includes a global cloud database, search, data lake, mobile, and application services.

    www.mongodb.com


    2. 클러스터 생성

    Create 버튼 클릭

    무료 버전 스펙은 Shared RAM, 512 MB Storage, 백업 미지원.

    클라우드 종류 선택하고 리전 선택.


    3. 보안 설정

    패스워드 방식과 인증서 방식으로 나뉘며 난 인증서 방식을 선택했다.


    어떤 환경에서 DB 접근을 허용할 것인지 설정해야 한다. 로컬 환경으로 설정할 경우 고정적인 공간에서만 작업을 할 수 있을 테지만 클라우드 환경으로 설정하면 작업 공간 제약이 없기 때문에, 클라우드 환경에서 접근 가능하게 설정했다. (사전에 AWS EC2 세팅 필요)

    4. EC2 서버에 몽고 DB pem key 업로드

    지금까지의 구조는 아래 그림과 같다. 이를 위해 다운로드한 DB 인증키를 EC2 서버에 옮겨야 한다.

    scp 명령어로 로컬에 있는 파일을 원격 서버에 전송할 수 있다. EC2 서버에 접근하려면 서버 인증키가 필요하므로 다음과 같이 입력한다. (옵션 -i는 인증 파일을 입력할 수 있게 해 주며, 이 외 다른 옵션은 man을 통해 확인할 수 있다)

    scp(SecureCopy)는 원격 서버에 파일/디렉터리를 보내거나 혹은 원격 서버로부터 파일/디렉터리를 받을 때 사용하는 파일 전송 프로토콜이다. ssh 원격 접속 프로토콜 기반(22번 포트 사용)이므로 보안 측면에서 안전하다.
    scp -i <서버 인증키> <업로드 대상 파일 경로> <원격서버 ID>@<원격서버 주소>:<업로드할 경로>


    5. EC2 서버에 mongosh(MongoDB Shell) 설치

    EC2서버에 접근하여 mongosh를 설치한다. 이때 사용하는 명령어는 서버의 운영체제에 따라 다르므로 확인 필요하며 내 경우에는 운영체제가 Ubuntu 20.04이었다.

    1) 공용키를 가져온다.

    wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -


    2) 리스트 파일을 생성한다.

    echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

     

    3) 로컬 패키지 데이터베이스를 업데이트

    sudo apt-get update
     
     
    4) mongosh 설치
    sudo apt-get install -y mongodb-mongosh


    6. EC2 서버 → MongoDB 커넥션

    mongosh "mongodb+srv://<클러스터 명>.csq1qo7.mongodb.net/myFirstDatabase?authSource=%24external&authMechanism=MONGODB-X509" --apiVersion 1 --ssl --sslPEMKeyFile <pem 파일경로>




    참고 자료

    댓글

jaejade's blog ٩( ᐛ )و