Mysql Setting + 보안세팅 + passport 세팅
일단 Mysql 설치부터 진행한다.
apt-get install mysql-server
외부 접속을 위해 포트를 열어줘야 하는데, EC2 내부에 설치를 진행했고
API 서버 이외에는 접근할 필요가 없다.
terminal에 접속하기 위해 SSH 포트인 22번 포트를 개인 PC에만 열어 두었으니, 이를 통해서 외부 접근을 이용하면 된다.
내부 접속은 허용 되어 있어서 바로 되어야 하지만 접근시 오류가 발생한다.
실제로 터미널에서 접속해보면 정상적으로 접근 할 수 있는데,
접근 후 아래와 같은 쿼리를 이용하여 내용을 확인해 보았다.
mysql -uroot
use mysql;
select user, host, plugin from user;
root의 plugin이 auth_socket으로 되어있는데 해당 부분을 mysql_native_password로 변경해 준다.
update user set plugin='mysql_native_password' where user='root';
flush privileges;
이후, mysql workbench를 통해
접속방법을 SSH로, ip를 EC2의 public ip로 세팅 후 외부 접속을 해보면 접근에 성공한다.
이후 터미널에서 migrate를 시켜 준 뒤
필요한 데이터가 있다면 로컬에서 작업한 내용을 transfer 시켜주면 되긴 하는데, 추가적인 데이터를 mysql쪽에서는 세팅 하지 않아서
Oauth 관련만 추가적으로 작업 해 주었다.
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/
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
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
apt-get update
sudo apt-get install -y mongodb-org
위 명령어를 통해 최종적으로 mongodb를 설치한다.
sudo systemctl start mongod
sudo systemctl status mongod
mongodb를 실행 후, 정상적으로 실행 되었는지 확인!
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
database tools를 다운 후 설치했다.
3T 라는 툴을 사용하면 쉽게 이관이 가능한 것 같긴 한데.. 유료니까 ㅠ_ㅠ..
설치 후 (윈도우의 경우에는)
C:\Program Files\MongoDB\Tools\100\bin 으로 들어가서 명령어를 실행시키면 dump, store 등을 이용 할 수 있다.
환경변수로 지정해도 되긴 한다.
일단, 내가 원하는 DB만 dump 시켜보도록 하면
mongodump -d [database_name]
위 명령어를 입력해보자.
정상적으로 dump 된 것을 확인 할 수 있다.
이제 dump된 데이터를 EC2에 있는 mongodb로 옮겨보자.
mongorestore --host [host] --port [port] -d [database] [folder OR file path]
위와 같은 명령어를 입력해 준다.
통째로 처리 할 거다 보니, folder 값을 넣어 주었다.
음.. 정상적으로 동작 되었다고 나오니, compass로 원격 접속하여 데이터가 잘 들어갔는지 확인해보자.
전부 잘 들어갔다!
최초 이관이라, drop 명령어 없이 사용 하였지만
추가적으로 --drop 옵션을 사용해 주면 된다.
mysql은 요즘엔 workbench쪽에서도 Transfer가 되는데 요부분은 약간 아쉽당..
일단 테스트 결과, 서버에서 정상적으로 데이터를 던져 주는걸 확인했다!
이제 도메인 연결과 SSL , 로드밸런싱 처리를 진행해 두어야겠다
'프로그래밍 일지 > 명빵' 카테고리의 다른 글
[개인프로젝트] 오퍼레이터 목록 검색 , infinite scroll, 상태관리 (0) | 2023.03.23 |
---|---|
[개인프로젝트] EC2 Next.js App 배포 (Ubuntu + next.js + pm2 + nginx + Route53 + Ec2 LB) (0) | 2023.03.21 |
[개인프로젝트] EC2 laravel 배포 (Ubuntu22 nginx Laravel 배포) (0) | 2023.03.20 |
[개인프로젝트] 공개모집 태그 로직 정리 및 임시 통신 (SSR) 처리(교집합, 부분집합, Combination 처리) (0) | 2023.03.20 |
[개인프로젝트] next.js 퍼블리싱 / Layout / Component / propType 처리 (0) | 2023.03.20 |