배치 및 세션 연결 문제 해결

이 페이지에서는 Apache Spark용 Dataproc Serverless 일괄 워크로드 및 대화형 세션의 일반적인 네트워크 연결 문제를 진단하고 해결하는 방법을 안내합니다. 이러한 문제로 인해 워크로드가 필수 데이터 소스, 외부 서비스 또는 Google Cloud API에 액세스하지 못할 수 있습니다.

일반적인 증상 및 오류 메시지

Apache Spark용 서버리스에서 연결 문제가 발생하면 다음과 같은 오류가 발생할 수 있습니다.

  • Unable to connect to service_name.googleapis.com
  • Could not reach required Google APIs
  • Connection refused
  • Host unreachable
  • Operation timed out
  • Permission denied (API 호출을 차단하는 경우 네트워크와 관련이 있는 경우가 많음)

Cloud Storage, BigQuery 또는 기타 데이터베이스에서 데이터에 액세스하는 것과 관련된 오류가 발생할 수도 있습니다.

일반적인 원인 및 문제 해결 도움말

이 섹션에서는 Apache Spark용 서버리스 연결 문제의 일반적인 원인을 나열하고 문제를 해결하는 데 도움이 되는 문제 해결 팁을 제공합니다.

네트워크 구성

네트워크 잘못된 구성은 연결 실패의 빈번한 원인입니다. Apache Spark용 서버리스 워크로드 및 세션은 내부 IP 주소가 있는 VM에서 실행되며, Google API 및 서비스에 액세스하기 위해 워크로드 또는 세션 서브넷에서 비공개 Google 액세스 (PGA)가 자동으로 사용 설정됩니다. 자세한 내용은 Apache Spark용 서버리스 네트워크 구성을 참고하세요.

  • 액세스 옵션:

    • Private Service Connect (PSC): VPC 네트워크 내에서 비공개 엔드포인트를 만들어 특정 Google API에 액세스할 수 있습니다.

      • Google Cloud 콘솔에서 Private Service Connect > 엔드포인트로 이동합니다. 엔드포인트를 연결하거나 storage.googleapis.com, dataproc.googleapis.com과 같은 필수 API의 엔드포인트가 연결되어 있고 일괄 워크로드 또는 세션 가상 프라이빗 클라우드 네트워크에 연결되어 있는지 확인합니다.
    • Cloud NAT: 워크로드에서 공개 인터넷에 액세스해야 하는 경우 일괄 워크로드 또는 세션 서브넷에 대해 Cloud NAT를 구성할 수 있습니다.

      • Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다. 게이트웨이를 구성하거나 일괄 워크로드 또는 세션 VPC 네트워크, 리전, 서브넷에 대해 게이트웨이가 구성되어 있는지 확인합니다. 또한 방화벽 규칙이 0.0.0.0/0로의 이그레스를 허용하는지 확인합니다. 자세한 내용은 Cloud NAT 설정을 참고하세요.
  • 방화벽 규칙의 특성은 다음과 같습니다.

    • VPC 네트워크 (또는 해당하는 경우 공유 VPC 네트워크 호스트 프로젝트)의 이그레스 방화벽 규칙이 필수 대상에 대한 아웃바운드 트래픽을 차단해서는 안 됩니다.
      • 해당하는 경우 송신 규칙은 Google Cloud외부의 공개 API 및 데이터베이스와 같은 외부 서비스로의 트래픽을 허용해야 합니다. 일괄 워크로드 또는 세션에 인터넷 액세스가 필요한 경우 Cloud NAT를 사용하여 서브넷 이그레스를 제공할 수 있습니다.
    • 연결 문제의 일반적인 원인은 아니지만 인그레스 규칙이 너무 제한적이면 필요한 반환 트래픽이나 내부 통신이 실수로 차단될 수 있습니다.
  • DNS 확인:

    • DNS 변환은 VPC 네트워크 내에서 구성해야 합니다. 워크로드와 세션은 storage.googleapis.com 또는 bigquery.googleapis.com과 같은 Google API와 외부 서비스의 호스트 이름을 확인할 수 있어야 합니다.
    • 커스텀 DNS 서버와 Cloud DNS 비공개 영역은 Google 도메인의 쿼리를 전달하거나 확인해야 합니다.
    • Google API에 비공개로 액세스하기 위해 Private Service Connect를 사용하는 경우 Google 서비스의 DNS 레코드는 PSC 엔드포인트를 사용하여 VPC 네트워크 내의 비공개 IP 주소로 확인되어야 합니다.

