AWS Glue DataBrew에서 Redshift에 연결할 때의 주의 사항

소개



AWS Glue DataBrew는 AWS에서 제공하는 데이터 준비 서비스입니다. S3 상의 데이터 레이크나 Redshift 등의 JDBC 접속 가능한 데이터베이스, Snowflake 등 다양한 데이터 소스와 접속 가능하고, 250 종류 이상의 임베디드 처리를 사용해 데이터의 클리닝이나 정규화를 실시할 수 있습니다.

프라이빗 서브넷의 Redshift 클러스터를 데이터 소스로 연결할 때 발생할 수 있는 오류와 그 대응에 대해 설명합니다. Data Brew 자체의 설명이나 조작 방법에 대해서는 언급하지 않습니다.

예상되는 구성



다음과 같이 프라이빗 서브넷에 있는 Reshift 클러스터에 연결하는 경우의 구성을 가정합니다.



프로젝트를 로드하지 못한 경우 문제 해결



보안 그룹 자체 참조 설정



DataBrew 연결은 AWS Glue 연결과 동일합니다. VPC의 리소스에 연결하려면 연결 설정을 통해 지불한 ENI에 연결된 보안 그룹에 자체 참조 규칙이 설정되어 있어야 합니다. 구성하지 않으면 다음과 유사한 메시지가 발생하고 DataBrew가 VPC에 연결하지 못합니다.


Failed to connect to VPC. At least one security group must open all ingress ports. To limit traffic, 
the source security group in your inbound rule can be restricted to the same security group.
(Service: AWSGlueDataBrewJobExecutor; Status Code: 400; Error Code: InvalidInputException; Request ID: 85ec5757-efee-490d-a928-xxxxxxxxxxxx)

자체 참조 규칙은 다음과 같이 소스에 자체 보안 그룹이 설정된 규칙을 의미합니다. 모든 TCP 포트에 대한 자체 참조 인바운드 규칙을 포함해야 합니다.


이미지는 아래 문서에서 인용

Glue 엔드포인트에 대한 연결 경로



Glue 엔드포인트( glue.<region>.amazonaws.com )와 통신해야 하므로 Redshift 클러스터가 있는 프라이빗 서브넷에는 Glue 인터페이스 엔드포인트 또는 NAT Gateway가 있어야 합니다. (처음의 예상 구성 참조) Glue 엔드포인트에 대한 경로가 없으면 다음과 유사한 오류가 발생합니다.


{"error":"Failure reading from input location AwsGlueDataBrew-xxxxxxxxxxxx, 
public.users: Unable to reach AWS Glue to get connection AwsGlueDataBrew-xxxxxxxxxxxx.
Exception: Connect timeout on endpoint URL: \"https://glue.ap-northeast-1.amazonaws.com/\""}

연결의 보안 그룹을 변경하고 싶습니다.



Glue 콘솔에서 JDBC 연결을 만드는 것과 달리 DataBrew 콘솔에서 Redshift로 연결을 만드는 경우 보안 그룹을 지정하는 항목이 없습니다.



생성 후 연결 정보를 확인하면 자동으로 보안 그룹이 할당되지만 선택한 Redshift 클러스터의 보안 그룹이 할당된 것 같습니다.



반면에 Redshift에 연결된 보안 그룹에 자체 참조 규칙을 추가하는 대신 다음과 같이 설정 한 Glue에 대한 보안 그룹을 적용하려는 경우도 있습니다.
  • Glue 용 보안 그룹 (glue-sg)에 자체 참조 규칙을 설정합니다.



    유형
    Protocol
    Port range
    소스


    All TCP
    TCP
    모두
    sg-xxxxxxxxxxxxxxxxx/glue-sg


  • Redshift 용 보안 그룹 (redshift-sg)은 Glue 용 보안 그룹의 연결 권한을 설정합니다



  • 유형
    Protocol
    Port range
    소스


    Redshift
    TCP
    5439
    xxx.xxx.xxx.xxx/24

    All TCP
    TCP
    모두
    sg-xxxxxxxxxxxxxxxxx/glue-sg


    이 경우 DataBrew 대신 Glue 콘솔에서 연결을 편집하여 보안 그룹을 변경할 수 있습니다. DataBrew 로 접속을 작성했다고 해도, Glue 의 접속으로서 관리되고 있다고 하는 것이군요. 연결 삭제도 Glue 콘솔에서 수행해야 합니다.



    이상입니다.
    도움이되면 다행입니다.

    좋은 웹페이지 즐겨찾기