AWS 계정 전체에서 Amazon Managed Streaming for Apache Kafka(MSK) 클러스터에 연결하는 실패한 AWS Glue 작업의 문제를 해결하려고 합니다.
해결 방법
AWS Glue 작업이 Amazon MSK 클러스터에 연결할 수 있는지 확인한 다음 AWS Glue 작업의 인증 방법 문제를 해결하십시오.
교차 계정 AWS Glue 작업의 연결성 확인
AWS Glue 작업을 Amazon MSK 클러스터에 연결할 수 있는지 확인하려면 다음 단계를 완료하십시오.
- AWS Glue 연결의 네트워크 액세스 제어 목록(네트워크 ACL)이 교차 계정 Amazon Virtual Private Cloud(Amazon VPC)의 Amazon MSK 클러스터로의 트래픽을 허용하는지 확인합니다.
- Amazon MSK 클러스터의 보안 그룹이 Amazon MSK 클러스터의 부트스트랩 서버 포트에서 AWS Glue 연결의 서브넷 CIDR을 허용하는지 확인합니다.
참고: AWS Glue 연결의 보안 그룹에 필요한 TCP 포트에 대한 자체 참조 인바운드 규칙이 포함되어야 합니다.
- Amazon MSK 클러스터와 AWS Glue 연결의 VPC 또는 서브넷 사이에서 VPC 피어링 연결을 올바르게 구성했는지 확인하십시오.
- Reachability Analyzer를 사용하여 구성 요소가 VPC 간의 연결을 방해하는지 여부를 확인합니다.
- AWS Glue 연결에서 사용하는 것과 동일한 서브넷 및 보안 그룹에서 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 시작합니다.
AWS Systems Manager의 기능인 Session Manager 또는 SSH 클라이언트를 사용하여 EC2 인스턴스에 로그인합니다. 이후 다음 테스트를 실행합니다.
telnet example-bootstrap-server-hostname example-bootstrap-server-port
nc -zv example-bootstrap-server-hostname example-bootstrap-server-port
dig example-bootstrap-server-hostname
참고: 위의 명령에서 예시 값을 사용자의 값으로 바꾸십시오. 텔넷이 설치되지 않은 경우 sudo yum install telnet -y를 실행하여 설치하십시오.
출력에 connected 또는 connections established가 포함된 경우 AWS Glue 작업의 연결이 확인됩니다.
인증 문제 해결
AWS Glue 연결에서 부트스트랩 서버 URL을 확인하려면 다음 단계를 완료하십시오.
- Amazon MSK에서 부트스트랩 브로커를 가져옵니다.
- AWS Glue 콘솔을 엽니다.
- 탐색 창의 데이터 카탈로그에서 연결을 선택합니다. 탐색 창에서 데이터 연결을 선택할 수도 있습니다.
- 연결에서 연결을 선택한 다음 작업을 선택합니다.
- 드롭다운 목록에서 편집을 선택합니다.
- 연결 액세스에서 Kafka 부트스트랩 서버 URL이 Amazon MSK 콘솔의 URL과 일치하는지 확인합니다.
- URL이 일치하지 않는 경우 Amazon MSK 클러스터에서 사용하는 인증 방법에 따라 업데이트하십시오. 브로커 구성과 일치하는 포트 번호를 사용합니다.
TLS/SSL의 경우 AWS 내에서 액세스하려면 포트 9094를 사용하고 퍼블릭 액세스에는 포트 9194를 사용합니다.
SASL/SCRAM의 경우 AWS 내에서 액세스하려면 포트 9096을 사용하고 퍼블릭 액세스에는 포트 9196을 사용합니다.
- 변경 사항 저장을 선택합니다.
이후 Amazon MSK 클러스터의 인증 방법에 따라 다음 작업을 수행하십시오.
SASL/SCRAM-SHA-512
AWS Secrets Manager를 사용하여 사용자 이름과 암호를 확인합니다. Secrets Manager를 사용하여 자격 증명을 저장하는 경우, AWS Glue 연결의 서브넷이 보안 관리자의 엔드포인트에 연결할 수 있는지 확인합니다.
TLS/SSL 클라이언트 인증
Kafka 클라이언트의 키스토어 인증서와 키스토어 암호 또는 키 암호를 확인하려면 다음 명령을 실행합니다.
keytool -list -v -keystore /pathtocert/kafka.client.keystore.jks -storepass 123456
출력에 Amazon MSK 클러스터에서 사용하는 AWS Private Certificate Authority(AWS Private CA) 인증서가 있는지 확인합니다.
출력에 인증서가 없는 경우 인증을 사용하여 클라이언트를 설정하여 인증 사용의 5~11단계를 완료하여 새 키스토어를 생성합니다.
중요: Amazon MSK 클러스터에서 사용하는 것과 동일한 프라이빗 인증서를 사용하여 모든 클라이언트에 대해 새 키스토어를 생성합니다.
kafka.client.keystore.jks 인증서를 Amazon Simple Storage Service(Amazon S3)에 업로드합니다. 이후 인증서의 S3 경로를 사용하여 AWS Glue Kafka 연결을 구성합니다.
IAM 인증
AWS Glue 작업의 AWS Identity and Access Management(IAM) 역할에 Amazon MSK 클러스터에 대한 올바른 권한 부여 정책이 있는지 확인합니다.
관련 정보
Kafka 연결 생성
AWS Glue에서 ETL 작업 스트리밍