EC2 환경에 DB를 설치해보자 - 2

Fermion·2024년 1월 8일
0

What is Development

목록 보기
4/9

DB의 경우 보통 local에 설치하기 보다는 Docker를 이용하여 Container로 관리하고는 한다.
Docker를 이미 사용하고 있다면, Docker Image를 다운받아 간편하게 사용할 수 있다.
하지만, 가끔 local 환경에 설치하고 싶을 때가 있을 수도 있다.
이번에는 Document 기반의 NoSQL인 MongoDB을 설치해보자.


MongoDB 설치하기

Amazon Linux 2023을 기준으로 진행하였기에
Amazon Linux 1이나 Amazon Linux 2를 사용하는 경우 차이가 있을 수 있다.
[출처: https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-amazon/]

먼저 yum package manager를 통해 설치하기 위해 설정 파일을 작성하자
sudo vim /etc/yum.repos.d/mongodb-org-7.0.repo

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2023/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc

설정 파일 작성을 완료하였다면, yum package manager를 통해 설치를 진행하자
sudo yum install mongodb-org


MongoDB 실행하기

MongoDB의 설치를 완료했다면 MongoDB을 실행해보자
sudo systemctl start mongod

MongoDB가 정상적으로 실행중인지 확인해보자
sudo systemctl status mongod

만약, 재부팅시에 자동으로 MongoDB를 실행시키려면
sudo systemctl enable mongod 명령어를 통해 등록하면 된다.


MongoDB 접속하기

MongoDB에 접속하기 위해 MongoDB Shell을 사용해보자

mongosh를 입력하여 접속을 진행하게 되는데

설치된 MongoDB Shell에 따라서 다음과 같은 오류가 발생할 수 있다.
mongosh: OpenSSL configuration error:

이러한 경우 MongoDB Shell의 OpenSSL 버전을 설치해서 해결할 수 있다.
sudo dnf install mongodb-mongosh-shared-openssl3

만약, 기존의 MongoDB Shell 때문에 설치에 문제가 발생한다면
sudo dnf erase mongodb-mongosh를 통해 기존의 MongoDB Shell을 제거하고 진행하자

기존의 MongoDB Shell을 제거하면서 MongoDB까지 제거하지 않도록 주의하자
실수로 MongoDB까지 제거하였다면 MongoDB를 다시 설치해주면 된다.

설치가 제대로 완료되었는지 다음 명령어를 입력해 목록을 확인해보자
sudo dnf list installed | grep mongo

위와 같이 MongoDB Shell의 OpenSSL 버전의 설치가 완료된 것을 확인했다면

mongosh를 입력하여 접속이 되는지 다시 확인해보자


MongoDB 계정 생성하기

MongoDB Shell을 통해 접속에 성공하였다면 계정을 생성해보자

MongoDB의 계정은 데이터베이스 별로 관리된다.

먼저 사용할 db를 선택하자
use admin

다음과 같이 계정을 생성하자
db.createUser({ user: "계정이름", pwd: "비밀번호", roles: [{ role: "root", db: "admin" }] });

admin db(계정이름, 비밀번호)로 된 root 권한을 가진 계정을 생성한다는 의미이다.

다양한 권한을 부여하고 싶다면 아래 링크를 참고하자
[참고: https://www.mongodb.com/docs/manual/reference/built-in-roles/]

이렇게 생성한 계정의 정보는
use [계정을 생성한 db]
show users 를 통해 확인할 수 있다.

또한
use [계정을 생성한 db]
db.auth("계정이름", "비밀번호")를 통해 해당 계정정보로 로그인이 제대로 되는지 확인할 수 있다.

profile
Deep dive into development

0개의 댓글