2023년 10월 17일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.
여기에서 원본을 확인할 수 있습니다.

AWS에서 예전에 한 번 RDS를 사용해서 데이터베이스를 구축해 본 경험이 있었는데, 꽤 오래 전이였고 지금의 AWS는 너무 많이 업데이트가 진행되었다. 이번에 RDS를 다룰 일이 있어서 MariaDB 데이터베이스를 생성했는데, 외부 접속 연결이나 인바운드 설정을 모두 했음에도 불구하고 외부에서 연결이 되지 않아 애를 먹었다..
외부 접속을 위해 확인해 본 것들
외부 접속을 위해 아래 2가지를 먼저 확인해 보았다.
- Inbound(인바운드) 규칙 확인
- 퍼블릭 엑세스 설정 확인
Inbound(인바운드) 규칙 확인
기본적으로 RDS에서 보안 규칙에 대해 아무것도 설정하지 않았다면, 내부에서 데이터베이스를 접근하는 것만 허용되어 있고, 외부에서 3306 포트로 요청에 대한 규칙은 허용되어 있지 않다. 외부에서 접속하려면, Inbound 규칙을 추가해 주어야 한다.

네트워크 및 보안 - 보안 그룹에서 RDS에 할당되어 있는 보안 그룹을 찾는다. RDS에 할당되어 있는 보안 그룹을 클릭하면 위 페이지로 바로 이동할 수 있다.

그리고 아래에 내려보면, 인바운드 규칙 메뉴가 있고, 우측에 인바운드 규칙 편집 메뉴가 보이는데, 클릭해 준다.

위 사진과 같이 3306 포트를, IPv4 모든 아이피(0.0.0.0/0)에 대해 허용해 주고, 규칙 저장을 클릭한다.
퍼블릭 엑세스 설정 확인

생성한 RDS 데이터베이스의 수정 페이지에 접근하면, 위와 같은 설정 페이지가 표시된다.

연결 - 추가 구성 - 퍼블릭 엑세스에서 퍼블릭 엑세스 가능으로 설정해 준다.

+: 수정된 사항을 저장할 때 수정 예약 섹션이 있는데, 예약된 다음 유지 관리 기간에 적용을 선택하면 지금 바로 저장되지 않고, 현재 유지 관리 기간에 적혀있는 기간에 설정이 수정되니 즉시 적용을 선택해 바로 수정해 준다.
하지만
이래도 나는 외부에서 AWS RDS에서 생성한 데이터베이스에 접속할 수 없었다. RDS에서 데이터베이스를 생성할 때의 설정 화면이 업데이트되었는지 설정을 놓친 것 같기도 하다. 그래서 검색을 통해 문제점을 알아냈다. RDS에 설정되어 있는 서브넷이 private으로 되어 있어서, AWS 내부에서만 접근할 수 있어서 외부에서 접근할 수 없었던 것이다. 이제 이걸 해결하려면 public으로 변경해 주면 된다.
해결하기

AWS 콘솔의 검색에서 라우팅 테이블을 검색해서 라우팅 설정 페이지에 들어가던가, Vitual private cloud - Route tables 메뉴로 들어가면 된다. 나는 RDS에 설정되어 있는 라우팅 테이블의 이름이 RDS-Pvt-rt 인데, 각자마다 다르니 RDS에 설정되어 있는 라우팅 테이블을 찾아 클릭한다.

그러면 위와 같이 아래에 라우팅 설정이 표시되는데, 라우팅 편집 메뉴를 클릭한다.

위와 같이 0.0.0.0/0 전체 아이피에 대해 허용하고, 대상은 인터넷 게이트웨이를 선택한다. 아래 이름은 자동으로 채워진다. 수정을 완료했다면, 변경사항 저장 버튼을 클릭해 완료한다.

그러면 엔드포인트와 포트, 설정한 사용자 이름, 비밀번호를 이용해 데이터베이스에 접속해 보면 위와 같이 정상적으로 접근하는 것을 확인할 수 있다!
'Backend > AWS' 카테고리의 다른 글
| S3 이미지 업로드 후 URL로 접근 시 Access Denied (0) | 2026.08.22 |
|---|