PromleeBlog
sitemapaboutMe

posting thumbnail
MongoDB Atlas 시작하기 - MongoDB 올인 11일차
Getting Started with MongoDB Atlas - All-in Day 11

📅

🚀

들어가기 전에🔗

지난 시간에는 우리 MongoDB 데이터베이스를 안전하게 지키는 다양한 보안 기능에 대해 배웠습니다. 인증, 권한 부여, 암호화의 중요성을 알게 되었죠.
오늘은 우리의 많은 운영 부담을 덜어줄 수 있는 강력한 솔루션, 바로 MongoDB의 공식 클라우드 데이터베이스 서비스인
MongoDB Atlas
에 대해 알아보겠습니다.

🚀

MongoDB Atlas란 무엇일까요?🔗

MongoDB Atlas는 MongoDB를 개발한 MongoDB, Inc.에서 직접 제공하는
완전 관리형 클라우드 데이터베이스 서비스
입니다.
'완전 관리형'이라는 말은 우리가 데이터베이스 서버 하드웨어나 운영체제 설치, MongoDB 소프트웨어 설치 및 업데이트, 백업, 고가용성 구성 등 많은 복잡한 운영 작업을 직접 할 필요 없이 Atlas가 알아서 처리해 준다는 의미입니다.
Atlas는 Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP)과 같은 주요 클라우드 제공자 위에서 실행되므로, 우리가 선호하는 클라우드 환경에서 MongoDB를 사용할 수 있습니다.
이런 형태의 서비스를
DBaaS(Database-as-a-Service)
라고 부릅니다.
MongoDB Atlas
MongoDB Atlas

🚀

왜 MongoDB Atlas를 사용할까요? Atlas의 장점🔗

쉬운 관리 및 운영
높은 가용성 및 안정성
뛰어난 확장성
강력한 보안 기능
풍부한 추가 기능 및 통합
무료 티어(Free Tier) 제공

🚀

MongoDB Atlas 클러스터 만들기🔗

이제 직접 MongoDB Atlas를 경험해 볼 시간입니다!
계정을 만들고 무료 클러스터를 생성하여 애플리케이션에 연결하는 과정을 단계별로 안내해 드리겠습니다.

