EC2에서 RDS 데이터베이스에 접근하기 위해서는 보안그룹에서 기본적인 설정을 해주어야 한다.
일단 RDS에 접속을 해야하므로, 접속 설정을 해줄 RDS의 보안그룹을 연다.
데이터베이스 목록에서 원하는 데이터베이스를 선택하여 접속 후, 보안항목의 VPC보안그룹을 선택한다.

보안그룹 페이지에서 인바운드 규칙을 선택하고, "인바운드 규칙편집"을 클릭한다.
인바운드 규칙 편집 창에서 유형을 MYSQL/Aurora로 선택하면 포트가 자동으로 지정(3306) 된다.
그리고, EC2 연결을 위해서 소스에 사용자지정 - EC2보안그룹ID 를 입력하고 규칙을 저장하면 된다.
(EC2의 보안그룹 ID는 직접 입력해도 되지만, 소스의 돋보기 창을 클릭하면 나오므로 거기서 선택해도 된다.)

이제 RDS에서의 설정은 모두 완료 되었고, EC2에서 접근만 하면 된다.
그전에, 접근하고자 하는 EC2와 RDS가 VPC/서브넷이 일치해야하므로, 확인하고 넘어가자. 별다른 설정을 하지 않는 이상, 같은 리전에 있는경우 동일할것이다.
내 경우 VPC가 일치하며, RDS가 서브넷 그룹을 사용하고 EC2가 RDS가 사용하는 서브넷 그룹 중 하나의 서브넷을 사용한다.

이제, EC2에서 데이터베이스에 접근하기위해 데이터베이스 서버를 설치한다.
#ubuntu
sudo apt install mariadb-server
RDS콘솔에서 엔드포인트를 확인하고 EC2에서 아래 명령어로 RDS 접속한다.
(엔드포인트는 RDS 데이터베이스 정보에서 확인가능하다. 첫번째 첨부 사진 참고)
mysql -u <RDS 마스터사용자> -p -h <RDS 엔드포인트>

Trouble Shooting
처음 RDS에 접속 시, 해당 호스트에 connect 할 수 없다는 에러 발생
- RDS 보안그룹이 잘못 설정 되어있는 경우에 발생한다고 하여, 확인해 봤으나 이상 없음
- EC2 자체의 문제일까 싶어 로컬의 다른 DB에 연결 시도 하였고 동일하게 연결 안됨
- EC2 보안그룹 규칙 확인! (EC2의 경우, RDS에 접속을 하는것이므로 아웃바운드 규칙 확인함)
해결: EC2에 왜인지 기본설정인 모든트래픽 허용 규칙이 제거되어있는 상태!ㅜㅜ 따라서, 아웃바운드규칙에 모든 트래픽 허용 규칙 추가한다. 매우 단순한 문제였는데, 기본적으로 아웃바운드 규칙은 전체허용이 되어있어 이부분이 잘못되어 있으리라고 생각치 못했다...

'Amazon AWS > EC2' 카테고리의 다른 글
EC2 인스턴스 구입 옵션 (0) | 2023.08.13 |
---|---|
EC2에서 다른 리전의 EFS(Elastic File System)에 마운트하기 (0) | 2022.07.17 |
EC2 인스턴스에 탄력적 IP (EIP) 연결하기 (0) | 2022.05.22 |
EC2 생성할때 패키지 기본 설치 되도록 하기 (0) | 2022.05.10 |