반응형

EC2에 띄울 프로젝트(Django)가 MySQL과 연동된 상태라

EC2 내부에 MySQL을 설치하고 연결하고자 한다.

 

AWS는 RDS라는 데이터베이스 서비스를 제공 중이고, MySQL을 지원한다.

보안, 운영 측면에서 상당히 괜찮은 서비스라 실제 운영 환경에서 많이들 사용한다는데,

우선은 테스트용 배포이기 때문에 MySQL을 직접 연결하기로 했다.

 

 

 

 

 

MySQL과 AWS EC2 연결하기

MySQL 사용할 포트(3306번) 접속 허용하기

AWS 콘솔에서 보안 그룹에 들어간다.

그리고 사용 중인 보안 그룹의 이름을 클릭한다.

(사용 중인 보안 그룹의 이름을 모른다면, 사용 중인 EC2의 요약 페이지로 들어가 하단의 '보안' 탭에서 확인할 수 있다.)

 

 

'인바운드 규칙 편집' 클릭

 

아래와 같이 규칙을 추가하고 저장한다.

 

 

 

EC2에 MySQL 설치 후 접속하기

우선 AWS EC2 인스턴스에 접속한다.

 

apt를 업데이트한다.

sudo apt update

 

mysql-server를 다운로드 한다.

sudo apt install mysql-server

중간에 'After this operation, 156 MB of additional disk space will be used.' 라고 묻는데,

Y를 입력해주자.

 

아래 명령어로 mysql 설치 여부를 확인한다.

mysql --version

 

mysql에 접속하기 위해 mysql -u root -p 명령어를 사용하면

거절당한다!

 

아래처럼 sudo를 사용해야 접속이 가능하다.

sudo mysql -u root -p

비밀번호는 설정이 되어있지 않아서, 그냥 엔터 한 번 더 치면 위와 같이 접속이 된다.

 

 

root 계정 비밀번호 설정

mysql 이라는 이름의 데이터베이스를 사용한다.

use mysql

 

root 계정의 비밀번호를 변경한다.

alter user 'root'@'localhost' identified with mysql_native_password by '비밀번호';

 

변경사항을 적용시키고 종료한다.

FLUSH PRIVILEGES;
exit

 

 

외부 접속 허용하기

외부 접속을 허용하기 위해 mysqld.cnf 파일을 수정해야 한다.

 

우선 아래 명령어로 root 권한을 부여한다.

sudo su

 

mysqld.cnf 파일이 있는 디렉토리로 이동한다.

cd /etc/mysql/mysql.conf.d

ls 명령어로 해당 디렉토리에 mysqld.cnf 파일이 있는지 확인할 수 있다.

 

vi 에디터로 mysqld.cnf 파일을 실행한다.

vi mysqld.cnf

위와 같이 파일이 열릴텐데,

하단의 bind-address0.0.0.0 으로 수정할 것이다.

 

1. i : 편집 상태로 변경 (하단에 INSERT 라고 뜨면 편집 상태)

2. 해당 부분 수정 후 esc를 눌러 다시 읽기 상태로 전환

3. :wq 커맨드 입력해서 저장하고 종료

 

이후에 mysql 서버를 재시작한다.

service mysql restart
mysql -u root -p

아까 설정한 비밀번호도 입력해주어야 한다.

 

 

root 유저를 계속 사용하는 것은 부적절하다고 한다.

test 라는 이름의 유저를 만들어 권한을 부여하자.

CREATE USER 'test'@'%' IDENTIFIED BY '비밀번호';

 

아래 명령어로 권한을 부여한다.

GRANT ALL PRIVILEGES ON *.* TO test@'%';

 

 

MySQL Workbench로 연결 테스트하기

Workbench는 MySQL GUI 툴인데,

설치 및 사용 관련해서는 생략하겠다.

 

Workbench 홈에서 빨간색 박스 안의 (+) 버튼을 클릭한다.

 

Connection Name은 임의로 설정,

Hostname은 EC2 인스턴스의 퍼블릭 IP 주소,

Store in Keychain은 클릭해서 password에 아까 설정한 MySQL 유저 비밀번호 설정

 

그리고 하단의 Test Connection을 클릭하면 테스트 연결이..!

완료되었다!

 

 

이제 EC2에 배포한 웹서버와 MySQL을 연결하고 사용할 수 있다. 후..

 

 

 

 

 

참고 링크1 : https://velog.io/@issac/AWS-EC2%EC%97%90-MySQL-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0

참고 링크2 : https://mirae-kim.tistory.com/73

 

 

반응형

+ Recent posts