내용으로 건너뛰기

Amazon Redshift 연결 오류를 해결하려면 어떻게 해야 합니까?

4분 분량
0

Amazon Redshift 클러스터의 연결 문제를 해결하고 싶습니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

최근에 Amazon Redshift 클러스터의 크기를 조정했거나 스냅샷에서 클러스터를 복원한 경우

최근에 Amazon Redshift 클러스터의 크기를 조정했거나 스냅샷에서 클러스터를 복원한 경우 클러스터의 서브넷을 확인하십시오. 스냅샷 크기 조정 또는 복원 이전 시점부터 동일한 서브넷에서 클러스터를 시작해야 합니다.

최근에 Amazon Redshift 클러스터의 크기를 조정했거나 클러스터를 복원하지 않았다면 네트워크 구성을 확인하십시오. 이전 서브넷과 새 서브넷의 네트워크 구성이 모두 동일해야 합니다.

Amazon Redshift 클러스터가 퍼블릭 서브넷에 있는 경우

퍼블릭 서브넷에 있는 Amazon Redshift 클러스터에 연결하려는 경우 클러스터가 공개적으로 액세스 가능으로 설정되어 있는지 확인하십시오. 공개적으로 액세스할 수 있는 옵션에 대한 자세한 내용은 가상 프라이빗 클라우드(VPC)의 Redshift 리소스를 참조하십시오.

라우팅 테이블에 인터넷 게이트웨이가 연결되어 있는지 확인하십시오.

Amazon Redshift 클러스터에 대한 연결을 테스트하려면 telnet 명령을 실행합니다.

telnet cluster_endpoint cluster_port

참고: cluster_endpointcluster_port를 원하는 값으로 바꾸십시오.

Amazon Redshift 클러스터가 프라이빗 서브넷에 있는 경우

Amazon Redshift 클러스터가 프라이빗 서브넷에 있는 경우 퍼블릭 서브넷의 라우팅 테이블에 NAT 게이트웨이를 연결해야 합니다. NAT 게이트웨이를 사용하면 프라이빗 서브넷의 클러스터를 인터넷에 연결할 수 있습니다. 클러스터가 공개적으로 액세스 가능으로 설정되어 있지 않은지 확인하십시오.

클라이언트가 Amazon Redshift 클러스터 리더 노드의 프라이빗 IP 주소에 도달할 수 있는지 확인하려면 dig 명령을 실행합니다.

dig cluster_endpoint

참고: cluster_endpoint를 클러스터 엔드포인트로 바꾸십시오.

Amazon Redshift 클러스터에 대한 연결을 테스트하려면 telnet 명령을 실행합니다.

telnet cluster_endpoint cluster_port

참고: cluster_endpointcluster_port를 원하는 값으로 바꾸십시오.

텔넷이 실패했거나 Amazon Redshift 클러스터에 여전히 액세스할 수 없는 경우

telnet 명령의 출력에 Amazon Redshift 클러스터 연결에 실패한 것으로 표시되면 다음 조건을 확인하십시오.

  • 보안 그룹의 인바운드 규칙이 TCP 유형의 Amazon Redshift 포트 5439를 허용합니다.
  • 보안 그룹의 인바운드 규칙에 Amazon Redshift 클러스터에 연결하는 데 사용되는 CIDR 범위 또는 IP 주소가 포함됩니다.

Amazon Redshift 클러스터 연결은 성공했지만 클러스터에 여전히 액세스할 수 없다고 출력에 표시되는 경우 네트워크 방화벽을 확인하십시오. 방화벽으로 인해 Amazon Redshift 포트 5439가 차단될 수 있습니다.

잘못된 작업 연결 오류

Amazon Redshift 클러스터에서 모든 연결에 대해 SSL을 켜야 하는 경우 다음과 같은 연결 오류가 발생할 수 있습니다.

"Error: [Amazon](500310) Invalid operation: no pg_hba.conf entry for host "::ffff:205.xxx.xxx.xxx", user "username", database "dbname", SSL off;"

