MongoDB

[MongoDB] Ubuntu MongoDB 설치 - mongos 설치

ssh9308 2022. 11. 25. 08:00
반응형

설치 테스트는 Ububtu 20.04 버전, Java11 버전에서 확인하였다.

 

Ububtu 환경에서 MongoDB 를 설치하기 위해서 아래의 메뉴얼을 따르면 된다.

 

### mongodb user/group 추가
adduser mongodb
 
### 패키지 정보 업데이트
sudo apt-get update
 
### home 디렉토리로 이동
cd /home
 
### MongoDB tgz 파일 다운로드
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz
 
### 압축풀기
tar -xzvf mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz
 
### 디렉토리명 변경
mv mongodb-linux-x86_64-ubuntu2004-6.0.2.tgz mongodb

 

mongos.conf 파일은 mongos의 configure 파일로

 

mongos 인스턴스 실행을 위한 기본적인 setting 값이 설정되어 있는 "설정 파일" 이다.

 

해당 파일은 /etc/mongodb/mongos.conf 로 생성해주자.

 

### mongos.conf 파일 생성
touch mongos.conf

 

 

아래는 mongos.conf setting 목록이다.

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongos.log
 
# network interfaces
net:
  port: 27021
  bindIp: 0.0.0.0
 
 
processManagement:
  timeZoneInfo: /usr/share/zoneinfo
 
security:
  keyFile: /etc/mongodb/keyfile
 
 
## sharding 설정은 mongoConfigure 의 정보가 들어가야 한다.
sharding:
  configDB: rsConfig/{ip}:{port}

 

위에서 압축풀어준 mongodb 파일로 접근해준다.

 

/home/mongodb/bin 명령어로 해당 디렉토리내에 접근한다.

 

해당 디렉토리에 접근하면 mongod, mongos 파일이 존재한다.

 

현재는 mongos 파일은 필요없지만 일단 mongos, mongod 파일 모두

 

/usr/bin 디렉토리로 옮겨준다.

 

또한 root 유저로 해당 작업을 진행하고 있다면,

 

파일 소유자와 그룹이 root 로 되어있을 것이다.

 

이런식으로 되어있으면 mongod 를 실행할 때 권한오류가 발생하게 되므로

 

파일 소유자와 그룹을 mongodb 로 바꿔준다.

 

### /usr/bin/ 디렉토리로 mongod/mongos 파일을 이동또는 복사
mv mongod /usr/bin
mv mongos /usr/bin
 
 
### mongod 파일 소유자/그룹 변경
chown mongodb:mongodb mongod
chown mongodb:mongodb mongos

 

 

mongos 인스턴스는 데이터 파일이 필요가 없다.

 

log 파일 저장을 위해 새로운 디렉토리를 만들어준다.

 

여기서도 마찬가지로 소유권은 mongodb 에게 할당한다.

 

### mongodb 로그 디렉토리 생성
mkdir /var/log/mongodb

### mongodb 디렉토리 소유자/그룹 변경
chown mongodb:mongodb mongodb

cd /var/log/mongodb

### mongos 로그 파일 생성
touch mongos.log

### mongod 로그파일 소유자/그룹 변경
chwon mongodb:mongodb mongos.log

 

 

여기까지 mongos 인스턴스의 설치준비는 완료가 되었다.

 

하지만, 서비스의 등록없이 인스턴스를 관리하다보면 불편함이 생긴다.

 

그러므로 서비스 등록을 진행해주자.

 

먼저 아래와 같이 명시된 디렉토리로 이동하여 새로운 파일을 생성해주자.

 

### /lib/system/systemd 로 이동
cd /lib/system/systemd
 
 
### mongoConfig.service 파일 생성
touch mongos.service

 

mongos.service 의 내용은 아래와 같다.

 

여러가지 옵션이 지정되어 있는데 

 

해당 서비스를 시작할 경우에 mongodb 소유자, 그룹으로 시작하겠다는 의미이고

 

혹시나 오류가 발생하여 서비스가 종료되었을때

 

다시 서비스를 가동해주라는 옵션도 지정되어 있다.

 

[Unit]
Description=MongoDB Router Server
Documentation=https://docs.mongodb.org/manual
After=network-online.target
Wants=network-online.target
 
[Service]
Type=simple
ExecStart=/usr/bin/mongos -config /etc/mongodb/mongos.conf
 
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
 
 
[Install]
WantedBy=multi-user.target

 

이제 mongos instance 를 서비스로 관리할 수 있게 되었다.

 

아래의 명령어를 통하여 서비스를 구동해보자.

 

systemctl daemon-reload                             ## 설정 다시 불러오기
systemctl enable mongos.service                     ## 최초 구동시 자동실행 여부 결정해준다.    
systemctl start mongos.service                      ## mongos service 시작
반응형