1단계: Atlas 계정 생성 및 로그인🔗

  1. MongoDB Atlas 공식 웹사이트 (https://www.mongodb.com/cloud/atlas/register)에 접속합니다.
  2. 이메일 주소로 직접 가입하거나, Google 계정 등을 사용하여 간편하게 가입할 수 있습니다.
  3. 로그인 후, 처음이라면 조직(Organization) 및 프로젝트(Project)를 생성하라는 안내가 나올 수 있습니다. 안내에 따라 기본 설정을 완료합니다.
대시보드
대시보드

2단계: 무료 클러스터(M0) 생성하기🔗

  1. 프로젝트 대시보드에서 'Build a Database' 또는 'Create'와 같은 버튼을 클릭합니다.
  2. 클러스터 유형을 선택하는 화면이 나타납니다. 우리는 무료 티어를 사용할 것이므로,
    Free
    유형을 선택합니다.
  3. 클라우드 제공자 및 리전 선택
    :
    AWS, Google Cloud, Azure 중 원하는 클라우드 제공자를 선택합니다.
    데이터를 저장할 리전(Region, 지리적 위치)을 선택합니다. 사용자 위치와 가까운 리전을 선택하면 응답 속도가 빠를 수 있습니다. (예: AWS의 ap-northeast-2 (서울), GCP의 asia-northeast3 (서울)). 무료 티어는 선택 가능한 리전이 제한될 수 있습니다.
  4. 클러스터 이름 지정 (Cluster Name)
    :
    클러스터를 식별할 수 있는 이름을 지정합니다. (예: MyFirstAtlasCluster). 기본 이름(Cluster0 등)을 사용해도 무방합니다.
    클러스터 유형 및 리전 선택
    클러스터 유형 및 리전 선택
  5. 모든 설정을 확인한 후, 'Create Cluster' (또는 'Create') 버튼을 클릭합니다.
    클러스터가 실제로 생성되고 사용할 수 있게 되기까지 몇 분 정도 시간이 소요됩니다. 대시보드에서 생성 진행 상태를 확인할 수 있습니다.

3단계: 데이터베이스 사용자 생성🔗

클러스터 생성이 완료되면, 이 클러스터 안의 데이터베이스에 접속할 수 있는 사용자를 만들어야 합니다.
  1. 클러스터 목록 또는 방금 생성한 클러스터의 Overview 화면으로 이동합니다.
  2. 좌측 메뉴에서 'Database Access' 버튼을 클릭합니다.
    Database Access
    Database Access
  3. 'Add New Database User' 버튼을 클릭합니다.
  4. Authentication Method
    : 'Password' (비밀번호 방식)를 선택합니다.
  5. Username 및 Password
    : 애플리케이션이나 mongosh 등에서 사용할 사용자 이름과 강력한 비밀번호를 설정합니다. (예: 사용자 이름 myAppUser, 비밀번호는 안전하게 직접 입력).
  6. Database User Privileges
    : 사용자에게 부여할 권한을 선택합니다.
    간단하게 시작하려면, 'Built-in Role'을 선택하고 드롭다운 메뉴에서 Read and write to any database (모든 데이터베이스에 대한 읽기/쓰기 권한) 또는 Atlas admin (관리자 권한)을 선택할 수 있습니다.
    또는 'Specific Privileges'를 선택하여 특정 데이터베이스나 컬렉션에 대한 세밀한 권한(예: 특정 DB에만 readWrite 부여)을 설정할 수도 있습니다.
  7. 'Add User' 버튼을 클릭하여 사용자 생성을 완료합니다.
데이터베이스 사용자 추가 팝업창
데이터베이스 사용자 추가 팝업창

4단계: 네트워크 접근 설정 (IP 접근 목록)🔗

보안을 위해, MongoDB Atlas는 기본적으로 등록된 IP 주소에서만 데이터베이스 접속을 허용합니다.
  1. 좌측 탐색 메뉴에서 'NETWORK ACCESS' 항목을 클릭하거나, 클러스터 Overview 화면의 'Network Access' 탭을 선택합니다. (Database Access 버튼 아래에 있음)
  2. 'Add IP Address' 버튼을 클릭합니다.
  3. 접근을 허용할 IP 주소를 추가하는 방법에는 여러 가지가 있습니다.
    'ADD CURRENT IP ADDRESS': 현재 여러분이 사용하고 있는 컴퓨터의 공인 IP 주소를 자동으로 감지하여 추가해 줍니다. (개발 및 테스트 시 편리)
    'ALLOW ACCESS FROM ANYWHERE': 모든 IP 주소(0.0.0.0/0)에서의 접근을 허용합니다.
    이 옵션은 보안상 매우 취약하므로, 학습 또는 아주 잠깐의 테스트 목적으로만 사용하고, 실제 운영 환경에서는 절대 사용하지 않아야 합니다.
    🖐️
    사용 후에는 반드시 필요한 IP 주소로 제한하는 것이 중요합니다.
    특정 IP 주소 또는 IP 주소 범위(CIDR 블록)를 직접 입력할 수도 있습니다.
  4. 설명(Description)을 간단히 입력하고(선택 사항) 'Confirm' 버튼을 클릭합니다.
IP 주소 규칙이 클러스터에 적용되는 데 잠시 시간이 소요될 수 있습니다. (Status가 'Pending'에서 'Active'로 변경)
ALLOW ACCESS FROM ANYWHERE 시
ALLOW ACCESS FROM ANYWHERE 시

5단계: 애플리케이션에 연결하기🔗

데이터베이스 사용자와 네트워크 접근 설정까지 완료되었다면, 이제 여러분의 애플리케이션이나 개발 도구에서 Atlas 클러스터에 접속할 준비가 되었습니다.
  1. 클러스터 Overview 화면으로 돌아와서 'Connect' 버튼을 클릭합니다.
    Connect 버튼
    Connect 버튼
  2. 다양한 연결 방법을 안내하는 팝업창이 나타납니다.
    • Drivers
      (또는 'Connect your application')
      가장 일반적인 방법으로, 다양한 프로그래밍 언어(Node.js, Python, Java, C# 등)에서 사용하는 MongoDB 드라이버를 위한 연결 문자열(Connection String)을 제공합니다.
      1. 사용하려는 프로그래밍 언어와 해당 언어의 MongoDB 드라이버 버전을 선택합니다.
      2. 화면에 표시된
        연결 문자열(Connection String URI)
        을 복사합니다. 이 문자열은 보통 다음과 같은 형식을 가집니다.
        mongodb+srv://<username>:<password>@<cluster-url>/<dbname>?retryWrites=true&w=majority
      3. 복사한 연결 문자열에서 <username> 부분은 3단계에서 생성한 데이터베이스 사용자 이름으로, <password> 부분은 해당 사용자의 비밀번호로 직접 수정해야 합니다.
        <dbname> 부분은 연결 시 기본으로 사용할 데이터베이스 이름인데, 애플리케이션 코드에서 지정할 수도 있고, 생략하면 test 데이터베이스를 사용하게 됩니다.
    • Compass
      MongoDB의 공식 GUI 도구인 Compass를 사용하여 Atlas 클러스터에 연결하는 방법을 안내합니다.
      보통 Compass가 설치되어 있다면 연결 문자열을 자동으로 채워주거나 직접 입력하여 연결할 수 있습니다.
    • Mongo Shell
      mongosh 명령줄 인터페이스를 사용하여 Atlas 클러스터에 연결하는 방법을 안내합니다.
      연결 문자열을 복사하여 터미널에 붙여넣고 실행하면 됩니다.
driver 선택 시
driver 선택 시
연결 문자열 예시 (Node.js - mongodb 드라이버):
// myAppUser 사용자로 myFirstAtlasCluster에 연결 (기본 DB는 test)
// 실제 연결 시에는 사용자비밀번호와 클러스터 URL(myfirstatlascluster.xxxxx.mongodb.net 부분)을 정확히 입력해야 합니다.
const uri = "mongodb+srv://myAppUser:여기에실제비밀번호입력@myfirstatlascluster.xxxxx.mongodb.net/?retryWrites=true&w=majority";
 
// 예시: MongoClient 사용하여 연결
const { MongoClient } = require("mongodb");
const client = new MongoClient(uri);
async function run() {
  try {
    await client.connect();
    console.log("Successfully connected to Atlas!");
    // 데이터베이스 작업 수행...
  } finally {
    await client.close();
  }
}
run().catch(console.dir);
이제 복사하고 수정한 연결 문자열을 여러분의 애플리케이션 코드에 적용하면 MongoDB Atlas 클러스터와 통신할 수 있습니다!

🚀

결론🔗

오늘은 클라우드 기반의 완전 관리형 MongoDB 서비스인 MongoDB Atlas에 대해 알아보았습니다.
그리고 직접 계정을 만들고 무료 M0 클러스터를 생성하여 데이터베이스 사용자를 만들고, 네트워크 접근을 설정한 후, 애플리케이션에서 사용할 수 있는 연결 문자열을 얻는 과정까지 단계별로 따라 해 보았습니다.
MongoDB Atlas를 활용하면 복잡한 인프라 관리나 운영에 대한 부담을 크게 줄이고, 오롯이 애플리케이션 개발과 비즈니스 로직 구현에 더 집중할 수 있게 됩니다.
다음 시간에는 MongoDB와 함께 사용할 때 개발 및 운영 효율을 크게 높여주는 다양한
툴 및 유틸리티
에 대해 알아보겠습니다.
MongoDB의 공식 GUI 도구인 MongoDB Compass부터, 데이터 백업 및 복원을 위한 mongodumpmongorestore, 그리고 데이터를 쉽게 가져오고 내보낼 수 있는 mongoimportmongoexport까지 유용한 도구들을 자세히 살펴보는 시간을 갖도록 하겠습니다.

참고🔗