require_ssl 파라미터가 true로 설정되어 있는지 확인하려면 다음 단계를 완료하십시오.

  1. Amazon Redshift 콘솔을 엽니다.
  2. 탐색 창에서 구성을 선택합니다.
  3. 워크로드 관리를 선택합니다.
  4. Amazon Redshift 클러스터에 연결할 파라미터 그룹을 수정합니다.
  5. (선택 사항) describe-cluster-parameters AWS CLI 명령을 실행하여 SSL 구성을 확인합니다.
    aws redshift describe-cluster-parameters --parameter-group-name exampleparametergroupname

SSL 구성이 true로 설정된 경우 require_ssl 파라미터를 기본 파라미터 값false로 업데이트하십시오. SSL 구성을 변경하려면 Amazon Redshift 클러스터와 연결된 파라미터 그룹을 편집하십시오. Amazon Redshift 콘솔의 파라미터 탭에서 파라미터 그룹을 편집할 수 있습니다.

하지만 사용 사례 또는 환경에 SSL 연결이 필요한 경우 연결 문자열에 필수 SSL 파라미터가 포함되어 있는지 확인하십시오.

예를 들면 다음과 같습니다.

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true

치명적 연결 오류

Amazon Redshift 클러스터에 열려 있는 연결이 너무 많으면 다음과 같은 오류가 나타날 수 있습니다.

"Error: FATAL: connection limit [500]/[2000] exceeded for user"

오류 메시지에서 볼 수 있듯이 Amazon Redshift의 dc2.large 노드 유형에 대한 최대 연결 제한은 500개입니다. dc2.8xlarge, ra3.xlplus, ra3.4xlarge 및 ra3.16xlarge 노드의 최대 연결 제한은 2,000개입니다.

Amazon Redshift 클러스터에서 열려 있는 연결 수를 확인하려면 다음 단계를 완료하십시오.

  1. Amazon CloudWatch 콘솔을 엽니다.

  2. Amazon CloudWatch Logs 항목에서 DatabaseConnections 지표를 찾아봅니다.

  3. STL_CONNECTION_LOG 테이블을 사용하여 열려 있는 연결을 확인합니다.

    select recordtime, username, dbname, remotehost, remoteportfrom stl_connection_log
    where event = 'initiating session'
    and pid not in
    (select pid from stl_connection_log
    where event = 'disconnecting session')
    order by 1 desc;
  4. STV_SESSIONS 테이블을 사용하여 Amazon Redshift의 활성 사용자 세션에 대한 정보를 확인합니다.

    select * from stv_sessions;

열려 있는 연결이 많으면 다음 작업 중 하나를 수행하십시오.

  • PG_TERMINATE_BACKEND 명령을 사용하여 모든 유휴 세션을 종료합니다.
  • Amazon Redshift 클러스터에 연결하는 데 사용하는 운영 체제에 따라 클라이언트 측의 TCP/IP 시간 제한 설정을 변경합니다. TCP/IP 시간 제한 설정을 업데이트하면 유휴 세션이 열린 상태로 유지되는 것을 방지할 수 있습니다.

Connection refused 오류

Amazon Redshift 클러스터가 연결을 설정하지 못하면 다음과 같은 Connection Refused 오류가 나타날 수 있습니다.

"Error: amazon 500150 error setting/closing connection: operation timed out/ connection refused."

Amazon Redshift 클러스터에 액세스하려고 하면 권한 문제로 인해 이전 오류가 발생할 수 있습니다. 이 연결 오류를 해결하려면 다음 작업 중 하나를 수행하십시오.

관련 정보

프라이빗 Amazon Redshift 클러스터를 공개적으로 액세스 가능하게 만들려면 어떻게 해야 합니까?

Amazon Redshift 클러스터에 연결이 안 되는 이유는 무엇입니까?

AWS 공식업데이트됨 6달 전