JDBC 리소스에 대한 크로스 계정 AWS Glue 작업을 설정하려면 어떻게 해야 하나요?

3분 분량
0

두 JDBC 데이터 스토어 간에 데이터를 이동할 수 있는 AWS Glue 작업을 설정하고 싶습니다. 하지만 데이터 스토어가 서로 다른 AWS 계정에 있습니다.

간략한 설명

서로 다른 AWS 계정의 AWS Glue 데이터 스토어 간에 데이터를 이동할 수 있도록 하려면 크로스 계정 AWS Glue 연결을 설정해야 합니다.

크로스 계정 AWS Glue 연결을 설정하려면 다음 방법 중 하나를 사용하세요.

  • 프라이빗 서브넷에 있는 JDBC 리소스의 경우 Virtual Private Cloud(VPC) 피어링을 사용하세요.
  • 공개적으로 액세스할 수 있는 JDBC 리소스의 경우 NAT 게이트웨이를 사용하세요.

해결 방법

VPC 피어링 사용

프라이빗 설정에서 Amazon Relational Database Service(RDS) DB 인스턴스를 사용하는 경우 VPC 피어링을 사용하여 계정 간 연결을 설정하세요.

참고: JDBC URL에 크로스 계정 JDBC 데이터베이스의 호스트 이름을 지정하도록 요구하려면 VPC 피어링 연결에 대한 DNS 확인을 켭니다. 이 옵션을 켜지 않으면 제공된 호스트 이름을 확인할 수 없으므로 AWS Glue 연결이 실패합니다. 프라이빗 IP 주소만 전달해도 연결이 실패하지는 않습니다. 자세한 내용은 VPC 피어링 연결을 위한 DNS 해상도 켜기를 참조하세요.

1.    계정 A와 계정 B 간에 VPC 피어링을 생성합니다.

  • VPC 준비 - 두 VPC 모두 동일한 AWS 계정 또는 AWS 조직 내의 다른 계정에 속해 있어야 합니다. VPC는 동일한 AWS 리전에 있어야 하며 고유한 IP 주소 스페이스를 가져야 합니다.
  • VPC 피어링 연결 요청 - 계정 B의 VPC에서 계정 A의 VPC와 피어링하려는 VPC 대시보드를 엽니다. 피어링 연결을 선택한 다음 VPC 피어링 연결 생성을 선택합니다. 계정 A의 VPC를 선택한 다음 VPC 피어링 연결을 구성합니다.
  • 피어링 요청 수락 - 계정 A의 소유자가 피어링 요청 이메일 알림을 받습니다. 요청을 수락하려면 계정 A의 소유자가 계정에 로그인하고 VPC 대시보드로 이동해야 합니다.
  • 피어 VPC에 경로 추가 - 피어링 연결을 설정한 후 VPC의 서브넷에 대한 라우팅 테이블에 피어 VPC로 가는 경로를 추가합니다. 이 경로는 피어 VPC의 IP 주소 범위를 지정합니다.
  • 연결 테스트 - 연결을 테스트하려면 각 VPC에서 인스턴스를 시작합니다. 인스턴스가 프라이빗 IP 주소를 사용하여 서로 통신할 수 있는지 확인합니다.

참고: VPC 피어링 연결을 보호하려면 네트워크 액세스 제어 목록(ACL) 또는 보안 그룹을 사용하여 VPC 간 트래픽을 제한합니다. 또한 VPC 피어링 연결에서는 서로 다른 VPC의 인스턴스가 퍼블릭 IP 주소를 사용하여 서로 통신하는 것을 허용하지 않습니다.

2.    AWS Glue 연결을 생성합니다. AWS Glue Studio에서 연결 생성을 선택합니다. 필요한 연결 속성연결 액세스 세부 정보를 모두 추가한 다음 연결 생성을 선택합니다.

3.    Amazon RDS 보안 그룹에서 AWS Glue 서브넷의 IPV4 CIDR을 허용하는 규칙을 인바운드 규칙에 추가합니다.

NAT 게이트웨이 사용

이 방법을 사용하면 공개적으로 액세스할 수 있고 퍼블릭 IPV4 주소가 연결된 JDBC 리소스에 연결하고 리소스를 읽을 수 있습니다. 이렇게 하려면 계정 A에 NAT 게이트웨이가 있는 AWS Glue 프라이빗 서브넷과 JDBC 연결을 생성해야 합니다.

참고: VPC 트래픽이 데이터 소스에 도달하려면 NAT 게이트웨이에는 트래픽을 인터넷 게이트웨이로 라우팅할 수 있는 기능이 있어야 합니다.

1.    AWS Glue 연결을 생성합니다. AWS Glue Studio에서 연결 생성을 선택합니다. 필요한 연결 속성연결 액세스 세부 정보를 모두 추가한 다음 연결 생성을 선택합니다.

2.    데이터베이스 보안 그룹의 수신 규칙에서 데이터베이스의 해당 포트에 있는 계정 A의 NAT 게이트웨이의 탄력적 IP 주소를 허용합니다. Amazon RDS의 경우 3306을 사용합니다. Amazon Redshift의 경우 5439를 사용하고 PostgreSQL용 Amazon RDS의 경우 5432를 사용합니다.

3.    계정 A와 계정 B에 대해 이 설정을 완료한 후 연결을 테스트합니다. 연결에 성공하면 AWS Glue에서 추출, 전환, 적재(ETL) 작업을 실행합니다.

JDBC 데이터 소스에 액세스할 수 있는지 확인

AWS Glue 연결의 서브넷에서 JDBC 데이터 소스에 액세스할 수 있는지 확인합니다. 연결에서 사용하는 것과 동일한 서브넷 및 보안 그룹에 대한 SSH 액세스 권한으로 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다. 그런 다음 SSH를 사용하여 인스턴스에 연결하고 다음 명령을 실행하여 연결을 테스트합니다.

$ dig hostname
$ nc -zv hostname port

관련 정보

AWS Glue의 ETL 연결 유형 및 옵션

VPC의 JDBC 데이터 스토어에 연결

AWS 공식
AWS 공식업데이트됨 일 년 전