문제 해결 팁:

  • 네트워크 및 서브넷 구성을 확인합니다.

    • Apache Spark용 서버리스 일괄 또는 세션 세부정보에서 networkUrisubnetUri를 검토합니다.
    • Google Cloud 콘솔에서 VPC 네트워크 및 서브넷의 설정을 검토합니다.
  • 프록시 VM에서 연결을 테스트합니다.

    • 일괄 또는 세션 서비스 계정을 사용하여 일괄 또는 세션 서브넷에서 테스트 Compute Engine VM을 실행합니다.
    • 테스트 VM에서 다음 연결 테스트를 실행합니다.
      • nslookup storage.googleapis.com를 사용하여 DNS 변환을 확인합니다. bigquery.googleapis.comdataproc.googleapis.com과 같은 다른 Google API 도메인을 조회합니다. Apache Spark용 서버리스 서브넷에서 자동으로 사용 설정되는 비공개 Google 액세스 또는 Private Service Connect를 사용하는 경우 도메인이 비공개 IP 주소로 변환되어야 합니다.
      • curl -v https://storage.googleapis.com를 사용하여 Google API에 대한 HTTPS 연결을 확인합니다. 다른 Google 서비스에 연결해 봅니다.
      • ping 8.8.8.8를 사용하여 배치 또는 세션에 필요한 경우 인터넷 연결을 테스트합니다. Cloud NAT가 예상되는 경우 curl -v https://example.com를 시도하세요.
    • Google Cloud Network Intelligence Center 연결 테스트를 실행하여 서브넷에서 Google API 및 외부 IP 주소와 같은 관련 엔드포인트로의 네트워크 경로를 진단합니다.
  • Cloud Logging에서 네트워크 오류를 검토합니다.

    • Apache Spark용 서버리스 워크로드 또는 세션의 로깅을 검토합니다. 네트워크 타임아웃, 연결 거부 또는 API 호출 실패와 관련된 ERROR 또는 WARNING 메시지를 찾습니다. Spark 관련 네트워크 문제에 대해 jsonPayload.component="driver" 또는 jsonPayload.component="executor"로 필터링합니다.

IAM 권한

IAM 권한이 부족하면 워크로드나 세션이 리소스에 액세스할 수 없게 되어 API 호출이 거부될 경우 네트워크 오류가 발생할 수 있습니다.

일괄 워크로드 또는 세션에서 사용하는 서비스 계정에 필요한 역할이 있어야 합니다.

  • Dataproc 작업자 역할 (roles/dataproc.worker)
  • 데이터 액세스 역할(예: roles/storage.objectViewer 또는 roles/bigquery.dataViewer)
  • 로깅: (roles/logging.logWriter)

문제 해결 팁:

  • 일괄 워크로드 또는 세션 서비스 계정을 식별합니다. 지정하지 않으면 기본적으로 Compute Engine 기본 서비스 계정이 사용됩니다.
  • Google Cloud 콘솔에서 IAM 및 관리자 > IAM 페이지로 이동하여 일괄 워크로드 또는 세션 서비스 계정을 찾은 다음 워크로드 작업에 필요한 역할이 있는지 확인합니다. 누락된 역할을 부여합니다.

외부 서비스 구성

워크로드가 Google Cloud외부의 데이터베이스 또는 서비스에 연결되는 경우 구성을 확인합니다.

  • 외부 서비스 방화벽 또는 보안 그룹이 VPC 네트워크 IP 범위에서 인바운드 연결을 허용하는지 확인합니다. 해당하는 경우 VPC 피어링, Cloud VPN 또는 Cloud Interconnect를 사용하는 내부 IP 주소 또는 Cloud NAT IP 주소를 확인합니다.
  • 데이터베이스 사용자 인증 정보 또는 연결 문자열을 검토합니다. 연결 세부정보, 사용자 이름, 비밀번호를 확인하세요.

다음 단계