시작하며
기초적인 MongoDB 사용도 알았으니 이제 AWS 서버랑 연결해서 데이터베이스 구축을 해보자.
전체적인 구축 방식은 Google colab을 활용해서 의약품안전나라에 있는 의약품 정보를 크롤링해서 데이터베이스를 구축할 예정이다.
데이터베이스 저장위치는 AWS EC2를 활용할 예정이고 팀원 중 서버담당을 맡는 친구가 이미 AWS EC2 세팅을 끝내놨다. 나는 그 서버에 권한받고 이제 서버에 몽고DB 설치를 진행할 것이다. 그리고 마무리로 Robo 3T에 연결까지 하는 내용을 다룰 것이다.
AWS-MongoDb install
아마존 AWS 사이트에 들어가서 AWS EC2인스턴스를 만들었다. AWS EC2 인스턴스로 서버 만드는 방법은 인터넷 검색을 추천한다. 또는 추후에 포스팅을 추가로 진행할 예정이다.
서버 생성할 때 발급받은 private key를 잘 보관하고 서버 형식에 맞춰서 터미널에서 연결을 한다. private key가 pem형식이라 윈도우보다 리눅스기반에서 연결이 더 원활하다. 나는 맥북으로 연결하기 때문에 바로 연결을 해보겠다.
AWS connect in Terminal (Linux / Unix / Mac OS X)
연결할 때, 중요한 정보들이 노출될 위험이 있으므로 코드만 작성하겠다. 우선 private key가 있는 폴더로 이동한다.
1
2
3
4
5
# Amazon Linx AMI기준
ssh -i key_name.pem ec2-user@public_DNS_address
# Ubuntu AMI기준
ssh -i key_name.pem ubuntu@public_DNS_address
Amazon Linux AMI와 Ubuntu AMI로 나눠지는데 각각의 경우 연결방식과 내부에서 몽고DB설치 방식이 다르다.
그리고 몽고DB연결과 설치를 위해서는 AWS EC2내부의 보안그룹에서 사용하고 있는 AWS의 보안그룹에 다음과 같이 추가를 해줘야한다.
포트범위 27017은 MongoDB가 기본적으로 설치되는 포트번호이다. 해당 부분에 일종의 permission을 내려줘야 연결이 가능하다.
MongoDB install
위에서 연결을 했으면 아래와 같이 나오게 된다.
Amazon Linux AMI
Ubuntu AMI
Amazon Linux AMI
우선 Amazon Linx AMI 기준 MongoDB설치 방법을 설명하겠다.
1
2
$ sudo su
$ vi /etc/yum.repos.d/mongodb-org.4.4.repo
설치할 때 원활하게 하기위해 sudo su
를 활용해서 root권한을 얻어온다. 그 후 vim을 활용해서 위의 명령어를 이용해서 파일을 만들어준다. 이때, 가장 중요한 것은 파일이름에 설치하고자하는 MongoDB 버전에 맞춰서 org.[version].repo로 이름을 지어줘야한다.
해당 파일이 열리면 아무것도 없는데, 그 안에 다음과 같이 입력해준다.
1
2
3
4
5
6
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2013.03/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
여기서 가장 중요한 것은 내부에 연결된 링크의 버전과 파일에 있는 버전이 동일해야 문제가 없이 잘 돌아간다는 점이다. 다른 형식은 동일하므로 MongoDB가 향후에 버전이 올라가면 4.4적힌 부분만 버전에 맞춰서 바꾸면 된다.
그 후 esc -> :wq를 눌러서 나온다.
1
$ yum install mongodb-org
명령어를 입력하면 뭐가 막~~~뜨는데 Complete! 나올 때까지 가만히 냅두면된다.
그 후 service mongod start
로 시작된 것이 확인되면 설치가 된 것이다.
Ubuntu AMI
Ubuntu AMI는 조금 더 간단하다면 간단하고 어렵다면 더 어렵다.
아래 코드를 순서대로 입력해주면된다.
1
2
3
4
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
이렇게 하면 설치가 완료가 된다. 실행은 sudo service mongod start
로 해주면된다.
AWS-Robo 3T connect
이제 AWS와 Robo 3T를 연결해보겠다.
이전에 한 것처럼 server연결화면에서 create를 누르고 address에 AWS IP v4를 입력해주면된다.
이때, AWS 서버에서 mongodb를 실행시킨 상태여야한다. 혹시 제대로 입력했는데, 오류가 발생하는 경우가 있다.
사실 위 사진은 local컴퓨터 연결 오류라서 127.0.0.1로 나오는데, AWS 연결오류면 IP위치에 AWS IP가 나온다.
이때는 터미널의 AWS console에서 다음과 같이 입력해서 일부 정보를 수정해줘야한다.
1
sudo vi /etc/mongod.conf
위 코드는 Linux나 Ubuntu 공통이다. 해당 파일에 들어가서 아래쪽으로 이동해보면 bindIP부분이 존재할텐데 해당 부분의 IP가 127.0.0.1로 되어있을 확률이 있다. 해당 부분의 IP를 0.0.0.0으로 변경하고 다시 연결해보면 연결이 된다.
AWS-Robo 3T 보안연결
AWS를 활용하다보면 보안연결을 위해서 서버 담당자가 보안 설정 연결을 하는 경우가 존재한다.
보통 AWS console에서 mongodb console 실행시키는 경우에 사용하는 root 비밀번호를 활용하면된다
위의 목록에서 Address부분에 AWS의 IP v4 address를 입력해주고 Authentification으로 이동한다.
database부분은 admin으로 해두고 user named은 일반적으로 root를 적는다. 그리고 password에는 몽고DB 콘솔 연결 비밀번호를 적어주면된다.
Comments powered by Disqus.