VPC의 퍼블릿 또는 프라이빗 서브넷을 사용하는 Amazon RDS DB 인스턴스에 대한 연결 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 8월 19일

Amazon Relational Database Service(Amazon RDS) DB 인스턴스에 연결하는 데 문제가 발생했습니다. Amazon Virtual Private Cloud(Amazon VPC)의 퍼블릭 또는 프라이빗 서브넷에서 연결 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

Amazon RDS 데이터베이스는 VPC의 퍼블릭 또는 프라이빗 서브넷에서 시작할 수 있습니다. 연결 문제는 잘못된 VPC 구성이나 연결이 시작되는 클라이언트에서 구성 또는 연결로 인해 발생할 수 있습니다.

이러한 문제를 해결하려면 환경에 따라 다음 해결 방법을 참조하십시오.

해결 방법

내 DB 인스턴스가 퍼블릭 서브넷에 있고, 로컬 컴퓨터에서 인터넷을 통해 연결할 수 없는 경우

이 문제는 DB 인스턴스의 [퍼블릭 액세스 가능성] 속성이 [아니요]로 설정된 경우 발생합니다. DB 인스턴스의 퍼블릭 액세스 가능성 여부를 확인하기 위해 Amazon RDS 콘솔 또는 AWS CLI(AWS 명령줄 인터페이스)를 사용할 수 있습니다.

Amazon RDS 인스턴스의 [퍼블릭 액세스 가능성] 속성을 []로 변경하려면 다음을 수행합니다.

1.    VPC에 인터넷 게이트웨이가 연결되어 있으며, 보안 그룹의 인바운드 규칙에서 연결을 허용하는지 확인합니다.

2.    Amazon RDS 콘솔을 엽니다.

3.    탐색 창에서 [데이터베이스]를 선택하고 DB 인스턴스를 선택합니다.

4.    [수정]을 선택합니다.

5.    [네트워크 및 보안] 아래 [퍼블릭 액세스 가능성]에서 []를 선택합니다.

6.    [게속]을 선택합니다.

7.    [Modify DB Instance]를 선택합니다.

참고: [Apply Immediately]를 선택하지 않아도 됩니다. [Apply Immediately]가 가동 중단 시간에 영향을 미치는 방법에 대한 자세한 내용은 즉시 적용 파라미터 사용을 참조하십시오.

내 DB 인스턴스가 프라이빗 서브넷에 있고, 로컬 컴퓨터에서 연결할 수 없는 경우

퍼블릭 서브넷을 사용하여 이 문제를 해결할 수 있습니다. 퍼블릭 서브넷을 사용하면 인터넷을 통해 서브넷의 모든 리소스에 액세스할 수 있습니다. 이 해결 방법이 보안 요구 사항을 충족하지 않으면 AWS 사이트 간 VPN을 사용합니다. 사이트 간 VPN을 사용하여 원격 네트워크에 VPC를 연결할 수 있는 고객 게이트웨이를 구성합니다.

퍼블릭 서브넷을 전환하려면 다음을 수행합니다.

1.    Amazon RDS 콘솔을 엽니다.

2.    탐색 창에서 [데이터베이스]를 선택하고 DB 인스턴스를 선택합니다.

3.    [연결 및 보안] 섹션에서 DB 인스턴스의 엔드포인트를 복사합니다.

4.    VPC 내 EC2 인스턴스에서 DB 인스턴스 엔드포인트에 대해 nslookup을 수행합니다. 다음 예제 출력을 참조하십시오.

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

Non-authoritative answer:
Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x

5.    RDS DB 인스턴스의 프라이빗 IP 주소를 얻은 후에는 서브넷 CIDR 범위와 프라이빗 IP 주소를 기반으로 VPC의 특정 서브넷과 프라이빗 IP 주소를 연결할 수 있습니다.

6.    Amazon VPC 콘솔을 열고 탐색 창에서 [Subnets]을 선택합니다.

7.    5단계에서 찾은 DB 인스턴스에 연결된 서브넷을 선택합니다.

8.    [Description] 창에서 [Route Table]을 선택합니다.

9.    [Actions]를 선택하고 [Edit routes]를 선택합니다.

10.    [Add route]를 선택하고 다음을 입력합니다.
IPv4 트래픽의 경우 [Destination(목적지)] 상자에 [0.0.0.0/0]을 입력하고, [Target(대상)] 목록에서 인터넷 게이트웨이 ID를 선택합니다.
IPv6 트래픽의 경우 [Destination(목적지)] 상자에 [::/0]을 입력하고, [Target(대상)] 목록에서 인터넷 게이트웨이 ID를 선택합니다.

11.    [저장(Save)]을 선택합니다.

중요: 서브넷을 퍼블릭으로 변경하면 이로 인해 서브넷의 다른 DB 인스턴스에 퍼블릿 주소가 연결되어 있어도 인터넷에서 해당 DB 인스턴스에 액세스할 수 있습니다.

다음 단계를 수행한 후에도 DB 인스턴스에 계속 액세스할 수 없으면 위에 나온 내 DB 인스턴스가 프라이빗 서브넷에 있고, 로컬 컴퓨터에서 연결할 수 없는 경우의 단계에 따라 DB 인스턴스의 [퍼블릭 액세스 가능성]을 확인합니다.

다른 VPC에 있는 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스에서 내 DB 인스턴스에 액세스할 수 없는 경우

VPC 간에 VPC 피어링 연결을 생성합니다. VPC 피어링 연결을 사용하면 두 VPC가 프라이빗 IP 주소를 사용하여 서로 통신할 수 있습니다.

1.    VPC 피어링 연결을 생성하고 수락합니다.

중요: VPC가 동일한 AWS 계정에 있는 경우 IPv4 CIDR 블록이 겹치지 않는지 확인합니다. 자세한 내용은 지원되지 않는 VPC 피어링 구성을 참조하십시오.

2.    두 라우팅 테이블 모두를 업데이트합니다.

3.    피어 VPC 그룹을 참조하도록 보안 그룹을 업데이트합니다.

4.    VPC 피어링 연결에 대한 DNS 확인 지원을 활성화합니다.

5.    EC2 인스턴스에서 네트워킹 유틸리티를 사용하여 VPC 피어링 연결을 테스트합니다. 다음 예제를 참조하십시오.

nc -zv <hostname> <port>

연결이 작동하는 경우 출력은 다음과 비슷합니다.

$ nc -zv myexampledb.xxxx.us-east-1.rds.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to myexampledb.xxxx.us-east-1.rds.amazonaws.com port 5439 [tcp/*] succeeded!

이 문서가 도움이 되었습니까?


결제 또는 기술 지원이 필요합니까?