-
Notifications
You must be signed in to change notification settings - Fork 7
ec2의 MySql 접속 포트 변경하기
우리는 ec2 인스턴스를 회사에서 제공해주는 계정을 이용해서 만들어 사용하고 있다.
회사 계정으로 생성한 ec2는 규칙에 의해 지정된 보안 그룹으로만 이용해야 한다.
회사의 규칙 상 이번 프로젝트에 사용하는 데이터베이스 접근용 포트인 3306 포트는 회사 주소에서 밖에 접근할 수 없다.
우리는 개발 데이터베이스를 인스턴스에 올려놓고 사용 중인데 재택에서 개발을 할 때 접속을 할 수 없는 문제가 발생했다.
그래서 외부에서도 접근할 수 있게 데이터베이스 접근 포트를 수정해봤다.
우리가 지금 사용하고 있는 보안 그룹은 SG-PROJECT-DEFAULT
이다.
인스턴스별로 보안 그룹 확인은 다음 페이지에서 확인할 수 있다.
해당 보안 그룹의 규칙을 확인해 본다.
aws의 ec2 페이지에서 보안 그룹 탭에서 SG-PROJECT-DEFAULT를 검색해본다.
- 유형: TCP Protocol suite를 지정한다.
- 프로토콜: 인스턴스와 데이터를 주고 받을 프로토콜 형식을 지정한다.
- 포트 범위: 유형에 맞게 포트 번호를 지정할 수 있다. 해당 포트에 다른 유형의 프로그램을 지정한다면 연결이 되지 않았다.
- 소스: 포트로 접근 가능한 ip를 지정한다.
3306 포트의 인바운드 규칙을 살펴보자.
유형은 MYSQL/Aurora 이고 통신 프로토콜은 TCP이다.
하지만 해당 포트에 접근 권한이 부여된 소스는 회사 주소 뿐이다.
ec2에 접속해서 우리가 사용하는 MariaDB의 접속 가능 포트를 변경해보자.
먼저 데이터베이스 인스턴스에 접속해서 MariaDB가 어떤 포트에서 동작중인지 확인해보자.
> sudo netstat -anp | grep LISTEN | grep mysql
-
sudo
로 관리자 권한을 주지 않고netstat
명령어를 실행하면 권한이 없어서 모든 포트 번호를 보여주지 않는다.
기본으로 mysql을 설치하면 3306포트에서 동작한다.
포트를 변경하기 위해 /etc/mysql/my.cnf
를 수정한다.
- 주의할 점은 client 속성의 port 번호가 아닌 mysqld 속성의 port 번호를 수정해 주어야 하는 것이다.
인바운드 규칙 중 8000 / 8080 / 8888 포트의 유형이 사용자 지정 tcp 이므로 이 포트들 중 하나로 데이터베이스 접속 포트를 변경한다.
예시에서는 8000 포트로 변경한다.
- 설정 파일을 미리 복사해놓고 작업을 진행하자.
포트를 변경한 후 다음 명령어를 실행해서 제대로 포트가 변경되었는지 확인한다.
> sudo service mysql restart
> sudo netstat -anp | grep LISTEN | grep mysql
- 포트를 변경하고 데이터베이스를 재시작하면 접속 포트가 변경되었으므로 해당 데이터베이스를 사용중이던 서비스가 종료된다.
이제 외부 접근이 허용된 포트로 데이터베이스를 접근할 수 있다.
- Jenkins CI/CD 적용하기
- Nginx 적용하기
- docker로 jenkins설치 시 플러그인 설치오류 해결방법
- 데이터베이스 마이그레이션
- Logback, Error 로그 Slack 알림 받기
- Jacoco 적용하기
- SonarQube 적용하기