[Airflow][Redshift] ('communication error', ConnectionRefusedError(111, 'Connection refused'))

bradley·2022년 8월 17일
1

Trouble Shooting

목록 보기
4/12
post-thumbnail

에러


AWS Redshift 연결 시 발생

원인


우선적으로 두 가지를 의심해볼 수 있을 것 같다.

Cluster의 [퍼블릭 액세스 가능] 옵션 비활성화

[퍼블릭 액세스 가능] 옵션은 VPC 외부에서의 Access를 허용할지를 물어보는 옵션이다.
Cluster의 [속성] 탭으로 이동하여 [네트워크 및 보안 설정] - [퍼블릭 액세스 가능]이 비활성화 되어 있는지 확인한다.

Redshift DB에서 사용하는 Port가 막혀 있음

[속성] - [네트워크 및 보안 설정] - [VPC 보안 그룹]에 있는 보안 그룹을 클릭한다.

EC2 서비스의 [보안 그룹] 화면으로 넘어오면 [인바운드 규칙] 탭으로 이동한다.
Port를 Custom 설정하지 않았다면, Redshift 기본 Port인 5439에 대한 규칙이 있는지 살펴본다.

해결방법


[퍼블릭 액세스 가능] 옵션이 비활성화된 경우

[작업] - [퍼블릭 액세스 가능한 설정 수정]을 클릭한다.

[활성화] 선택 후 [변경 사항 저장]을 한다.

환경 설정을 변경하는 것이기 때문에 Cluster가 자동으로 재부팅하게 된다. 따라서 [상태]가 Modifying으로 바뀌게 된다. Available로 바뀔 때까지 기다린다.

[속성] - [네트워크 및 보안 설정] - [퍼블릭 액세스 가능]에서 제대로 반영되었는지 확인한다.

Redshift DB Port가 막혀있을 경우

EC2 서비스의 [보안그룹] 메뉴에서 [인바운드 규칙] - [인바운드 규칙 편집]을 클릭한다.

[규칙 추가]를 클릭 후 [유형]에서 Redshift를 검색하면 5439 Port가 자동 지정되고, [소스]에 허용할 IP를 추가해준다.

Airflow 연결 확인

Airflow로 이동하여 연결 테스트를 해본다.

profile
데이터 엔지니어링에 관심이 많은 홀로 삽질하는 느림보

0개의 댓글