[AWS] AWS EC2의 MySQL에 외부 접속하기
1. 과정
1. mysqld.cnf 파일의 bind-address를 0.0.0.0으로 교체해준다.
- 주석처리 해도 된다.
$ cd /etc/mysql/mysql.conf.d
$ sudo vim mysqld.cnf
2. AWS 인스턴스의 보안 설정에 들어가서 MySQL/Aurora의 접속가능한 아이피에 자기자신을 추가시킨다.
- 보안 설정의 자세한 내용은 EC2에서 ubuntu 설치하기 글을 보시면 됩니다.
3. DataGrip을 켜고 추가시켜 준다.
- data grip에서 new터튼을 누른후 입력해준다.
- NAME : 자유
- Host : EIP
- User/Password : AWS의 데이터베이스 사용자 계정 아이디와 비밀번호
- root로 해도 되지만 보안을 위해서 새로운 계정을 만드는게 좋다.
4. Test connection을 눌러보고 연결이 성공을 했으면 연결 해준다.
2. Issue
- DataGrip로 AWS의 MySQL을 연결을 성공한 후 다시 들어가보니 연결이 끊겨 있었다.
- 위에서 했던 세팅값(bind-address, 보안규칙)들을 다시 확인해보자.
- 만약 제대로 설정되어있거나 최근에 인터넷과 관련된 설정(ex) https 설정) 같은 것을 했을 경우, 방화벽 문제가 발생했을 가능성이 크다.
- 본인의 pc의 터미널에서
telnet <host_IP> <port_number>
AWS의 인스턴스의 3306포트로 연결이 되는지 확인해보자.- 안되면 방화벽 문제이다.
- 본인의 pc의 터미널에서
<해결법>
1. 방화벽 포트 설정 내역을 확인해보자.
- 아래의 명령어를 입력하고 방화벽에서 3306포트와 관련된 설정이 있는지 확인하자
$ iptables -nL
2. 방화벽이 닫혀 있거나 설정이 없으면 아래의 명령어로 3306포트를 열어주면된다.
$ iptables -I INPUT 1 -p tcp --dport 3306 -j ACCEPT
- 다시 확인해보면 정상적으로 연결이 되는것을 볼 수 있다.
- 이 후 다시 DataGrip으로 연결을 하면 된다.
※ 참조
'AWS' 카테고리의 다른 글
[AWS] 서브 도메인 적용하기 (0) | 2022.07.31 |
---|---|
[AWS] IP주소를 Domain로 Redirect (0) | 2022.07.30 |
[AWS] AWS의 도메인에 HTTPS 적용 (0) | 2022.07.29 |
[AWS] AWS EC2에 DNS 연결하기 (0) | 2022.07.27 |
[AWS] EC2 서버에 우분투18.04 구축하기 (0) | 2022.07.24 |