주요 내용으로 건너뛰기

AWS RDS 설정하기

postgreSQL 기준

얼마전까지 Mongodb + mongoose를 사용하다가 Ben Awad의 유튜브 동영상(https://www.youtube.com/user/99baddawg/playlists)를 보고 postgreSQL + sequelize의 조합을 사용해보게 됐다.


마침 AWS에 관심도 많았고 또 RDS를 사용해보고 싶어서 바로 postgresSQL 인스턴스를 만들고 접속을 시도했지만

이런 에러만 뜰 뿐 접속이 되지 않았다.

바로 도큐먼트(http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_GettingStarted.CreatingConnecting.PostgreSQL.html)를 정독하러 갔다.

찬찬히 읽어내려가다가 

문제의 핵심
문제의 핵심

보안그룹의 액세스 규칙? 도대체 이게 뭔가 싶었다. 그래도 일단 디비를 연결시켜야했기 때문에

보안그룹 도큐먼트(http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/Overview.RDSSecurityGroups.html)로 넘어가서 계속 읽었다.

설명을 읽어보니 보안 그룹이라는건 VPC 외부의 요청에 대해 적절하게 제어하는 장치였다. 쉽게 말해 방화벽 같은 느낌으로 이해하면 될 것같다.

즉, 보안 그룹 설정이 제대로 되어있지 않아 내가 콘솔에서 접속시도를 했을 때 Timeout 에러가 발생하는 것이었다.

이제 문제점을 알았으니 해결을 해보자.

AWS를 좀 만져봤다면 아마 보안그룹을 어디서 생성하는지 알 것이다.  

먼저 콘솔로 이동한 뒤 EC2 서비스로 들어가서

EC2 보안그룹
EC2 보안그룹

사이드 메뉴에서 EC2 보안그룹을 들어가보면 아마 기본으로 설정된 그룹이 보일 것이다.

우리는 새로운 그룹을 만들 것이다.

보안그룹생성
보안그룹생성

보안 그룹 생성 버튼을 누르면 다음과 같은 화면이 나타날 것이다.

보안그룹 상세
보안그룹 상세

여기서 눈여겨봐야되는 부분은 보안그룹규칙 부분이다. 

먼저 인바운드 탭으로 들어가 규칙추가를 눌러준다. 

다음으로 인바운드 탭이 접속을 요청하는 부분인데 유형은 postgreSQL(만약 다른 디비를 사용 중이라면 다른 디비를 선택), 포트는 5432(인스턴스 설정 시 설정했던 포트 번호) 그리고 소스는 내 IP로 설정해준다.


이제 다시 RDS의 인스턴스로 돌아가서

디테일 페이지
디테일 페이지

우리가 살펴봐야하는 부분은 빨간색 원이 쳐진 보안그룹 부분이다. 

Adding 혹은 Removing 상태가 아닌 Active 상태에서만 접속이 가능하다.

예시는 이전에 우리가 추가한 postgres 그룹으로 설정을 마친 상태이다.


자 이제, Modify 를 눌러 아래 페이지로 이동한다.

내리다 보면 아래와 같은 화면이 나올 것이다.

디테일
디테일

여기서 보안 그룹 부분에 기존의 보안 그룹을 삭제하고 우리가 새로 생성한 보안 그룹을 추가해준다.

또 public accessibility에 Yes 를 체크해준다.

여기까지 마쳤다면 

아까 디테일 페이지에서 한 개의 보안그룹은 Adding으로, 기존 보안그룹은 Removing으로 상태가 나타날 것이다.


약 2~3분 정도 걸리니 커피 한 잔 마시고 오자.

커피를 다 마시고 나서 화면을 보면 우리가 새로 추가한 보안 그룹이 active로 나타날 것이다.


설정이 완료됐다. 축하한다!



이준형 님의 창작활동을 응원하고 싶으세요?

댓글

SNS 계정으로 간편하게 로그인하고 댓글을 남겨주세요.