

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon EMR の Apache Spark トラブルシューティングエージェントとは
<a name="spark-troubleshoot"></a>

## 序章
<a name="spark-troubleshooting-agent-intro"></a>

Amazon EMR 用 Apache Spark トラブルシューティングエージェントは、Amazon EMR、 AWS Glue、Amazon SageMaker ノートブック上の Apache Spark アプリケーションのトラブルシューティングを簡素化する会話型 AI 機能です。従来の Spark のトラブルシューティングでは、根本原因とコード修正を特定するために、ログ、パフォーマンスメトリクス、エラーパターンの広範な手動分析が必要です。エージェントは、自然言語プロンプト、自動化されたワークロード分析、インテリジェントなコードレコメンデーションにより、このプロセスを簡素化します。

エージェントを使用して、PySpark および Scala アプリケーションの障害をトラブルシューティングできます。エージェントは、失敗したジョブを分析し、パフォーマンスのボトルネックを特定し、実装の決定を完全に制御しながら、実用的な推奨事項とコード修正を提供します。

**注記**  
Apache Spark トラブルシューティングエージェントは、Amazon EMR の一部として追加料金なしで利用できます。エージェントは分析とレコメンデーションのみを提供します。推奨される修正を検証するためにアプリケーションを実行するときに使用する Amazon EMR リソースに対してのみ料金が発生します。

## アーキテクチャの概要
<a name="spark-troubleshooting-agent-architecture"></a>

