Amazon Redshift 클러스터에 연결할 수 없습니다.

최종 업데이트 날짜: 2020년 2월 11일

Amazon Redshift 클러스터에 연결하는 데 문제가 있습니다.

간략한 설명

Amazon Redshift 클러스터에 연결하려면 다음을 확인하십시오.

  • 퍼블릭 서브넷에 있는 Amazon Redshift 클러스터에 인터넷을 통해 액세스하려면 [Publicly accessible(공개적으로 액세스할 수 있음)]이 [Yes(예)]로 설정되어 있는지 확인합니다.
  • Amazon Redshift 클러스터가 프라이빗 서브넷에 있는 경우, 퍼블릿 서브넷에 있는 NAT(네트워크 주소 변환) 게이트웨이를 사용하여 인터넷에 액세스합니다. 프라이빗 서브넷의 클러스터는 NAT 게이트웨이를 사용하여 인터넷에 연결할 수 있지만 인터넷이 클러스터로의 연결을 시작할 수는 없습니다.
  • Amazon Redshift 클러스터가 다른 Virtual Private Cloud(VPC) 계정에 있는 리소스와 통신하기를 원하는 경우 VPC 피어링 연결을 생성합니다.

해결 방법

내 클러스터가 퍼블릭 서브넷에 있지만 로컬 컴퓨터에서 인터넷을 통해 이 클러스터에 연결할 수 없습니다.

참고: 아래 단계를 완료하기 전에 VPC에 인터넷 게이트웨이가 연결되어 있는지 확인합니다.

  1. Amazon Redshift 콘솔을 엽니다.
  2. [Clusters(클러스터)]를 선택합니다.
  3. 연결하려는 클러스터를 선택합니다.
  4. [Actions(작업)] 탭을 선택하고 [Change publicly accessible setting(공개적으로 액세스할 수 있는 설정 변경)]을 선택합니다.
  5. [Allow instances and devices outside the VPC to connect to your database through the cluster endpoint(VPC 외부의 인스턴스와 디바이스가 클러스터 엔드포인트를 통해 데이터베이스에 연결하도록 허용)]에서 Yes를 선택합니다.
  6. [Elastic IP address(탄력적 IP 주소)]를 선택합니다.
  7. [Confirm(확인)]을 선택합니다.

내 클러스터가 프라이빗 서브넷에 있으며 내 로컬 컴퓨터에서 이 클러스터에 연결할 수 없습니다.

클러스터가 로컬 시스템에 연결하려면 퍼블릭 서브넷에 있어야 합니다.

로컬 시스템에서 클러스터에 액세스하려면 다음 단계를 수행합니다.

  1. Amazon Redshift 콘솔을 엽니다.
  2. [Clusters(클러스터)]를 선택합니다.
  3. 연결하려는 클러스터를 선택합니다.
  4. [Configuration(구성)] 탭을 선택하여 [Cluster Properties(클러스터 속성)] 페이지를 엽니다.
  5. [View VPCs(VPC 보기)]를 선택하여 Amazon VPC 콘솔을 엽니다.
  6. 탐색 창에서 [Route Tables(라우팅 테이블)]을 선택합니다.
  7. 클러스터가 상주하는 서브넷과 연결된 [Route Tables(라우팅 테이블)]을 선택합니다.
  8. [Edit(편집)]을 선택합니다.
  9. [Add Rule(규칙 추가)]을 선택합니다.
    IPv4 트래픽의 경우 [Destination(대상)] 필드에 “0.0.0.0/0을 입력하고, [Target(대상)] 필드에서 인터넷 게이트웨이 ID를 선택합니다.
    IPv6 트래픽의 경우 [Destination(대상)] 필드에 “::/0을 입력하고, [Target(대상)] 필드에서 인터넷 게이트웨이 ID를 선택합니다.
  10. [Save(저장)]을 선택합니다.

다른 VPC에 있는 Amazon EC2(Amazon Elastic Compute Cloud) 인스턴스가 클러스터에 액세스할 수 없습니다.

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

  1. VPC 피어링 연결 생성 및 수락의 단계를 따릅니다.
    참고:
    VPC가 동일한 AWS 계정에 있는 경우 IPv4 CIDR 블록이 겹치지 않는지 확인합니다.
  2. 두 라우팅 테이블 모두를 업데이트합니다.
  3. 피어 VPC 그룹을 참조하도록 보안 그룹을 업데이트합니다.
  4. EC2 인스턴스에서 netcat와 같은 네트워킹 유틸리티를 사용하여 VPC 피어링 연결을 테스트합니다. 예:
nc -zv <hostname> <port>

VPC 피어링 연결이 성공하면 다음과 같은 출력이 표시됩니다.

$ nc -zv example.123456789.us-east-1.redshift.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 example.123456789.us-east-1.redshift.amazonaws.com port 5439 [tcp/*] succeeded!