들어가며

안녕하세요. 이번 시간에는 EC2인스턴스와 RDS인스턴스를 연동하는 법에 대해 알아보고자 합니다. 해당 포스팅은 아래 두 포스팅을 읽었다고 가정하고 작성되었습니다.

  1. EC2 생성과 탄력적 IP설정
  2. RDS 생성과 기본 설정

위 언급한 포스팅과 현재포스팅을 읽으면 다음과 같은 목표를 달성할 수 있습니다.

  1. EC2안에서 RDS와 통신할 수 있습니다. (EC2와 RDS가 같은 VPC 사용하기 때문)
  2. 허용된 Public IP 혹은 Public IP 대역에서만 RDS와 통신할 수 있습니다. (RDS 퍼블릭 액세스를 활성화한 상태에서, 보안그룹에서 특정 IP 혹은 특정 IP 대역만을 허용했기 때문)

EC2 & RDS 정보 확인

EC2와 RDS를 연동하려면 EC2 인스턴스와 동일한 VPC를 사용해야 합니다. 그렇기 때문에 아래 정보를 먼저 확인해야 합니다.

  • EC2 > 인스턴스 > 자신의 인스턴스 > 요약정보 에서 사용중인 VPC 정보 확인.
  • Aurora and RDS > 데이터베이스 > 자신의 RDS > 연결 및 보안 에서 사용중인 VPC 정보 확인.
  • RDS의 VPCEC2의 VPC와 다르다면, 동일한 VPC를 사용할 수 있도록 RDS 인스턴스를 다시 만들어야 합니다. (VPC 는 수정할 수 없습니다)

특정 Public IP 혹은 대역만 허용

RDS 생성과 기본 설정 에서는 RDS 생성 시, public access 를 활성화여 다른 모든 Public IP가 RDS와 통신할 수 있는 구조로 만들었습니다. 여기서 특정 Public IP 만 RDS와 통신하도록 강제하려면 RDS 퍼블릭 액세스를 활성화한 상태에서 보안그룹을 설정해야 합니다.

Aurora and RDS > 데이터베이스 > 자신의 RDS 선택 에서 오른쪽 VPC 보안 그룹 하이퍼링크를 선택합니다.

자신의 RDS 보안그룹 ID 를 선택하고 인바운드 규칙 편집을 선택합니다.

  • 모든 Public IP 를 허용하는 빨간색 박스의 규칙들을 제거합니다.
  • 특정 Public IP 만 허용하려면 파란색 박스의 규칙을 추가합니다.
    • 네트워크 주소 비트를 32로 지정하고, 호스트 주소 비트를 0으로 설정하여 하나의 IP만 허용합니다.
    • xxx.xxx.xxx.xxx/32 면, 오직 xxx.xxx.xxx.xxx 주소만 RDS에 접근 가능합니다.
  • 특정 Public IP 대역을 허용하려면 초록색 박스의 규칙을 추가합니다.
    • 네트워크 주소 비트를 24로 지정하고, 호스트 주소 비트를 8으로 설정하여 256 개의 IP를 허용합니다.
    • xxx.xxx.xxx.xxx/24 면, xxx.xxx.xxx.0 ~ xxx.xxx.xxx.255 주소. 즉, 256개의 주소들이 RDS에 접근 가능합니다.

집에서 사용하는 Private IP는 공유기를 통해 Public IP로 변환되므로, 해당 공인 IP 혹은 특정 대역을 RDS 보안 그룹에 허용하면 접속이 가능합니다. 본인의 Public IP는 curl ifconfig.me 로 확인할 수 있습니다.

테스트

허용한 Public IP 혹은 Public IP 대역에서 RDS 에 접근이 되는것을 확인할 수 있습니다.

그와 반대로 허용하지 않는 Public IP 혹은 Public IP 대역은 RDS 에 접근이 불가능한 것을 알 수 있습니다.

마치며

지금까지 EC2와 RDS를 연동하는 방법에 대해 살펴보았습니다. 특히 같은 VPC에 속한 EC2와 RDS는 내부적으로 자유롭게 통신할 수 있다는 점, 그리고 외부 Public IP를 통해 접근할 경우에는 특정 IP 혹은 IP 대역만 허용하여 접근을 제어할 수 있다는 점을 정리해보았습니다. 감사합니다.