トラブルシューティングエージェントには 3 つの主なコンポーネントがあります。インタラクション用の開発環境の MCP 互換 AI アシスタント、クライアントと AWS サービス間の安全な通信と認証を処理する [の MCP プロキシ AWS](https://github.com/aws/mcp-proxy-for-aws)、Amazon EMR、 AWS Glue、Amazon Amazon SageMaker SageMaker ノートブック用の特殊な Spark トラブルシューティングツールを提供する Amazon SageMaker Unified Studio リモート MCP サーバーです。 `(preview)`この図は、AI Assistant を介して Amazon SageMaker Unified Studio リモート MCP サーバーを操作する方法を示しています。

![\[Spark のトラブルシューティングエージェントアーキテクチャ。\]](http://docs.aws.amazon.com/ja_jp/emr/latest/ReleaseGuide/images/spark-troubleshooting-agent-architecture.png)


AI アシスタントは、次のステップに従って MCP サーバーが提供する特殊なツールを使用してトラブルシューティングを調整します。
+ **特徴量の抽出とコンテキストの構築:** エージェントは、Spark History Server ログ、設定、エラートレースなど、Spark アプリケーションからテレメトリデータを自動的に収集して分析します。主要なパフォーマンスメトリクス、リソース使用率パターン、障害署名を抽出して、インテリジェントなトラブルシューティングのための包括的なコンテキストプロファイルを構築します。
+ **GenAI 根本原因アナライザーとレコメンデーションエンジン:** エージェントは AI モデルと Spark ナレッジベースを活用して抽出された機能を関連付け、パフォーマンスの問題や障害の根本原因を特定します。Spark アプリケーションの実行で何が問題だったかの診断インサイトと分析を提供します。
+ **GenAI Spark Code Recommendation:** 前のステップの根本原因分析に基づいて、エージェントは既存のコードパターンを分析し、アプリケーションの障害に対するコード修正を必要とする非効率的なオペレーションを特定します。具体的な例を挙げて、特定のコード変更、設定調整、アーキテクチャの改善など、実用的な推奨事項を提供します。

**Topics**
+ [序章](#spark-troubleshooting-agent-intro)
+ [アーキテクチャの概要](#spark-troubleshooting-agent-architecture)
+ [エージェントをトラブルシューティングするためのセットアップ](spark-troubleshooting-agent-setup.md)
+ [トラブルシューティングエージェントの使用](spark-troubleshooting-using-troubleshooting-agent.md)
+ [機能と機能](spark-troubleshooting-features.md)
+ [トラブルシューティングと Q&A](spark-troubleshooting-agent-troubleshooting.md)
+ [Spark でのエージェントのワークフローのトラブルシューティングの詳細](spark-troubleshooting-agent-workflow.md)
+ [プロンプトの例](spark-troubleshooting-agent-prompt-examples.md)
+ [IAM ロールのセットアップ](spark-troubleshooting-agent-iam-setup.md)
+ [Spark トラブルシューティングツールの使用](spark-troubleshooting-agent-using-tools.md)
+ [Amazon SageMaker Unified Studio MCP のインターフェイス VPC エンドポイントの設定](spark-troubleshooting-agent-vpc-endpoints.md)
+ [Apache Spark トラブルシューティングエージェントのクロスリージョン処理](spark-troubleshooting-cross-region-processing.md)
+ [を使用した Amazon SageMaker Unified Studio MCP 呼び出しのログ記録 AWS CloudTrail](spark-troubleshooting-cloudtrail-integration.md)
+ [Apache Spark エージェントのサービス改善](spark-agents-service-improvements.md)

# エージェントをトラブルシューティングするためのセットアップ
<a name="spark-troubleshooting-agent-setup"></a>

**注記**  
Apache Spark トラブルシューティングエージェントは、クロスリージョン推論を使用して自然言語リクエストを処理し、レスポンスを生成します。詳細については、「」を参照してください[Apache Spark トラブルシューティングエージェントのクロスリージョン処理](spark-troubleshooting-cross-region-processing.md)。Amazon SageMaker Unified Studio MCP サーバーはプレビュー中であり、変更される可能性があります。

## 前提条件
<a name="spark-troubleshooting-agent-prerequisites"></a>

Kiro CLI との統合のセットアッププロセスを開始する前に、ワークステーションに以下がインストールされていることを確認してください。
+  [ CLI AWS のインストール ](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) 
+  [ Python 3.10 以降をインストールする ](https://www.python.org/downloads/release/python-3100/) 
+  の [ MCP Proxy の AWS](https://github.com/aws/mcp-proxy-for-aws?tab=readme-ov-file)[`uv`パッケージマネージャーをインストールする ](https://docs.astral.sh/uv/getting-started/installation/) 
+  [ Kiro CLI のインストール ](https://kiro.dev/docs/cli/) 
+ AWS ローカル認証情報の設定 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)、環境変数、または IAM ロール経由) - EMR 検証ジョブ実行用のアップグレードされたジョブアーティファクトのアップロードなどのローカルオペレーション用。

## リソースのセットアップ
<a name="spark-troubleshooting-agent-setup-resources"></a>

 AWS CloudFormation テンプレートを使用して、MCP サーバーのリソースを設定できます。これらのテンプレートは、要件に応じて変更する必要があるサンプルです。テンプレートは、トラブルシューティングプロセス用に次のリソースを作成します。

1. MCP サーバーを呼び出すアクセス許可と、選択したプラットフォームのトラブルシューティングプロセスに必要なアクセス許可を持つ IAM ロール。

次の表に示す**起動スタック**ボタンの 1 つを選択します。これにより、各リージョンの AWS CloudFormation コンソールでスタックが起動されます。


| リージョン | 起動する | 
| --- | --- | 
| 米国東部(オハイオ) |  [https://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-east-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-2.s3.us-east-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 米国東部 (バージニア北部) |  [https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-east-1.s3.us-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 米国西部 (オレゴン) |  [https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-us-west-2.s3.us-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| アジアパシフィック (東京) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-1.s3.ap-northeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 欧州 (アイルランド) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-1.s3.eu-west-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| アジアパシフィック (シンガポール) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-1.s3.ap-southeast-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| アジアパシフィック (シドニー) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-southeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-southeast-2.s3.ap-southeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| カナダ (中部) |  [https://console.aws.amazon.com/cloudformation/home?region=ca-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ca-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ca-central-1.s3.ca-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 南米 (サンパウロ) |  [https://console.aws.amazon.com/cloudformation/home?region=sa-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=sa-east-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-sa-east-1.s3.sa-east-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 欧州 (フランクフルト) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-central-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-central-1.s3.eu-central-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 欧州 (ストックホルム) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-north-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-north-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-north-1.s3.eu-north-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 欧州 (ロンドン) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-2.s3.eu-west-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| 欧州 (パリ) |  [https://console.aws.amazon.com/cloudformation/home?region=eu-west-3#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=eu-west-3#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-eu-west-3.s3.eu-west-3.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| アジアパシフィック (ソウル) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-northeast-2#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-northeast-2.s3.ap-northeast-2.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 
| アジアパシフィック (ムンバイ) |  [https://console.aws.amazon.com/cloudformation/home?region=ap-south-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup](https://console.aws.amazon.com/cloudformation/home?region=ap-south-1#/stacks/new?templateURL=https%3A%2F%2Fsmus-mcp-cfn-template-prod-ap-south-1.s3.ap-south-1.amazonaws.com%2Fcloudformation%2Fspark-troubleshooting-mcp-setup.yaml&stackName=spark-troubleshooting-mcp-setup)  | 

**スタックの詳細の指定**ページに進み、**スタック名**を入力します。**パラメータ**の下に追加情報を入力します。次の情報を入力し、スタックの作成に進みます。
+ **TroubleshootingRoleName** - トラブルシューティングオペレーション用に作成する IAM ロールの名前
+ **EnableEMREC2** - EMR-EC2 トラブルシューティング許可を有効にする (デフォルト: true)
+ **EnableEMRServerless** - EMR-Serverless トラブルシューティングのアクセス許可を有効にする (デフォルト: true)
+ **EnableGlue** - Glue のトラブルシューティングアクセス許可を有効にする (デフォルト: true)
+ **CloudWatchKmsKeyArn** - (オプション) CloudWatch Logs 暗号化用の既存の KMS キーの ARN (EMR Serverless のみ、デフォルトの暗号化の場合は空のままにします)

[CloudFormation テンプレート](https://github.com/aws-samples/aws-emr-utilities/blob/03c20fece616de23ec0ea5389f0113a5bc65fc3a/utilities/apache-spark-agents/spark-troubleshooting-agent-cloudformation/spark-troubleshooting-mcp-setup.yaml)をダウンロードして確認し、上記のオプションを指定してCloudFormation CLI コマンドを使用してテンプレートを自分で起動することもできます。例については、以下を参照してください。

```
# deploy the stack with CloudFormation CLI commands
aws cloudformation deploy \
  --template-file spark-troubleshooting-mcp-setup.yaml \
  --stack-name spark-troubleshooting-mcp-setup \
  --region <your Spark MCP server launch region> \
  --capabilities CAPABILITY_NAMED_IAM \
  --parameter-overrides \
    TroubleshootingRoleName=spark-troubleshooting-role


# retrieve the 1-line instruction to set the local environment variables, which will be used for the following MCP server configuration
aws cloudformation describe-stacks \
  --stack-name spark-troubleshooting-mcp-setup \
  --region <your Spark MCP server launch region> \
  --query "Stacks[0].Outputs[?OutputKey=='ExportCommand'].OutputValue" \
  --output text
```

Outputs タブを開き (または上記の CloudFormation describe-stacks CLI コマンドから取得します）、 CloudFormation 出力から 1 行の命令をコピーして環境変数を設定し、ローカル環境で実行します。1 行命令の例:

```
export SMUS_MCP_REGION=<your mcp server launch region> && export IAM_ROLE=arn:aws:iam::111122223333:role/spark-troubleshooting-role-xxxxxx
```

次に、次のコマンドをローカルで実行して、IAM プロファイルと MCP サーバー設定をセットアップします。

```
# Step 1: Configure AWS CLI Profile
aws configure set profile.smus-mcp-profile.role_arn ${IAM_ROLE}
aws configure set profile.smus-mcp-profile.source_profile <AWS CLI Profile to assume the IAM role - ex: default>
aws configure set profile.smus-mcp-profile.region ${SMUS_MCP_REGION}

# Step 2: if you are using kiro CLI, use the following command to add the MCP configuration
# Add Spark Troubleshooting MCP Server
kiro-cli-chat mcp add \
    --name "sagemaker-unified-studio-mcp-troubleshooting" \
    --command "uvx" \
    --args "[\"mcp-proxy-for-aws@latest\",\"https://sagemaker-unified-studio-mcp.${SMUS_MCP_REGION}.api.aws/spark-troubleshooting/mcp\", \"--service\", \"sagemaker-unified-studio-mcp\", \"--profile\", \"smus-mcp-profile\", \"--region\", \"${SMUS_MCP_REGION}\", \"--read-timeout\", \"180\"]" \
    --timeout 180000 \
    --scope global
    
# Add Spark Code Recommendation MCP Server
kiro-cli-chat mcp add \
    --name "sagemaker-unified-studio-mcp-code-rec" \
    --command "uvx" \
    --args "[\"mcp-proxy-for-aws@latest\",\"https://sagemaker-unified-studio-mcp.${SMUS_MCP_REGION}.api.aws/spark-code-recommendation/mcp\", \"--service\", \"sagemaker-unified-studio-mcp\", \"--profile\", \"smus-mcp-profile\", \"--region\", \"${SMUS_MCP_REGION}\", \"--read-timeout\", \"180\"]" \
    --timeout 180000 \
    --scope global
```

これは、次のように MCP サーバー設定を含める`~/.kiro/settings/mcp.json`ように更新する必要があります。

```
{
  "mcpServers": {
    "sagemaker-unified-studio-mcp-troubleshooting": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-troubleshooting/mcp",
        "--service",
        "sagemaker-unified-studio-mcp",
        "--profile",
        "smus-mcp-profile",
        "--region",
        "us-east-1",
        "--read-timeout",
        "180"
      ],
      "timeout": 180000,
      "disabled": false
    },
    "sagemaker-unified-studio-mcp-code-rec": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "mcp-proxy-for-aws@latest",
        "https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-code-recommendation/mcp",
        "--service",
        "sagemaker-unified-studio-mcp",
        "--profile",
        "smus-mcp-profile",
        "--region",
        "us-east-1",
        "--read-timeout",
        "180"
      ],
      "timeout": 180000,
      "disabled": false
    }
  }
}
```

Kiro、Cline、GitHub CoPilot などのさまざまな MCP クライアントの設定ガイダンス[サポートされているインターフェイス](spark-troubleshooting-using-troubleshooting-agent.md#supported-interfaces)については、「」を参照してください。

# トラブルシューティングエージェントの使用
<a name="spark-troubleshooting-using-troubleshooting-agent"></a>

## サポートされているデプロイモード
<a name="supported-deployment-modes"></a>

Amazon EMR 用 Apache Spark トラブルシューティングエージェントは、自動エラー診断、パフォーマンスのボトルネックの特定、コードの推奨事項、次の Spark デプロイモードのアプリケーションパフォーマンスを向上させるための実用的な提案など、失敗した Spark ワークロードの包括的な分析機能をサポートします。
+ EMR on EC2
+ EMR Serverless
+ AWS Glue

機能、容量、制限の詳細については、[機能と機能](spark-troubleshooting-features.md)「」を参照してください。

## サポートされているインターフェイス
<a name="supported-interfaces"></a>

### Amazon SageMaker ノートブック内のセルのトラブルシューティング
<a name="troubleshooting-sagemaker-notebooks"></a>

Amazon SageMaker Notebooks でのトラブルシューティングエクスペリエンスのデモンストレーション。ノートブックセルに障害が発生した場合は、Amazon SageMaker Notebook Agent に、分析のリクエストに失敗した場合のトラブルシューティングを依頼し、エラーがコードに起因する場合は`Fix with AI`、ボタンをクリックしてコードの修正を行うことができます。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/btW8hwio0tE/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/btW8hwio0tE)


### Kiro CLI を使用した Glue および EMR Spark アプリケーションのトラブルシューティング
<a name="troubleshooting-glue-emr-applications"></a>

Kiro CLI または AI Assistant を起動し、トラブルシューティングプロセス用にロードされたツールを確認します。

```
...
 sagemaker-unified-studio-mcp-code-rec (MCP)
 - spark_code_recommendation    not trusted
 
 sagemaker-unified-studio-mcp-troubleshooting (MCP)
 - analyze_spark_workload       not trusted
...
```

これで、Spark トラブルシューティングエージェントのワークフローを開始する準備が整いました。

Kiro CLI でのトラブルシューティングエクスペリエンスのデモンストレーション。トラブルシューティングプロセスは、次のプロンプトを使用して簡単に開始できます。

```
Analyze my Glue job. The job name is "xxx" and the job run id is "xxx"
```

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/YLwV_EenJXY/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/YLwV_EenJXY)


### 他の MCP クライアントとの統合
<a name="integration-other-mcp-clients"></a>

で説明されている設定は、他の MCP クライアントや IDEs でも使用して、マネージド MCP サーバーに接続[エージェントをトラブルシューティングするためのセットアップ](spark-troubleshooting-agent-setup.md)できます。
+ **Cline との統合** - Cline で MCP サーバーを使用するには、 を変更`cline_mcp_settings.json`し、上記の設定を追加します。MCP 設定の管理方法の詳細については、[Cline のドキュメント](https://docs.cline.bot/mcp/configuring-mcp-servers)を参照してください。
+ と **Claude コードの統合** MCP サーバーと Claude コードを使用するには、設定ファイルを変更して MCP 設定を含めます。ファイルパスはオペレーティングシステムによって異なります。詳細なセットアップについては、[https://code.claude.com/docs/en/mcp ](https://code.claude.com/docs/en/mcp)を参照してください。
+ **GitHub Copilot との統合** - GitHub Copilot で MCP サーバーを使用するには、[https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp ](https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp/extend-copilot-chat-with-mcp)の指示に従って対応する設定ファイルを変更し、各 IDE の指示に従ってセットアップをアクティブ化します。

# 機能と機能
<a name="spark-troubleshooting-features"></a>

## サポートされているプラットフォーム
<a name="supported-platforms"></a>
+ **言語**: Python および Scala Spark アプリケーション
+ **ターゲットプラットフォーム**: Amazon EMR、EMR Serverless AWS 、Glue

## 仕組み
<a name="how-it-works"></a>

Spark アプリケーションが失敗した場合、トラブルシューティングエージェントを使用して、問題を自動的に調査できます。Spark イベントログ、エラーメッセージ、リソース使用状況を分析して、Spark エグゼキュターのメモリ不足、設定エラー、コードバグなど、正確な問題を特定します。

Spark ワークロードの分析を自然言語プロンプトに求めると、エージェントはプラットフォームのリソースに接続し、機能 (Spark イベントログ、クエリプラン、エグゼキュタータイムライン、ログトレース、設定、メトリクスなど) を抽出します。
+ EMR-EC2 の場合: クラスターの [EMR Persistent UI ](https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html)に接続します。
+ Glue の場合: ジョブの Glue Studio の [Spark UI](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html) からコンテキストを構築します。
+ EMR-Serverless の場合: ジョブの EMR-Serverless [Spark History Server](https://docs.aws.amazon.com/emr-serverless/latest/APIReference/API_GetDashboardForJobRun.html) に接続します。
+ エージェントは、エラースタックのトレースと設定の詳細も分析して、実用的なインサイトを提供します。

失敗したワークロードについては、根本原因を明確に説明し、修正するための具体的な手順を示します。エージェントは、コード関連の問題を検出すると、コードの変更内容を正確に示すコードレコメンデーションを自動的に提供します。完全な分析を行わずに、コードレベルの提案をいつでも直接リクエストすることもできます。

## 利用できるリージョン
<a name="available-regions"></a>

Spark トラブルシューティングエージェントは、次のリージョンで使用できます。
+ **アジアパシフィック**: 東京 (ap-northeast-1)、ソウル (ap-northeast-2)、シンガポール (ap-southeast-1)、シドニー (ap-southeast-2)、ムンバイ (ap-south-1)
+ **北米**: カナダ (ca-central-1)
+ **欧州**: ストックホルム (eu-north-1)、アイルランド (eu-west-1)、ロンドン (eu-west-2)、パリ (eu-west-3)、フランクフルト (eu-central-1)
+ **南米**: サンパウロ (sa-east-1)
+ **米国**: バージニア北部 (us-east-1)、オハイオ (us-east-2)、オレゴン (us-west-2)

## Spark トラブルシューティングの範囲とユーザー要件
<a name="scope-requirements"></a>
+ **サポートされている Spark ワークロードの状態**: このツールは、失敗した Spark ワークロードのレスポンスのみをサポートします。
+ **EMR Persistent UI:** Amazon EMR-EC2 ワークロードを分析する場合、分析ツールは EMR Persistent UI に接続して主要な Spark 情報を取得しようとします。EMR Persistent UI に関する考慮事項を[以下](https://docs.aws.amazon.com/emr/latest/ManagementGuide/app-history-spark-UI.html#app-history-spark-UI-limitations)に示します。
+ **Glue Studio Spark UI**: Glue ワークロードを分析する AWS 場合、分析ツールは Amazon S3 からユーザーの Spark イベントログを解析して、主要な Spark 情報を取得しようとします。Spark イベントログの最大許容サイズは、ローリングログ用に 512 MB と 2 GB [です](https://docs.aws.amazon.com/glue/latest/dg/monitor-spark-ui-jobs.html)。
+ **コードの推奨事項:** PySpark ワークロードの Amazon EMR-EC2 および AWS Glue ワークロードでのみサポート
+ **リージョンリソース:** Spark トラブルシューティングエージェントはリージョン別であり、そのリージョンの基盤となる EMR リソースをトラブルシューティングプロセスに使用します。クロスリージョンのトラブルシューティングはサポートされていません。

# トラブルシューティングと Q&A
<a name="spark-troubleshooting-agent-troubleshooting"></a>

## トラブルシューティング
<a name="spark-troubleshooting-common-issues"></a>

Spark トラブルシューティングエージェントからのエラーメッセージは、さまざまな MCP クライアントでさまざまな方法で使用できます。このページでは、Amazon EMR で Apache Spark トラブルシューティングエージェントを使用する一般的な問題に関する一般的なガイダンスを一覧表示します。

トピック
+ [エラー: MCP サーバーのロードに失敗しました](#mcp-server-failed-to-load)
+ [観測: ツールのロードが遅い](#slow-tool-loading)
+ [エラー: ツール呼び出しがスロットリングエラーで失敗しました](#throttling-error)
+ [エラー: ユーザーエラーによるツール応答](#user-error)
+ [エラー: 内部エラーによるツール応答](#internal-error)

### エラー: MCP サーバーのロードに失敗しました
<a name="mcp-server-failed-to-load"></a>
+ MCP 設定が正しく設定されていることを確認します。
+ **JSON 構文を検証**します。
  + 構文エラーなしで JSON が有効であることを確認する
  + 欠落しているカンマ、引用符、または括弧がないか確認します。
+ ローカル AWS 認証情報を確認し、MCP IAM ロールのポリシーが正しく設定されていることを確認します。
+ /mcp を実行して、`Kiro-CLI`ケースの MCP サーバーの可用性を検証する

### 観測: ツールのロードが遅い
<a name="slow-tool-loading"></a>
+ サーバーの初回起動時にツールがロードされるまでに数秒かかる場合があります。
+ ツールが表示されない場合は、チャットを再起動してみてください。
+ `/tools` コマンドを実行してツールの可用性を確認します。
+ サーバーがエラーなしで起動`/mcp`された場合は、 を実行します。

### エラー: ツール呼び出しがスロットリングエラーで失敗しました
<a name="throttling-error"></a>
+ サービスの制限に達した場合は、スロットリング例外が表示されるまで数秒待ってからツール呼び出しを発行してください。

### エラー: ユーザーエラーによるツール応答
<a name="user-error"></a>
+ AccessDeniedException - エラーメッセージを確認し、アクセス許可の問題を修正します。
+ InvalidInputException - エラーメッセージを確認し、ツール入力パラメータを修正します。
+ ResourceNotFoundException - エラーメッセージを確認し、リソースリファレンスの入力パラメータを修正します。

### エラー: 内部エラーによるツール応答
<a name="internal-error"></a>
+ 表示された場合は`The service is handling high-volume requests`、数秒後にツールの呼び出しを再試行してください。
+ 表示される場合は、分析 ID、ツール名、mcp ログまたはツールレスポンスから利用可能なエラーメッセージ、およびオプションのサニタイズされた会話履歴`INTERNAL SERVICE EXCEPTION`を記録し、 AWS サポートにお問い合わせください。

## Q&A
<a name="spark-troubleshooting-qa"></a>

### 1. デフォルトでツールの「信頼」設定を有効にする必要がありますか?
<a name="qa-trust-setting"></a>

最初にすべてのツール呼び出しで「信頼」設定をデフォルトでオンにせず、コードレコメンデーションを受け入れるときに git バージョンのビルド環境で動作します。各ツールの実行を確認して、どのような変更が行われているかを理解します。

### 2. トラブルシューティングツールを活用するための一般的なプロンプトの例は何ですか?
<a name="qa-example-prompts"></a>

トラブルシューティングツールの活用に関するプロンプトの例[プロンプトの例](spark-troubleshooting-agent-prompt-examples.md)については、「」を参照してください。

### 3. LLM に送信されるデータとその処理方法
<a name="qa-data-transmitted-to-llm"></a>

お客様のデータとファイルは、選択した AWS リージョン内にとどまり、リージョン間では送信されません。エージェントが Amazon Bedrock のグローバルクロスリージョン推論を使用するリージョンで運用されている場合、サービスは、需要に応じて利用可能な容量を持つ最寄りのリージョンにリクエストをルーティングすることがあります。このような場合、顧客ログから抽出されたメタデータと処理された推論結果のみが送信され、基盤となる顧客データやファイルは送信されません。すべてのデータは、推論が同じリージョン内で発生するか、別のリージョンにルーティングされるかにかかわらず、処理のために LLM に送信される前に PII マスクされます。クロスリージョン推論の仕組みと影響を受けるリージョンの詳細については、「」を参照してください[Apache Spark トラブルシューティングエージェントのクロスリージョン処理](spark-troubleshooting-cross-region-processing.md)。

# Spark でのエージェントのワークフローのトラブルシューティングの詳細
<a name="spark-troubleshooting-agent-workflow"></a>

トラブルシューティングプロセスを開始するには、サポートされているプラットフォーム (EMR-EC2、EMR Serverless、 AWS Glue、または Amazon SageMaker データノートブック) で実行されている失敗した Spark アプリケーション識別子にアクセスする必要があります。アプリケーションには、アクセス可能なログ、Spark History Server、および設定の詳細が必要です。プラットフォームリソースとアプリケーションメタデータにアクセスするために必要なアクセス許可があることを確認します。これらの要件が確立されたら、次のようなプロンプトを送信してトラブルシューティングワークフローを開始できます。

```
Analyze my EMR step execution failure, EMR id <step-id> with cluster id <cluster-id>
```

この時点で、エージェントは特殊なツールを使用してトラブルシューティングを調整します。ワークフローは次のステップに従います。

1. **特徴量の抽出とコンテキストの構築**: エージェントは、履歴サーバーのログ、設定、エラートレースなど、Spark アプリケーションからテレメトリデータを自動的に収集して分析します。パフォーマンスメトリクス、リソース使用率パターン、障害署名に関する情報を収集するツールが表示されます。

1. **分析と根本原因の特定**: エージェントは AI モデルと Spark ナレッジベースを活用して抽出された機能を関連付け、パフォーマンスの問題や障害の根本原因を特定します。以下が表示されます。
   + **Analysis Insights**: エージェントが検出および分析した内容に関する技術的な詳細。
   + **根本原因**: 問題の原因と理由を明確に説明します。
   + **初期評価**: 問題がコード関連、設定関連、リソース関連のいずれであるかにかかわらず、緩和策に関する一般的なガイダンスと分析が提供されます。

1. **コードレコメンデーション** (該当する場合): エラー分類に基づいてコード関連の問題が分析で特定された場合、エージェントはコードレコメンデーションツールを活用して、推奨されるコード修正と推奨される置換の前後の正確なコードを実装するための特定のレコメンデーションを提供することを提案できます。

トラブルシューティングプロセスは反復的です。会話を続行して特定の問題を深く掘り下げることができます。また、ローカルの Spark コード開発でインタラクティブにツールを使用して、コードのバグに対処したり、コードを継続的に改善したりできます。

# プロンプトの例
<a name="spark-troubleshooting-agent-prompt-examples"></a>

トラブルシューティングエクスペリエンスで使用できるプロンプトの例のリストを次に示します。

## 1. Spark ジョブ実行失敗のトラブルシューティング
<a name="troubleshoot-job-failure"></a>

EC2 での EMR のトラブルシューティング:

```
Troubleshoot my EMR-EC2 step with id s-xxxxxxxxxxxx on cluster j-xxxxxxxxxxxxx
```

Glue ジョブのトラブルシューティング:

```
Troubleshoot my Glue job with job run id jr_xxxxxxxxxxxxxxxxxxxxxxxxxxxx and job name test_job
```

EMR Serverless のトラブルシューティング:

```
Troubleshoot my EMR-Serverless job run with application id 00xxxxxxxx and job run id 00xxxxxxxx
```

## 2. コード修正レコメンデーションのリクエスト
<a name="request-code-fix"></a>

EC2 ジョブでの EMR のリクエストコード修正の推奨事項:

```
Recommend code fix for my EMR-EC2 step with id s-STEP_ID on cluster j-CLUSTER_ID
```

Glue ジョブのリクエストコード修正に関する推奨事項:

```
Recommend code fix for my Glue job with job run id jr_JOB_RUN_ID and job name test_job
```

# IAM ロールのセットアップ
<a name="spark-troubleshooting-agent-iam-setup"></a>

セットアップ手順の CloudFormation スタックは、IAM ロールのセットアップを自動化します。手動で実行する場合は、以下の手順に従ってください。

## MCP サーバーの IAM ロールのセットアップ
<a name="iam-role-mcp-server"></a>

SMUS マネージド MCP サーバーにアクセスするには、次のインラインポリシーを持つ IAM ロールが必要です。

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowUseSagemakerUnifiedStudioMcpServer",
            "Effect": "Allow",
            "Action": [
                "sagemaker-unified-studio-mcp:InvokeMcp",
                "sagemaker-unified-studio-mcp:CallReadOnlyTool",
                "sagemaker-unified-studio-mcp:CallPrivilegedTool"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

次のステップでは、このロールのプロファイルを作成します。認証情報を取得するためにこのロールを引き受けるいずれのアカウントも、ロールの引き受けポリシーに追加する必要があります。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccountToAssumeRole",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::<accountId>:root" },
      "Action": "sts:AssumeRole"
    }
  ]
}
```

## デプロイモード別の追加のアクセス許可 (EMR-EC2/EMR-S/Glue)
<a name="additional-permissions"></a>

### EMR-EC2 アプリケーション
<a name="emr-ec2-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EMREC2ReadAccess",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:DescribeCluster",
                "elasticmapreduce:DescribeStep",
                "elasticmapreduce:ListSteps",
                "elasticmapreduce:ListClusters",
                "elasticmapreduce:DescribeJobFlows"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "EMRS3LogAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        },
        {
            "Sid": "EMRPersistentApp",
            "Effect": "Allow",
            "Action": [
                "elasticmapreduce:CreatePersistentAppUI",
                "elasticmapreduce:DescribePersistentAppUI",
                "elasticmapreduce:GetPersistentAppUIPresignedURL"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

### Glue ジョブ
<a name="glue-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "GlueReadAccess",
            "Effect": "Allow",
            "Action": [
                "glue:GetJob",
                "glue:GetJobRun",
                "glue:GetJobRuns",
                "glue:GetJobs",
                "glue:BatchGetJobs"
            ],
            "Resource": [
                "arn:aws:glue:*:<account id>:job/*"
            ]
        },
        {
            "Sid": "GlueCloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:<account id>:log-group:/aws/glue/*"
            ]
        },
        {
            "Sid": "GlueSparkWebUI",
            "Effect": "Allow",
            "Action": [
                "glue:RequestLogParsing",
                "glue:GetLogParsingStatus",
                "glue:GetEnvironment",
                "glue:GetStage",
                "glue:GetStages",
                "glue:GetStageFiles",
                "glue:BatchGetStageFiles",
                "glue:GetStageAttempt",
                "glue:GetStageAttemptTaskList",
                "glue:GetStageAttemptTaskSummary",
                "glue:GetExecutors",
                "glue:GetExecutorsThreads",
                "glue:GetStorage",
                "glue:GetStorageUnit",
                "glue:GetQueries",
                "glue:GetQuery",
                "glue:GetDashboardUrl"
            ],
            "Resource": [
                "arn:aws:glue:*:<account id>:job/*"
            ]
        },
        {
            "Sid": "GluePassRoleAccess",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "glue.amazonaws.com"
                }
            }
        }
    ]
}
```

### EMR サーバーレスアプリケーション
<a name="emr-serverless-permissions"></a>

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "EMRServerlessReadAccess",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:GetApplication",
                "emr-serverless:ListApplications",
                "emr-serverless:ListJobRuns",
                "emr-serverless:ListJobRunAttempts",
                "emr-serverless:GetDashboardForJobRun",
                "emr-serverless:ListTagsForResource"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Sid": "EMRServerlessCloudWatchLogsAccess",
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:FilterLogEvents"
            ],
            "Resource": [
                "arn:aws:logs:*:<account id>:log-group:/aws/emr-serverless/*"
            ]
        },
        {
            "Sid": "EMRServerlessS3LogsAccess",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": "*"
        }
    ]
}
```

### KMS アクセス許可 - CloudWatch Logs
<a name="kms-permissions"></a>

CloudWatch Logs が CMK で暗号化されている場合は、サービスが EMR-Serverless アプリケーションログを読み取れるように、次のポリシーを追加します。

```
{
    "Effect": "Allow",
    "Action": [
        "kms:Decrypt",
        "kms:DescribeKey"
    ],
    "Resource": "arn:aws:kms:<region>:<account-id>:key/<cw-logs-cmk-id>"
}
```

# Spark トラブルシューティングツールの使用
<a name="spark-troubleshooting-agent-using-tools"></a>

## 利用可能なトラブルシューティングツール
<a name="available-tools"></a>

MCP サービスは、Spark トラブルシューティングエージェントにさまざまなツールを提供します。主なツールは次のとおりです。


| ツール名 | ツールカテゴリ | 説明 | 
| --- | --- | --- | 
| analyze\$1spark\$1workload | 根本原因分析 | 障害が発生した Apache Spark ワークロードの詳細なトラブルシューティングを提供します。 | 
| spark\$1code\$1recommendation | コード修正の推奨事項 | 失敗したジョブの Apache Spark コードレコメンデーションを提供します | 

# Amazon SageMaker Unified Studio MCP のインターフェイス VPC エンドポイントの設定
<a name="spark-troubleshooting-agent-vpc-endpoints"></a>

*インターフェイス VPC エンドポイント*を作成することで、VPC と Amazon SageMaker Unified Studio MCP サービス間のプライベート接続を確立できます。インターフェイスエンドポイントは [Amazon VPC](https://aws.amazon.com/vpc/) を使用しており、インターネットゲートウェイ、NAT デバイス、VPN 接続、または 接続なしで VPC 内の MCP サーバーにプライベートにアクセスできます。VPC 内のインスタンスは、パブリック IP アドレスがなくても MCP サービスと通信でき、VPC と MCP サービス間のトラフィックは Amazon ネットワークを離れません。

各インターフェイスエンドポイントは、VPC サブネット内の 1 つ以上の [Elastic Network Interface](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html) によって表されます。詳細については、*「Amazon* [VPC ユーザーガイド」の「インターフェイス VPC エンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)」を参照してください。

## ステップ 1: Amazon SageMaker Unified Studio MCP のインターフェイス VPC エンドポイントを作成する
<a name="create-vpc-endpoint"></a>

Amazon VPC コンソールまたは を使用して、Amazon SageMaker Unified Studio MCP サービスの VPC エンドポイントを作成できます AWS CLI。詳細については、「Amazon VPC ユーザーガイド」の[インターフェイスエンドポイントの作成](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)を参照してください。

次のサービス名を使用して、Amazon SageMaker Unified Studio MCP の VPC エンドポイントを作成します。
+ com.amazonaws.*<aws-region>*.sagemaker-unified-studio-mcp

エンドポイントのプライベート DNS を有効にすると、リージョンのデフォルトの DNS 名を使用して Amazon SageMaker Unified Studio MCP に API リクエストを行うことができます。たとえば、 `sagemaker-unified-studio-mcp.us-east-1.api.aws`

詳細については、「Amazon VPC ユーザーガイド**」の「[インターフェイスエンドポイントを介したサービスへのアクセス](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#access-service-though-endpoint)」を参照してください。

## ステップ 2: Amazon SageMaker Unified Studio MCP の VPC エンドポイントポリシーを作成する
<a name="create-vpc-endpoint-policy"></a>

Amazon SageMaker Unified Studio MCP へのアクセスを制御するエンドポイントポリシーを VPC エンドポイントにアタッチできます。このポリシーでは、以下の情報を指定します。
+ アクションを実行できるプリンシパル。
+ 実行可能なアクション。
+ アクションを実行できるリソース。

詳細については、「*Amazon VPC ユーザーガイド*」の「[VPC エンドポイントでサービスへのアクセスを制御する](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)」を参照してください。

### 例: 特定の IAM ロールへの MCP アクセスを許可する VPC エンドポイントポリシー
<a name="vpc-endpoint-policy-example"></a>

以下は、Amazon SageMaker Unified Studio MCP アクセスのエンドポイントポリシーの例です。エンドポイントにアタッチすると、このポリシーは、すべてのリソースの特定の IAM ロールプリンシパルに対して、リストされた Amazon SageMaker Unified Studio MCP アクションへのアクセスを許可します。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::ACCOUNT-ID:role/YourRoleName"
      },
      "Action": [
        "sagemaker-unified-studio-mcp:InvokeMcp",
        "sagemaker-unified-studio-mcp:CallReadOnlyTool",
        "sagemaker-unified-studio-mcp:CallPrivilegedTool"
      ],
      "Resource": "*"
    }
  ]
}
```

## ステップ 3: VPC をテストする
<a name="test-vpc-endpoint"></a>

`curl` コマンドは、HTTP/HTTPS リクエストを実行して、VPC ネットワーク (EC2) から VPC エンドポイントへのend-to-endのネットワーク接続を検証します。MCP サーバーからメッセージを受信する curl レスポンスは、完全なネットワークパスが機能していることを確認します。

### 方法 1: プライベート DNS を有効にした場合 (推奨)
<a name="test-private-dns-enabled"></a>

```
curl https://sagemaker-unified-studio-mcp.us-east-1.api.aws/spark-troubleshooting/mcp
```

### 方法 2: プライベート DNS が有効になっていない場合
<a name="test-private-dns-disabled"></a>

```
curl -k https://vpce-0069xxxx-ejwhxxx.sagemaker-unified-studio-mcp.us-east-1.vpce.amazonaws.com/spark-troubleshooting/mcp
```

**注記**  
`-k` フラグは、VPC エンドポイント DNS 名と証明書の共通名 (CN) のホスト名が一致しないため、SSL 証明書の検証をバイパスします。

どちらの場合も、curl コマンドはレスポンス を返します`{"Message":"...."}`。メッセージで を返すと、MCP サービスの VPC エンドポイントへの正常なネットワークパス接続が検証されます。

## ステップ 4: MCP VPC エンドポイントの使用を開始する
<a name="use-vpc-endpoint"></a>

接続を確認したら、手順に従って で MCP を設定できます[エージェントをトラブルシューティングするためのセットアップ](spark-troubleshooting-agent-setup.md)。MCP 設定でプライベート VPC エンドポイントを使用するだけです。

# Apache Spark トラブルシューティングエージェントのクロスリージョン処理
<a name="spark-troubleshooting-cross-region-processing"></a>

Apache Spark トラブルシューティングエージェントは、クロスリージョン推論を使用して自然言語リクエストを処理し、レスポンスを生成します。クロスリージョン推論では、エージェントは推論リクエストを自動的にルーティングしてパフォーマンスを最適化し、利用可能なコンピューティングリソースとモデルの可用性を最大化し、最高のカスタマーエクスペリエンスを提供します。使用されるクロスリージョン推論のタイプは、Apache Spark トラブルシューティングエージェントを実行するリージョンによって異なります。ほとんどのリージョンでは、エージェントは推論リクエストを処理するために、地理的な最適なリージョンを選択します。ただし、一部のリージョンでは、 エージェントによって行われた推論リクエストは、すべてのグローバル商用 AWS リージョンで利用可能なすべてのコンピューティングリソースに安全にルーティングされます。

## クロスリージョン推論
<a name="cross-region-inference-overview"></a>

Apache Spark トラブルシューティングエージェントは Amazon Bedrock を利用しており、クロスリージョン推論を使用して異なる AWS リージョンにトラフィックを分散し、大規模言語モデル (LLM) 推論のパフォーマンスと信頼性を向上させます。

クロスリージョン推論は、Spark アプリケーションまたはトラブルシューティングエクスペリエンスのホスト先やデータの保存先は変わりませんが、入力プロンプトと出力結果が推論処理のために異なるリージョンに送信される場合があります。すべてのデータは Amazon の安全なネットワーク経由で暗号化されて送信されます。

クロスリージョン推論の使用には追加料金はかかりません。

## クロスリージョン推論でサポートされているリージョン
<a name="supported-regions-cross-region"></a>

 **地理的クロスリージョン推論を使用するリージョン** 

ほとんどのリージョンでは、クロスリージョン推論リクエストは、Apache Spark トラブルシューティングエージェントを実行するのと同じ地域の一部である AWS リージョン内に保持されます。たとえば、米国東部 (バージニア北部) リージョンのエージェントからのリクエストは、米国リージョン内の AWS リージョンにのみルーティングされます。次の表は、リクエストの送信元の地域に応じて、リクエストをルーティングできるリージョンを示しています。


| サポートされている地域 | 推論リージョン | 
| --- | --- | 
|  アメリカ  |  米国東部 (バージニア北部) (us-east-1)、米国西部 (オレゴン) (us-west-2)、米国東部 (オハイオ) (us-east-2)、米国西部 (北カリフォルニア) (us-west-1)  | 
|  欧州  |  欧州 (フランクフルト) (eu-central-1)、欧州 (アイルランド) (eu-west-1)、欧州 (パリ) (eu-west-3)、欧州 (ストックホルム) (eu-north-1)、欧州 (ロンドン) (eu-west-2)  | 
|  アジアパシフィック  |  アジアパシフィック (東京) (ap-northeast-1)、アジアパシフィック (ソウル) (ap-northeast-2)、アジアパシフィック (ムンバイ) (ap-south-1)  | 

### グローバルクロスリージョン推論を使用するリージョン
<a name="global-cross-region-inference"></a>

**重要**  
次の AWS リージョンは、グローバルクロスリージョン推論を使用します。これらのリージョンで Apache Spark トラブルシューティングエージェントを使用すると、パフォーマンスと可用性を最適化するために、推論処理のためにリクエストが他の AWS リージョンにグローバルに送信される場合があります。  
南米 (サンパウロ) (sa-east-1)
アジアパシフィック (シンガポール) (ap-southeast-1)
アジアパシフィック (シドニー) (ap-southeast-2)
カナダ (中部) (ca-central-1)

# を使用した Amazon SageMaker Unified Studio MCP 呼び出しのログ記録 AWS CloudTrail
<a name="spark-troubleshooting-cloudtrail-integration"></a>

Amazon SageMaker Unified Studio MCP Server は AWS CloudTrail、Amazon SageMaker Unified Studio MCP Server のユーザー、ロール、または AWS サービスによって実行されたアクションを記録するサービスである と統合されています。CloudTrail は、Amazon SageMaker Unified Studio MCP Server のすべての API コールをイベントとしてキャプチャします。キャプチャされた呼び出しには、Amazon SageMaker Unified Studio MCP Server への呼び出しと、SageMaker Unified Studio MCP Server からのツール実行中の他の AWS オペレーションへのコード呼び出しが含まれます。証跡を作成する場合は、Amazon S3 バケットへの CloudTrail イベントの継続的な配信を有効にすることができます。 Amazon SageMaker 証跡を設定しない場合でも、CloudTrail コンソールの **[イベント履歴]** で最新のイベントを表示できます。CloudTrail で収集された情報を使用して、Amazon SageMaker Unified Studio MCP Server に対するリクエスト、リクエスト元の IP アドレス、リクエスト者、リクエスト日時などの詳細を確認できます。

CloudTrail の詳細については、「[AWS CloudTrail ユーザーガイド](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)」を参照してください。

## CloudTrail の Amazon SageMaker Unified Studio MCP サーバー情報
<a name="sagemaker-mcp-info-in-cloudtrail"></a>

CloudTrail は、 AWS アカウントの作成時にアカウントで有効になります。Amazon SageMaker Unified Studio MCP Server でアクティビティが発生すると、そのアクティビティはイベント**履歴**の他の AWS サービスイベントとともに CloudTrail イベントに記録されます。 AWS アカウントで最近のイベントを表示、検索、ダウンロードできます。詳細については、「[CloudTrail イベント履歴でのイベントの表示](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html)」を参照してください。

SageMaker Unified Studio MCP Server のイベントなど、 AWS アカウントのイベントの継続的な記録については、証跡を作成します。証跡により、CloudTrail はログファイルを Amazon S3 バケットに配信できます。デフォルトでは、コンソールで証跡を作成すると、証跡はすべての AWS リージョンに適用されます。証跡は、 AWS パーティション内のすべてのリージョンからのイベントをログに記録し、指定した Amazon S3 バケットにログファイルを配信します。さらに、CloudTrail ログで収集されたイベントデータをさらに分析して処理するように他の AWS サービスを設定できます。詳細については、次を参照してください:
+ [追跡を作成するための概要](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html)
+ [CloudTrail がサポートされているサービスと統合](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-aws-service-specific-topics.html)
+ 「[CloudTrail の Amazon SNS 通知の設定](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/configure-sns-notifications-for-cloudtrail.html)」
+ [複数のリージョンから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/receive-cloudtrail-log-files-from-multiple-regions.html)および[複数のアカウントから CloudTrail ログファイルを受け取る](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-receive-logs-from-multiple-accounts.html)

ツールの実行中の SageMaker Unified Studio MCP Server ツールの呼び出しと AWS サービスへの API コールはすべて、CloudTrail によってログに記録されます。例えば、さまざまなツールの呼び出しやツールから行われた AWS サービス呼び出しは、CloudTrail ログファイルにエントリを生成します。

各イベントまたはログエントリには、誰がリクエストを生成したかという情報が含まれます。同一性情報は次の判断に役立ちます。
+ リクエストが、ルートと IAM ユーザー認証情報のどちらを使用して送信されたか。
+ リクエストがロールまたはフェデレーションユーザーの一時的なセキュリティ認証情報を使用して行われたかどうか。
+ リクエストが別の AWS サービスによって行われたかどうか。

詳細については、「[CloudTrail userIdentity エレメント](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。

## Amazon SageMaker Unified Studio MCP Server ログファイルエントリについて
<a name="understanding-mcp-log-entries"></a>

「トレイル」は、指定した Amazon S3 バケットにイベントをログファイルとして配信するように設定できます。CloudTrail のログファイルは、単一か複数のログエントリを含みます。イベントは、任意の出典からの単一のリクエストを表し、リクエストされたアクション、アクションの日時、リクエストパラメータなどに関する情報が含まれます。CloudTrail ログファイルは、パブリック API コールの順序付けられたスタックトレースではないため、特定の順序では表示されません。

以下の例は、`CallTool` アクションを示す CloudTrail ログエントリです。

```
{
    "eventVersion": "1.09",
    "userIdentity": {
        ...
    },
    "eventTime": "...",
    "eventSource": "sagemaker-unified-studio-mcp.amazonaws.com",
    "eventName": "CallPrivilegedTool",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "...",
    "userAgent": "...",
    "requestParameters": {
        "id": 1,
        "method": "tools/call",
        "params": {
            "name": "generate_spark_upgrade_plan",
            "arguments": "***",
            "_meta": {
                "progressToken": 1
            }
        },
        "jsonrpc": "2.0"
    },
    "responseElements": {
        "result": {
            "content": "***",
            "structuredContent": "***",
            "isError": false
        },
        "id": 1,
        "jsonrpc": "2.0"
    },
    "requestID": "12345678-1234-1234-1234-123456789012",
    "eventID": "87654321-4321-4321-4321-210987654321",
    "readOnly": false,
    "eventType": "AwsMcpEvent",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "eventCategory": "Management"
}
```

次の例は、アップグレードツールの呼び出し中の Amazon SageMaker Unified Studio MCP からの`AddJobFlowSteps`アクションを示す CloudTrail ログエントリを示しています。

```
{
    "eventVersion": "1.11",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "...",
        "arn": "...",
        "accountId": "123456789012",
        "accessKeyId": "...",
        "sessionContext": {
            ...
        },
        "invokedBy": "sagemaker-unified-studio-mcp.amazonaws.com"
    },
    "eventTime": "...",
    "eventSource": "elasticmapreduce.amazonaws.com",
    "eventName": "AddJobFlowSteps",
    "awsRegion": "us-east-1",
    "sourceIPAddress": "sagemaker-unified-studio-mcp.amazonaws.com",
    "userAgent": "sagemaker-unified-studio-mcp.amazonaws.com",
    "requestParameters": {
        "jobFlowId": "j-2PY4KXXXXXX63",
        "steps": [
            ...
        ]
    },
    "responseElements": {
        "stepIds": [
            ...
        ]
    },
    "requestID": "12345678-1234-1234-1234-123456789013",
    "eventID": "87654321-4321-4321-4321-210987654322",
    "readOnly": false,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "recipientAccountId": "123456789012",
    "sharedEventID": "12345678-1234-1234-1234-123456789012",
    "vpcEndpointId": "sagemaker-unified-studio-mcp.amazonaws.com",
    "vpcEndpointAccountId": "sagemaker-unified-studio-mcp.amazonaws.com",
    "eventCategory": "Management"
}
```

# Apache Spark エージェントのサービス改善
<a name="spark-agents-service-improvements"></a>

Amazon EMR の Apache Spark エージェントは、一般的な質問に対する応答の向上、運用上の問題の修正、デバッグなどのためにコンテンツを使用する場合があります。

## がサービスの改善に使用する AWS 可能性のあるコンテンツ
<a name="content-used-for-improvement"></a>
+ Amazon EMR、 AWS Glue、Amazon SageMaker ノートブックの Apache Spark エージェントから自然言語プロンプトと生成されたレスポンス

## サービスの改善に AWS 使用しないコンテンツ
<a name="content-not-used-for-improvement"></a>
+ Spark アプリケーション用に自分で記述するコード
+ SageMaker ノートブックのコンテキストとメタデータ
+  AWS Glue データカタログまたは他のデータソースからのデータ

データにアクセスできるのは、Amazon の従業員のみです。信頼、プライバシー、および顧客コンテンツのセキュリティは当社の最優先事項であり、当社の使用に際してユーザーへの約束に確実に従うことを保証します。詳細については、「データプライバシーのよくある質問」を参照してください。

## オプトアウトする方法
<a name="how-to-opt-out"></a>

Apache Spark エージェントのデータ収集をオプトアウトするには、 AWS Organizations for Amazon SageMaker Unified Studio MCP Service で AI サービスのオプトアウトポリシーを設定します。詳細については、「*AWS Organizations ユーザーガイド*」の「[AI サービスのオプトアウトポリシー](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_ai-opt-out.html)」を参照してください。

AI サービスのオプトアウトポリシーを設定すると、次の効果があります。
+ AWS は、オプトアウト前にサービス改善のために収集および保存したデータ (存在する場合) を削除します。
+ オプトアウトすると、 はこのデータを収集または保存 AWS しなくなります。
+ AWS は、サービスの改善のためにコンテンツを使用しなくなります。