오늘도 공부
우분투 24이상에서 몽고디비 8.0이상 설치후 인증,원격 허용까지 본문
⚠️ 참고: MongoDB 공식 문서에는 Ubuntu 24.04에 대한 지원이 명시되어 있으며, Ubuntu 24.04에서 Mongo 8.0 이상 사용 가능함이 나옵니다. (MongoDB)
다만 일부 가이드에서는 공식 리포지토리가 24.04에 완전히 최적화돼 있지 않을 수 있다는 언급도 있으므로 환경에 맞게 리포지토리 설정을 확인하시는 게 좋습니다. (NSpeaks)
1. 사전 준비
터미널을 열고 다음을 실행하세요:
sudo apt update
sudo apt install -y gnupg curl software-properties-common apt-transport-https ca-certificates
비루트(sudo) 권한이 있는 사용자로 실행하세요.
시스템이 최신 상태인지 확인해 두세요.
2. 공식 MongoDB 리포지토리 추가
Ubuntu 24.04 에서 MongoDB 8.0 이상 버전을 사용한다고 가정하고 아래와 같이 설정합니다.
(버전을 바꾸고 싶다면 해당 버전의 GPG 키 및 리포지토리 경로를 확인하세요.)
# GPG 키 가져오기
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
# 리포지토리 파일 생성
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
# 패키지 색인 갱신
sudo apt update
위 설정은 Ubuntu 24.04 코드네임 “noble”을 사용하고 있습니다. (docs.vultr.com)
만일 리포지토리 경로에서 오류가 난다면, 우회해서 Ubuntu 22.04(“jammy”) 리포로 설정하는 방법도 가능합니다. (NSpeaks)
3. MongoDB 설치
sudo apt install -y mongodb-org
설치 완료 후 버전을 확인해 보세요:
mongod --version
설치 및 버전 확인이 정상이라면 다음 단계로 넘어갑니다.
4. MongoDB 서비스 시작 및 자동 시작 설정
sudo systemctl start mongod
sudo systemctl enable mongod
서비스 상태 확인:
sudo systemctl status mongod
정상적으로 Active: active (running) 상태인지 확인하세요.
5. 인증(Authorization) 활성화
기본적으로 MongoDB는 인증 없이 접속 가능하므로 보안 측면에서 인증을 활성화하는 것이 좋습니다.
5-1. 관리자 사용자 생성
MongoDB 쉘을 실행해 admin 데이터베이스에서 관리자 계정을 만듭니다.
mongosh
쉘에서:
use admin
db.createUser({
user: "adminUsername",
pwd: "StrongPasswordHere!",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" }
]
})
다음처럼 나옵니다:
{ ok: 1 }
권장: adminUsername, StrongPasswordHere! 은 실제 환경에 맞춰 강력한 비밀번호로 바꾸세요.
5-2. mongod 설정 파일에서 인증 활성화
설정 파일을 엽니다:
sudo nano /etc/mongod.conf
security: 섹션을 찾아 아래처럼 수정 또는 추가합니다:
security:
authorization: "enabled"
파일 저장 후 종료한 뒤 MongoDB 서비스를 재시작합니다:
sudo systemctl restart mongod
5-3. 인증 사용자로 접속 테스트
mongosh -u adminUsername -p --authenticationDatabase admin
비밀번호를 묻는 프롬프트가 나오며, 로그인 성공 시 인증이 제대로 작동 중인 것입니다.
6. (선택) 원격 접속 허용 및 네트워크 설정
로컬 개발 환경이라면 기본값인 bindIp: 127.0.0.1로 두어도 됩니다.
만약 다른 머신에서 접속해야 한다면 /etc/mongod.conf의 net: 섹션에서 bindIp를 수정해야 합니다:
net:
port: 27017
bindIp: 0.0.0.0 # 모든 IP 허용 (운영환경이라면 특정 IP만 허용하는 게 좋습니다)
설정 변경 후 다시 sudo systemctl restart mongod 해주세요.
그리고 방화벽(UFW 등)을 사용하는 경우 포트 27017이 열려 있는지 확인하십시오.
7. 요약 스크립트
아래는 위 내용을 한 번에 실행할 수 있는 스크립트 형태입니다 (개발/테스트용). 실제 운영환경에서는 스크립트 실행 전 각 변수, 보안 설정을 검토하세요.
#!/bin/bash
# 업데이트 및 필수 패키지 설치
sudo apt update
sudo apt install -y gnupg curl software-properties-common apt-transport-https ca-certificates
# MongoDB 리포지토리 설정 (MongoDB 8.0 기준)
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg --dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
sudo apt update
# MongoDB 설치
sudo apt install -y mongodb-org
# 서비스 시작 및 자동 시작
sudo systemctl start mongod
sudo systemctl enable mongod
# 관리자 계정 생성 (mongosh 명령은 별도 쉘에서 수동으로 실행해도 됨)
mongosh <
CodeDeck - 개발자를 위한 코드 학습 카드 뉴스
프로그래밍 언어와 프레임워크를 카드 뉴스 형태로 쉽게 배우는 개발자 학습 플랫폼
www.codedeck.kr
'스터디' 카테고리의 다른 글
| SQL 완전 정복: SQL 핵심 개념 총정리 (0) | 2025.11.06 |
|---|---|
| 웹에서 사용하는 저장소 종류 (0) | 2025.07.02 |
| PostgreSQL 권한 및 스키마에 대한 이해 (0) | 2025.06.10 |
| Vite vs Next.js 비교 및 장단점 분석 (1) | 2025.03.07 |
| 개발시 로그를 효율적으로 남기는 방법 (0) | 2025.03.06 |
