JJONG`sFACTORY
반응형
 

Mysql Setting + 보안세팅 + passport 세팅

일단 Mysql 설치부터 진행한다.

bash
apt-get install mysql-server

외부 접속을 위해 포트를 열어줘야 하는데, EC2 내부에 설치를 진행했고

API 서버 이외에는 접근할 필요가 없다.

 

terminal에 접속하기 위해 SSH 포트인 22번 포트를 개인 PC에만 열어 두었으니, 이를 통해서 외부 접근을 이용하면 된다.

내부 접속은 허용 되어 있어서 바로 되어야 하지만 접근시 오류가 발생한다.

 

실제로 터미널에서 접속해보면 정상적으로 접근 할 수 있는데,

접근 후 아래와 같은 쿼리를 이용하여 내용을 확인해 보았다.

 

bash
mysql -uroot use mysql; select user, host, plugin from user;

root의 plugin이 auth_socket으로 되어있는데 해당 부분을 mysql_native_password로 변경해 준다.

bash
update user set plugin='mysql_native_password' where user='root'; flush privileges;

이후, mysql workbench를 통해

접속방법을 SSH로, ip를 EC2의 public ip로 세팅 후 외부 접속을 해보면 접근에 성공한다.

 

이후 터미널에서 migrate를 시켜 준 뒤

필요한 데이터가 있다면 로컬에서 작업한 내용을 transfer 시켜주면 되긴 하는데, 추가적인 데이터를 mysql쪽에서는 세팅 하지 않아서

Oauth 관련만 추가적으로 작업 해 주었다.

 

bash
php artisan migrate php artisan passport:install

passport install 할 때 나온 값으로 env 변수값을 변경 해 주면 Mysql쪽은 세팅 완료!

 

 

MongoDB Setting 및 Data Transfer

일단 설치는 아래 사이트를 참조 하였습니다.

https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-ubuntu/

 

Install MongoDB Community Edition on Ubuntu — MongoDB Manual

Docs Home → MongoDB Manual MongoDB AtlasMongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started.Use this tutorial to install MongoDB 6.0 Community Edition on LTS (long-te

www.mongodb.com

bash
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
bash
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
bash
apt-get update

bash
sudo apt-get install -y mongodb-org

위 명령어를 통해 최종적으로 mongodb를 설치한다.

 

bash
sudo systemctl start mongod sudo systemctl status mongod

mongodb를 실행 후, 정상적으로 실행 되었는지 확인!

정상적으로 Active 되었다.

bash
sudo systemctl enable mongod

일단 EC2가 재부팅 되더라도 mongodb가 저절로 실행되도록 설정해 준다.

 

음.. 정상적으로 라면 SSH를 통해 22번 포트로 접속하고, localhost로 접근하면 될 것 같았는데 안된다..

 

조금 찜찜하지만 아래와 같이 구성해도 보안상에 크게 문제가 있어 보이진 않으니,

EC2의 보안그룹을 이용하여 컨트롤 해보았다.

 

1. EC2 보안그룹에서, mongodb의 포트번호를 작업할 PC로 열어 둔다.

2. /etc/mongod.conf의 bindIp 값을 0.0.0.0 으로 열어 두고

3. systemctl restart mongod

4. 이후 접속 확인.

 

일단 정상적으로 접속 되었다.

 

외부 접속도 되었고 양도 적으니 사실 데이터 이관을.. 컬렉션 별로 export 시키고 외부 접속하여 import 하면 되긴 하는데..

제대로 된 데이터 이관 방식을 사용해 보기 위해

https://www.mongodb.com/try/download/database-tools

 

Try MongoDB Tools - Download Free Here

Free download for MongoDB tools to do more with your database. MongoDB Shell, Compass, CLI for Cloud, BI Connector and other database tools available.

www.mongodb.com

database tools를 다운 후 설치했다.

3T 라는 툴을 사용하면 쉽게 이관이 가능한 것 같긴 한데.. 유료니까 ㅠ_ㅠ..

 

설치 후 (윈도우의 경우에는)
C:\Program Files\MongoDB\Tools\100\bin 으로 들어가서 명령어를 실행시키면 dump, store 등을 이용 할 수 있다.

환경변수로 지정해도 되긴 한다.

 

일단, 내가 원하는 DB만 dump 시켜보도록 하면

bash
mongodump -d [database_name]

위 명령어를 입력해보자.

정상적으로 dump 된 것을 확인 할 수 있다.

이제 dump된 데이터를 EC2에 있는 mongodb로 옮겨보자.

bash
mongorestore --host [host] --port [port] -d [database] [folder OR file path]

위와 같은 명령어를 입력해 준다.

통째로 처리 할 거다 보니, folder 값을 넣어 주었다.

음.. 정상적으로 동작 되었다고 나오니, compass로 원격 접속하여 데이터가 잘 들어갔는지 확인해보자.

전부 잘 들어갔다!

 

최초 이관이라, drop 명령어 없이 사용 하였지만

추가적으로 --drop 옵션을 사용해 주면 된다.

 

mysql은 요즘엔 workbench쪽에서도 Transfer가 되는데 요부분은 약간 아쉽당..

 

일단 테스트 결과, 서버에서 정상적으로 데이터를 던져 주는걸 확인했다!

 

이제 도메인 연결과 SSL , 로드밸런싱 처리를 진행해 두어야겠다

반응형