Cloud/AWS

SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기!(DB외부접속허용) - (5)

Sean-creative 2022. 8. 24. 19:28

- SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기 5편 입니다!

- 1편 부터 순차적으로 진행되니, 처음 이신 분들은 1편을 진행해주세요!

 

2022.08.23 - [프로젝트 일지] - SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기! - (4)

 

SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기! - (4)

- SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기 4편 입니다! - 1편 부터 순차적으로 진행되니, 처음 이신 분들은 1편을 진행해주세요! https://sean-lets-go.tistory.com/23 SpringBoot+MariaDB+EC2 Ubuntu AWS 배포하기! - (1) 배

sean-lets-go.tistory.com

 

 

5편 내용은 이렇습니다.

- ec2에서 jar로 실행한 스프링부트에 EC2에서 만든 MariaDB 외부 연결하기

* 사용하지 않는 EC2 (temp)를 만들었고, 글을 작성한 후에 지웠습니다.

 

 

* 4편까지 잘 따라하셔서 탄력적 IP를 통해 원하는 바를 이루었다면 -> 5편은 안보셔도 됩니다. 

* 5편은,,

   1. local DB를 export해서 EC2 DB에 Import

   2. 외부 포트에 접근이 잘 되는지 프로젝트에서 테스트

   3. local DB가 아닌 EC2 DB로 설정되어 있는 환경으로 다시 jar 빌드 후 배포

입니다.

* 그래서 4편에서 사용하던 jar 빌드나 파일질라를 한번 더 활용할 예정입니다.

 

 

* local DB에서 export

- 4편에서 연결했던 EC2 DB말고, 본인이 작업했던 local DB (import 할 DB)에서 SQL로 내보내기

 

 

* EC2 DB에서 import

- HeidiSQL에서 다시 EC2 DB로 접속해줍니다.

- EC2에서 진행하는 작업이 아니라 편리합니다.

 

* 외부 포트에 접근이 잘 되는지 프로젝트에서 테스트

- HeidiSQL에서는 SSH 터널을 통해서 접근을 하기 때문에, 외부 환경에 대한 설정이 없이 연결이 잘되지만

- intelliJ에서는 EC2 내에서 별다른 설정을 해주지 않았다면 연결이 실패했다고 할 것입니다.

 

* EC2 DB에서 설정 변경 

$ mysql -u root -p

DB > grant all privileges on *.* to 'root'@'%' identified by '비밀번호'; 
//앞의 설정에서는 localhost로 해주었던걸 -> '@'로 변경해줍니다.

DB > flush privileges;

DB > exit;

 

- 기본적으로 MySQL은 /etc/mysql/mysql.conf.d/mysqld.cnf에 해당 설정파일이 존재하며,

- MariaDB는 /etc/mysql/mariadb.conf.d/50-server.cnf에 해당 설정파일이 존재한다.

$ cd /etc/mysql/mariadb.conf.d

$ sudo vim 50-server.cnf

 

 

- 해당 부분을 찾아서, 다음과 같이 bind-address를 주석 처리한다.

- vim 편집기 사용하는 법은

 화살표로 이동하신다음 -> 'i' 눌러서 insert 모드로 바꾸고 -> 맨앞에 '#' 추가해주시고 -> Esc 누르고 -> :wq 하시면 됩니다.

 

 

그리고 MySQL 서비스를 재시작

$ service mysql restart

 

비밀번호도 넣어주셔야 합니다!

 

- 4편을 참고하여, jar 빌드 후 -> 파일질라를 통해 -> 'java -jar 파일명'  실행시켜 보세요!

(탄력적 IP:8080로 접속이 잘 안된다면  인바운드 규칙을 확인해보세요!)

 

* 외부에서 접속이 잘 되네요 !!  수고 많으셨습니다!!