このページでは、Managed Service for Apache Spark バッチ ワークロードとインタラクティブ セッションの一般的なネットワーク接続の問題を診断して解決する方法について説明します。 これらの問題により、ワークロードが必要なデータソース、 外部サービス、または Google Cloud API にアクセスできなくなる可能性があります。
一般的な症状とエラー メッセージ
Managed Service for Apache Spark で接続の問題が発生すると、次のようなエラーが発生することがあります。
Unable to connect to service_name.googleapis.comCould not reach required Google APIsConnection refusedHost unreachableOperation timed outPermission denied(API 呼び出しをブロックしている場合はネットワーク関連であることが多い)
Cloud Storage、BigQuery、その他のデータベースのデータへのアクセスに関連するエラーが発生することもあります。
一般的な原因とトラブルシューティングのヒント
このセクションでは、Managed Service for Apache Spark の接続に関する問題の一般的な原因と、その解決に役立つトラブルシューティングのヒントについて説明します。
ネットワークの構成
ネットワークの構成ミスは、接続障害の一般的な原因です。 Managed Service for Apache Spark 用のワークロードとセッションは、内部 IP アドレスを持つ VM で実行されます。ワークロードまたはセッションのサブネットで プライベート Google アクセス(PGA) が自動的に有効になり、Google API とサービスにアクセス します。詳細については、 Managed Service for Apache Spark のネットワーク構成をご覧ください。
アクセス オプション:
Private Service Connect(PSC): VPC ネットワーク内にプライベート エンドポイントを作成して、特定の Google API にアクセスできます。
- コンソールで、
[Private Service Connect] > [エンドポイント]に移動します。
Google Cloud エンドポイントを接続するか、
storage.googleapis.comやdataproc.googleapis.comなどの必要なすべての API のエンドポイントが接続され、バッチ ワークロードまたはセッションの Virtual Private Cloud ネットワークに接続されていることを確認します。
- コンソールで、
[Private Service Connect] > [エンドポイント]に移動します。
Google Cloud エンドポイントを接続するか、
Cloud NAT: ワークロードが公共のインターネットにアクセスする必要がある場合は、バッチ ワークロードまたはセッションのサブネットに Cloud NAT を構成できます。
- コンソールで、
[Cloud NAT] ページに移動します。
Google Cloud ゲートウェイを構成するか、バッチ ワークロードまたはセッションの VPC ネットワーク、リージョン、サブネットに
ゲートウェイが構成されていること
を確認します。また、ファイアウォール ルールで
0.0.0.0/0への下り(外向き)が許可されていることを確認します。詳細については、 Cloud NAT を設定するをご覧ください。
- コンソールで、
[Cloud NAT] ページに移動します。
Google Cloud ゲートウェイを構成するか、バッチ ワークロードまたはセッションの VPC ネットワーク、リージョン、サブネットに
ゲートウェイが構成されていること
を確認します。また、ファイアウォール ルールで
ファイアウォール ルール:
- VPC ネットワーク(または共有 VPC ネットワーク ホスト プロジェクト)の下り(外向き)ファイアウォール ルールで、必要な宛先への送信トラフィックがブロックされないようにする必要があります。
- 該当する場合は、下り(外向き)ルールで、外部サービス( パブリック API や外部のデータベースなど)へのトラフィックを許可する必要があります。 Google Cloud バッチ ワークロードまたはセッションでインターネット アクセスが必要な場合は、 Cloud NAT を使用してサブネットの下り(外向き)を提供できます。
- 接続の問題の一般的な原因ではありませんが、上り(内向き)ルールが厳しすぎると、必要な戻りトラフィックや内部通信が誤ってブロックされる可能性があります。
- VPC ネットワーク(または共有 VPC ネットワーク ホスト プロジェクト)の下り(外向き)ファイアウォール ルールで、必要な宛先への送信トラフィックがブロックされないようにする必要があります。
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 アドレスに解決される必要があります。
- DNS の解決は VPC ネットワーク内で構成する必要があります。ワークロードとセッションは、
トラブルシューティングのヒント:
ネットワークとサブネットの構成を特定する:
- Managed Service for Apache Spark のバッチまたはセッションの詳細で、
networkUriとsubnetUriを確認します。 - コンソールで、VPC ネットワークとサブネットの設定を確認します。 Google Cloud
- Managed Service for Apache Spark のバッチまたはセッションの詳細で、
プロキシ VM からの接続をテストする:
- バッチまたはセッションのサービス アカウントを使用して、バッチまたはセッションのサブネットにテスト用の Compute Engine VM を起動します。
- テスト VM から、次の接続テストを行います。
nslookup storage.googleapis.comを使用して DNS 解決を検証します。bigquery.googleapis.comやdataproc.googleapis.comなどの他の Google API ドメインをルックアップします。Managed Service for 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 でネットワーク エラーを確認する:
- Managed Service for Apache Spark のワークロードまたはセッションのロギングを確認します。ネットワーク タイムアウト、接続拒否、API 呼び出しの失敗に関連する
ERRORまたはWARNINGメッセージを探します。Spark 固有のネットワークの問題については、jsonPayload.component="driver"またはjsonPayload.component="executor"でフィルタします。
- Managed Service for Apache Spark のワークロードまたはセッションのロギングを確認します。ネットワーク タイムアウト、接続拒否、API 呼び出しの失敗に関連する
IAM の権限
IAM の権限が不十分な場合、ワークロードまたはセッションがリソースにアクセスできず、API 呼び出しが拒否されるとネットワーク障害が発生する可能性があります。
バッチ ワークロードまたはセッションで使用されるサービス アカウントには、必須のロールが必要です。
- Managed Service for Apache Spark Worker ロール (
roles/dataproc.worker)。 - データアクセス ロール(
roles/storage.objectViewerやroles/bigquery.dataViewerなど)。 - ロギング:(
roles/logging.logWriter)。
トラブルシューティングのヒント:
- バッチ ワークロードまたはセッション サービス アカウントを特定します。 指定しない場合、デフォルトは Compute Engine のデフォルト サービス アカウントになります。
- コンソールで、 [IAM と管理] > [IAM] ページに移動し、バッチ ワークロードまたはセッションのサービス アカウントを見つけて、 ワークロード オペレーションに必要なロールがあることを確認します。 Google Cloud 不足しているロールを付与します。
外部サービス構成
ワークロードが 外部のデータベースまたはサービスに接続する場合は、 Google Cloud その構成を確認します。
- 外部サービスのファイアウォールまたはセキュリティ グループで、VPC ネットワーク IP 範囲からの上り(内向き)接続が許可されていることを確認します。該当する場合は、VPC ピアリング、Cloud VPN、Cloud Interconnect、または Cloud NAT IP アドレスを使用して内部 IP アドレスを確認します。
- データベースの認証情報または接続文字列を確認します。接続の詳細、ユーザー名、パスワードを確認します。
次のステップ
- Managed Service for Apache Spark ネットワーキングについて学習する。
- Managed Service for Apache Spark サービス アカウントを確認する。
- 一般的なネットワーク トラブルシューティング ガイドを参照する。