Amazon RDS DB 인스턴스를 동일한 VPC 내 퍼블릭 서브넷에서 프라이빗 서브넷으로 이동하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2020년 12월 9일

퍼블릭 서브넷에 있는 Amazon Relational Database Service(Amazon RDS) DB 인스턴스가 있습니다. DB 인스턴스를 퍼블릭에서 동일한 VPC 내 프라이빗 서브넷으로 이동하고 DB 인스턴스를 완전히 비공개로 만들고 싶습니다. 어떻게 해야 하나요?

간략한 설명

Amazon RDS는 동일한 VPC로 DB 인스턴스의 서브넷 그룹을 변경할 수 있는 옵션을 제공하지 않습니다. 그러나 이 문서의 해결 방법을 사용하여 DB 인스턴스를 퍼블릭 서브넷에서 프라이빗 서브넷으로 이동하고 DB 인스턴스를 비공개로 만들 수 있습니다.

이 방법을 사용하면 다음과 같은 이점이 있습니다.

  • 새 DB 인스턴스를 생성할 필요가 없습니다.
  • 스냅샷 복원 프로세스를 사용하지 않도록 합니다.
  • 새 인스턴스 생성 및 트래픽 전환과 관련된 다운타임을 최소화합니다. 장애 조치 시에만 다운타임이 발생합니다.

해결 방법

DB 인스턴스에서 다중 AZ 배포 및 퍼블릭 액세스 가능 여부 비활성화

DB 인스턴스가 이미 [퍼블릭 액세스 가능 여부(Public accessibility)] 파라미터가 [아니요(No)]로 설정된 단일 AZ로 설정된 경우 이 단계를 건너뛰고 IP 주소를 검색하는 다음 단계로 진행할 수 있습니다. 

DB 인스턴스를 수정하여 다중 AZ 배포를 비활성화하려면 다음 단계를 수행합니다.

  1. AWS RDS 콘솔에 로그인합니다.
  2. 탐색 창에서 [데이터베이스(Databases)]를 선택하고 수정하려는 DB 인스턴스를 선택합니다.
  3. [수정(Modify)]을 선택합니다.
  4. [DB 인스턴스 수정(Modify DB Instance)] 페이지의 [다중 AZ 배포(Multi-AZ deployment)] 및 [퍼블릭 액세스 가능 여부(Public accessibility)]에서 [아니요(No)]를 선택합니다.
  5. [계속(Continue)]을 선택하고 수정 요약 정보를 검토합니다.
  6. [즉시 적용(Apply immediately)]을 선택하여 변경 사항을 적용합니다.
  7. 변경 사항을 검토하고 올바른 경우 [DB 인스턴스 수정(Modify DB Instance)]을 선택하여 저장합니다.

DB 인스턴스의 IP 주소 검색 

DB 인스턴스가 [가용(Available)] 상태로 돌아간 후 DB 인스턴스의 엔드포인트에서 dig를 실행하여 기본 IP 주소를 찾습니다.

dig <rds-endpoint>

출력:

db-RDS-instance.xxxxxxxx.us-east-1.rds.amazonaws.com. 5 IN A 172.39.5.213

프라이빗 IP에서 사용 중인 서브넷을 찾을 수 있습니다. 이는 기본 인스턴스가 사용하는 서브넷입니다.

이 예제에서 서브넷 CIDR 목록은 다음과 같습니다.

  • subnet1 -> 172.39.5.0/24
  • subnet2 -> 172.39.4.0/24

IP가 179.39.5.0/24 미만이므로 인스턴스가 subnet1에 배치된다는 결론을 내릴 수 있습니다.

퍼블릭 서브넷을 제거하고 DB 인스턴스에 프라이빗 서브넷을 추가합니다.

서브넷 그룹에 필요한 모든 프라이빗 서브넷을 추가합니다. 또한 기본 서브넷에서 사용하는 서브넷을 제외한 모든 퍼블릭 서브넷을 서브넷 그룹에서 삭제합니다. 위의 예제에서는 subnet1을 제외한 모든 항목을 삭제합니다. 이 항목은 DB 인스턴스에서 사용하므로 제외합니다.

참고: 프라이빗 서브넷은 인터넷 게이트웨이에 대한 경로가 없는 라우팅 테이블과 연결된 서브넷입니다.

  1. Amazon RDS 콘솔에 로그인합니다.
  2. 탐색 창에서 [서브넷 그룹(Subnet groups)]을 선택하고 DB 인스턴스와 연결된 서브넷 그룹을 선택합니다.
  3. [편집(Edit)]을 선택합니다.
  4. [서브넷 추가(Add subnets)] 섹션에서 추가하려는 가용 영역과 프라이빗 서브넷을 선택합니다.
  5. 삭제할 퍼블릭 서브넷을 선택한 다음 [제거(Remove)]를 선택합니다.
  6. [저장(Save)]을 선택합니다.

DB 인스턴스에서 다중 AZ 활성화

DB 인스턴스를 수정하여 다중 AZ 배포를 활성화합니다. 새 보조 서브넷이 나머지 프라이빗 서브넷 중 하나에서 시작됩니다.

장애 조치를 통해 DB 인스턴스를 재부팅하고 다중 AZ 배포를 비활성화합니다.

DB 인스턴스에서 장애 조치가 발생하면 프라이빗 IP를 사용하는 보조 서브넷이 기본 서브넷이 되고 퍼블릭 서브넷이 보조 서브넷이 됩니다.

장애 조치를 통해 DB 인스턴스를 재부팅한 후에는 현재 퍼블릭 서브넷에 있는 보조 서브넷을 제거해야 합니다. 이렇게 하려면 DB 인스턴스를 수정하여 다중 AZ를 다시 비활성화합니다. [다중 AZ 배포(Multi-AZ deployment)]를 [아니요(No)]로 설정하면 됩니다.

퍼블릭 서브넷 제거

  1. 서브넷 그룹에서 나머지 퍼블릭 서브넷을 제거합니다.
    참고: 서브넷 그룹에서 서브넷을 제거하는 작업은 RDS 측에서 수행하는 구성 작업입니다. VPC에서 서브넷을 삭제하는 작업은 포함되지 않습니다.
  2. 서브넷 그룹에 프라이빗 서브넷만 있는지 확인합니다.
  3. DB 인스턴스가 이전에 다중 AZ 배포에 있었다면 다시 활성화합니다.

이 해결 방법에서는 장애 조치 및 다중 AZ 비활성화/활성화 작업을 다루므로 고려할 사항이 거의 없습니다. 자세한 내용은 DB 인스턴스를 다중 AZ 배포로 수정을 참조하세요.

참고: 이 방법은 RDS DB 인스턴스로 한정됩니다. DB 인스턴스가 Aurora 클러스터의 일부인 경우 복제 옵션을 사용할 수 있습니다. 또는 이 문서의 단계를 수행할 수 있지만 다중 AZ를 비활성화하는 대신, 리더를 삭제하고 다시 생성해야 합니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?