이 페이지에서는 Apache Spark용 서버리스 일괄 워크로드 및 대화형 세션의 일반 네트워크 연결 문제를 진단하고 해결하는 방법을 안내합니다. 이러한 문제로 인해 워크로드가 필요한 데이터 소스, 외부 서비스 또는 Google Cloud API에 액세스하지 못할 수 있습니다.
일반적인 증상 및 오류 메시지
Apache Spark용 서버리스에서 연결 문제가 발생하면 다음과 같은 오류가 발생할 수 있습니다.
Unable to connect to service_name.googleapis.comCould not reach required Google APIsConnection refusedHost unreachableOperation timed outPermission denied(API 호출을 차단하는 경우 네트워크와 관련된 경우가 많음)
Cloud Storage, BigQuery 또는 기타 데이터베이스의 데이터 액세스와 관련된 오류가 발생할 수도 있습니다.
일반적인 원인 및 문제 해결 팁
이 섹션에서는 Apache Spark용 서버리스 연결 문제의 일반적인 원인을 나열하고 문제를 해결하는 데 도움이 되는 문제 해결 팁을 제공합니다.
네트워크 구성
네트워크 구성 오류는 연결 실패의 빈번한 원인입니다. Apache Spark용 서버리스 워크로드 및 세션은 내부 IP 주소가 있는 VM에서 실행되며, 비공개 Google 액세스 (PGA) 가 Google API 및 서비스에 액세스하기 위해 워크로드 또는 세션 서브넷에서 자동으로 사용 설정됩니다. 자세한 내용은 Apache Spark용 서버리스 네트워크 구성을 참조하세요.
액세스 옵션:
Private Service Connect (PSC): VPC 네트워크 내에서 비공개 엔드포인트를 만들어 특정 Google API에 액세스할 수 있습니다.
- 콘솔에서 Google Cloud
Private Service Connect > 엔드포인트 로 이동합니다.
엔드포인트를 연결하거나
storage.googleapis.com및dataproc.googleapis.com과 같은 모든 필수 API에 엔드포인트가 연결되어 있고 일괄 워크로드 또는 세션 Virtual Private Cloud 네트워크에 연결되어 있는지 확인합니다.
- 콘솔에서 Google Cloud
Private Service Connect > 엔드포인트 로 이동합니다.
엔드포인트를 연결하거나
Cloud NAT: 워크로드에서 공개 인터넷에 액세스해야 하는 경우 일괄 워크로드 또는 세션 서브넷에 Cloud NAT를 구성할 수 있습니다.
- 콘솔에서
Cloud NAT 페이지로 이동합니다. Google Cloud
게이트웨이를 구성하거나 일괄
워크로드 또는 세션 VPC 네트워크, 리전, 서브넷에
게이트웨이가 구성되어 있는지 확인합니다. 또한
방화벽 규칙이
이그레스를
0.0.0.0/0으로 허용하는지 확인합니다. 자세한 내용은 Cloud NAT 설정을 참조하세요.
- 콘솔에서
Cloud NAT 페이지로 이동합니다. Google Cloud
게이트웨이를 구성하거나 일괄
워크로드 또는 세션 VPC 네트워크, 리전, 서브넷에
게이트웨이가 구성되어 있는지 확인합니다. 또한
방화벽 규칙이
이그레스를
방화벽 규칙:
- VPC
네트워크(또는 공유 VPC 네트워크 호스트 프로젝트(해당하는 경우))의 이그레스 방화벽 규칙은 필수 대상에 대한 아웃바운드 트래픽을 차단해서는 안 됩니다.
- 해당하는 경우 이그레스 규칙은 공개 API 및외부의 데이터베이스와 같은 외부 서비스로의 트래픽을 허용해야 합니다. such as public APIs and databases outside of Google Cloud. 일괄 워크로드 또는 세션에 인터넷 액세스가 필요한 경우 Cloud NAT 를 사용하여 서브넷 이그레스를 제공할 수 있습니다.
- 연결 문제의 일반적인 원인은 아니지만 지나치게 제한적인 인그레스 규칙은 실수로 필요한 반환 트래픽 또는 내부 통신을 차단할 수 있습니다.
- VPC
네트워크(또는 공유 VPC 네트워크 호스트 프로젝트(해당하는 경우))의 이그레스 방화벽 규칙은 필수 대상에 대한 아웃바운드 트래픽을 차단해서는 안 됩니다.
DNS 변환:
- DNS 변환은 VPC
네트워크 내에서 구성해야 합니다. 워크로드 및 세션은
Google API(예:
storage.googleapis.com또는bigquery.googleapis.com) 및 외부 서비스의 호스트 이름을 변환할 수 있어야 합니다. - 커스텀 DNS 서버 및 Cloud DNS 비공개 영역은 Google 도메인에 대한 쿼리를 전달하거나 변환해야 합니다.
- Google API에 비공개로 액세스하기 위해 Private Service Connect를 사용하는 경우 Google 서비스의 DNS 레코드는 PSC 엔드포인트를 사용하여 VPC 네트워크 내의 비공개 IP 주소로 변환되어야 합니다.
- DNS 변환은 VPC
네트워크 내에서 구성해야 합니다. 워크로드 및 세션은
Google API(예:
문제 해결 팁:
네트워크 및 서브넷 구성 식별:
- Apache Spark용 서버리스 일괄 또는 세션 세부정보에서
networkUri및subnetUri을 검토합니다. - 콘솔에서 VPC 네트워크 및 서브넷의 설정을 검토합니다. Google Cloud
- Apache Spark용 서버리스 일괄 또는 세션 세부정보에서
프록시 VM에서 연결 테스트:
- 일괄 또는 세션 서브넷에서 일괄 또는 세션 서비스 계정을 사용하여 테스트 Compute Engine VM을 시작합니다.
- 테스트 VM에서 다음 연결 테스트를 실행합니다.
nslookup storage.googleapis.com을 사용하여 DNS 변환을 확인합니다.bigquery.googleapis.com및dataproc.googleapis.com과 같은 다른 Google API 도메인을 조회합니다. Apache Spark용 서버리스 서브넷에서 자동으로 사용 설정되는 비공개 Google 액세스 또는 Private Service Connect를 사용하면 도메인이 비공개 IP 주소로 변환되어야 합니다.curl -v https://storage.googleapis.com을 사용하여 HTTPS 연결 을 Google API에 확인합니다. 다른 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"로 필터링합니다.
- Apache Spark용 서버리스 워크로드 또는
세션의 로깅을 검토합니다. 네트워크 시간 초과,
연결 거부 또는 API 호출 실패와 관련된
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 또는 Cloud NAT IP 주소를 사용하여 내부 IP 주소를 확인합니다.
- 데이터베이스 사용자 인증 정보 또는 연결 문자열을 검토합니다. 연결 세부정보, 사용자 이름, 비밀번호를 확인합니다.
다음 단계
- Apache Spark용 서버리스 네트워킹에 대해 알아봅니다.
- Apache Spark용 서버리스 서비스 계정을 검토합니다.
- 일반적인 네트워크 문제 해결 가이드를 참조하세요: