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

최종 업데이트 날짜: 2019년 4월 10일

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

간략한 설명

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

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

​해결 방법

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

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

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

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

2.    Amazon RDS 콘솔을 엽니다.

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

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

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

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

7.    [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.    DB 인스턴스의 프라이빗 IP 주소를 보유한 후에 CIDR에 기반하여 DB 인스턴스가 상주하는 서브넷을 찾을 수 있습니다.

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

7.    연결된 서브넷을 선택하고 [설명] 창에서 [라우팅 테이블]을 선택합니다.

8.    [작업]을 선택하고 [Edit routes(라우팅 편집)]를 선택합니다.

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

10.    [Save(저장)]를 선택합니다.

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

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

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

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

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

중요: VPC가 동일한 AWS 계정에 있는 경우 IPv4 CIDR 블록이 겹치지 않는지 확인합니다.

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

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

4.    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!

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

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?