Gi-Log

[#5] mongoDB 서버 생성 및 세팅 본문

Golang 게시판 제작

[#5] mongoDB 서버 생성 및 세팅

돌잔 2022. 3. 13. 00:17

네이버 클라우드(NCP)에서는 Cloud DB for mongoDB라는 상품을 이용하여 mongoDB를 손쉽게(? 사실 세팅이 꽤나 복잡하다.) 세팅할 수 있다.

 

다만,,, 간단히 뚝딱뚝딱 개발을 하고자 VPC platform이 아니라, classic platform에서 시작한지라,,, 직접 centos 서버를 생성하고 mongoDB를 설치하기로 하였다.

 

우선 go-board-mongo라는 centos 7.3 서버를 생성한다. (서버 생성 방법은 https://jinho9610.tistory.com/47을 참조하면 편하다.)

 

그리고 공인 ip도 할당받는데, 이전 redis 서버를 표현할 때 사용하던 공인 ip인 111.222.333.111로 표현해나가도록 하겠다.

 

mongoDB용 서버 생성

 

그리고 이제 해당 서버에 mongodb를 설치하도록 하자.

 

centos이므로 yum을 이용하여 mongodb를 설치해야하는데, 특이하게 mongodb는 레포지토리를 직접 등록해주어야 한다.

 

/etc/yum.repos.d/mongodb-org-4.4.repo라는 파일에 다음과 같은 내용을 적는다.

[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

:wq로 저장 후, sudo yum install mongodb-org를 입력하여 mongodb 설치를 진행하고, sudo systemctl start mongod.service를 입력하여 mongodb를 실행한다.

 

이때 여러가지 보안관련 경고 문구가 출력될 수 있는데, 이를 없앰과 동시에 외부에 접속할 수 있도록 다음과 같은 몇가지 수정이 필요하다.

 

/etc/mongod.conf 파일을 vim 에디터로 열고, net interface와 security 특성을 다음과 같이 수정한다.

/etc/mongod.conf

그리고 sudo systemctl restart mongod.service를 입력하여 mongodb를 재실행한다.

 

db에 접속한 후에는 관리자 계정 생성이 필요한데, 다음의 명령어들을 입력하면 된다. (mongodb 자체에 대한 자세한 내용은 공식 문서나, mongodb 관리자 계정 생성이라는 키워드로 검색해보시길 바랍니다.)

 

use admin

db.createUser( { user: "<username>",
          pwd: "<password>",
          roles: [ "userAdminAnyDatabase",
                   "dbAdminAnyDatabase",
                   "readWriteAnyDatabase"
 
] } )

위 코드에서 <username>과 <password>는 본인이 원하는 관리자 계정의 id, password를 입력하면 되고, 꺽쇠(<, >)는 생략해야한다.

 

본인은 id: admin, passwd: 1234를 예시로 설명을 이어나가도록 하겠다.

 

위와 같이 관리자 계정을 잘 생성했다면 확인을 위해서, 우선 exit을 입력하여 db로부터 접속을 종료하자.

 

그리고  mongo --port 27017 -u "admin" -p "1234" --authenticationDatabase "admin"를 입력하여 관리자 계정으로 admin으로 접속후 다음과 같은 간단한 명령어를 입력한다.

 

use board

db.articles.insert({ title: "title-test" })

db.articles.find().pretty()

 

그러면 위와 같이 정상적으로 데이터가 잘 입력되는 것을 확인할 수 있다.

 

앞으로 게시판을 개발하는 과정에 있어서, board라는 db 하위의, articles라는 collection을 이용할 것이다.

 

db, collection 등의 개념과 insert, remove({}) 등 mongodb와 관련된 내용은 직접 구글링하는 것을 추천드립니다...ㅎㅎ

Comments