

# AWS Glue での Ray ジョブの使用
<a name="ray-jobs-section"></a>

**重要**  
AWS Glue for Ray は、2026 年 4 月 30 日以降、新規のお客様の受付を終了します。AWS Glue for Ray を使用する場合は、上記日付よりも前にサインアップしてください。既存のお客様は、通常どおりサービスを引き続き使用できます。AWS Glue for Ray と同様の機能については、Amazon EKS をご覧ください。詳細については、「[AWS Glue for Ray のサポート終了](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)」を参照してください。

このセクションでは、AWS Glue for Ray のジョブを使用する方法について説明します。AWS Glue for Ray のスクリプトを記述する方法の詳細については、「[Ray スクリプトのプログラミング](aws-glue-programming-ray.md)」セクションを参照してください。

**Topics**
+ [AWS Glue for Ray の使用を開始する](#author-job-ray-using)
+ [サポートされている Ray のランタイム環境](#author-job-ray-runtimes)
+ [Ray ジョブのワーカーの考慮](#author-job-ray-worker-accounting)
+ [Ray ジョブでジョブパラメータを使用する](author-job-ray-job-parameters.md)
+ [メトリクスによる Ray ジョブのモニタリング](author-job-ray-monitor.md)

## AWS Glue for Ray の使用を開始する
<a name="author-job-ray-using"></a>

AWS Glue for Ray を使用するには、AWS Glue for Spark で使用しているものと同じ、AWS Glue ジョブとインタラクティブセッションを使用します。AWS Glue ジョブは、同じスクリプトを一定の頻度で繰り返し実行するように設計されていますが、インタラクティブセッションは、プロビジョニングされた同じリソースに対して、コードのスニペットを順番に実行するように設計されています。

AWS Glue ETL と Ray は下部構造が異なるため、スクリプトではさまざまなツール、機能、設定にアクセスすることができます。AWS Glue が管理する新しい計算フレームワークとして、Ray は異なるアーキテクチャを持ちます。また、その機能を説明するボキャブラリーも異なります。詳細については、Ray のドキュメントの「[Architecture Whitepapers](https://docs.ray.io/en/latest/ray-contribute/whitepaper.html)」(アーキテクチャホワイトペーパー) を参照してください。

**注記**  
AWS Glue for Ray は、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、アジアパシフィック (東京)、欧州 (アイルランド) でご利用いただけます。

### AWS Glue Studio コンソールでの Ray ジョブ
<a name="author-job-ray-using-console"></a>

AWS Glue Studio コンソールの **[ジョブ]** ページでは、AWS Glue Studio でジョブを作成する際に、新たに **[Ray script editor]** を選択できます。コンソールに Ray ジョブを作成するときはこちらを選択します。ジョブとその使用方法についての詳細は、「[Visual ETL ジョブの作成](author-job-glue.md)」を参照してください。

![\[[Ray script editor] オプションを選択したときの、AWS Glue Studio の [ジョブ] ページ。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/ray_job_setup.png)


### AWS CLI および SDK での Ray ジョブ
<a name="author-job-ray-using-cli"></a>

AWS CLI での Ray ジョブは、他のジョブと同じ SDK アクションとパラメータを使用します。AWS Glue for Ray では、特定のパラメータに新しい値が導入されています。ジョブの API の詳細については、「[ジョブ](aws-glue-api-jobs-job.md)」を参照してください。

## サポートされている Ray のランタイム環境
<a name="author-job-ray-runtimes"></a>

Spark ジョブでは、`GlueVersion` によって、AWS Glue for Spark ジョブで利用できる Apache Spark と Python のバージョンが決まります。Python のバージョンは、Spark タイプのジョブでサポートされているバージョンを示します。これは、Ray のランタイム環境の設定方法とは異なります。

Ray ジョブの場合、`GlueVersion` を `4.0` 以降に設定する必要があります。ただし、Ray ジョブで使用できる Ray、Python、その他のライブラリバージョンは、ジョブ定義の `Runtime` フィールドにより決まります。

`Ray2.4` ランタイム環境は、リリースから最低 6 か月間は使用可能です。Ray は進化のスピードが速いため、今後のランタイム環境のリリースを通じてその更新や改良を統合していけます。

有効な値: `Ray2.4`


| ランタイム値 | Ray と Python のバージョン | 
| --- | --- | 
| Ray2.4 (AWS Glue 4.0 以降) |  Ray 2.4.0 Python 3.9  | 

**追加情報**
+ AWS Glue on Ray のリリースに付属のリリースノートについては、「[AWS Glue バージョン](release-notes.md#release-notes-versions)」を参照してください。
+ ランタイム環境で提供される Python ライブラリについては、「[Ray ジョブで提供されるモジュール](edit-script-ray-env-dependencies.md#edit-script-ray-modules-provided)」を参照してください。

## Ray ジョブのワーカーの考慮
<a name="author-job-ray-worker-accounting"></a>

AWS Glue は、Ray ジョブを Graviton ベースの新しい EC2 ワーカータイプで実行します。このタイプは Ray ジョブでのみで利用できるものです。これらのワーカーを、Ray の設計の根拠であるワークロードに合わせて適切にプロビジョニングするため、コンピューティングリソースとメモリリソースの比率がほとんどのワーカーとは異なっています。これらのリソースを考慮して、標準データ処理ユニット (DPU) ではなく、メモリ最適化データ処理ユニット (M-DPU) が使用されています。
+ 1 基の M-DPU は 4 基の vCPU と 32 GB のメモリに相当します。
+ 1 基の DPU は 4 基の vCPU と 16 GB のメモリに相当します。DPU は、AWS Glue with Spark のジョブと対応するワーカーのリソースを考慮して、使用されています。

Ray ジョブでは現在、`Z.2X` という 1 つのワーカータイプしか使用できません。`Z.2X` ワーカーは 2 つの M-DPU (8 基の vCPU、64 GB のメモリ) にマップされ、128 GB のディスク容量を有しています。`Z.2X` マシンには 8 つの Ray ワーカーがあります (vCPU につき 1 つ)。

1 つのアカウントで同時に使用できる M-DPU の数は、サービスクォータの対象となります。AWS Glue のアカウント制限についての詳細は、「[AWS Glue エンドポイントとクォータ](https://docs.aws.amazon.com/general/latest/gr/glue.html)」を参照してください。

Ray ジョブで使用できるワーカーノードの数は、ジョブ定義で `--number-of-workers (NumberOfWorkers)` のように指定します。ジョブ API の Ray 値の詳細については、「[ジョブ](aws-glue-api-jobs-job.md)」を参照してください。

また、Ray ジョブが割り当てるワーカーの最小数は、`--min-workers` ジョブパラメータを使用して指定できます。ジョブパラメータについては、[リファレンス](author-job-ray-job-parameters.md#author-job-ray-parameters-reference) を参照してください。

# Ray ジョブでジョブパラメータを使用する
<a name="author-job-ray-job-parameters"></a>

**重要**  
AWS Glue for Ray は、2026 年 4 月 30 日以降、新規のお客様の受付を終了します。AWS Glue for Ray を使用する場合は、上記日付よりも前にサインアップしてください。既存のお客様は、通常どおりサービスを引き続き使用できます。AWS Glue for Ray と同様の機能については、Amazon EKS をご覧ください。詳細については、「[AWS Glue for Ray のサポート終了](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)」を参照してください。

AWS Glue Ray ジョブの引数は、AWS Glue for Spark ジョブの引数を設定するときと同じ方法で設定します。AWS Glue API の詳細については、「[ジョブ](aws-glue-api-jobs-job.md)」を参照してください。AWS Glue Ray ジョブはさまざまな引数を用いて設定できます。これらはこちらのリファレンスに記載されています。また、独自の引数を指定することもできます。

ジョブは、**Job Parameters** (ジョブパラメータ) 見出しの **Job details** (ジョブの詳細) タブからコンソールで設定できます。また、ジョブに `DefaultArguments`、またはジョブ実行に `Arguments` を設定することで、AWS CLI を使用してジョブを設定することもできます。デフォルトの引数とジョブパラメータは、複数回実行してもジョブに対して有効です。

以下は、特殊なパラメータをセットするために `--arguments` を使用する、ジョブ実行の構文例です。

```
$ aws glue start-job-run --job-name "CSV to CSV" --arguments='--scriptLocation="s3://my_glue/libraries/test_lib.py",--test-environment="true"'
```

引数を設定すると、環境変数を使用して Ray ジョブ内からジョブパラメータにアクセスできます。そうすることで、ジョブを実行するたびにジョブの設定を行うことができます。環境変数の名前は、先頭の `--` を除いたジョブ引数の名前になります。

例えば、上記の例では、変数の名前は `scriptLocation` および `test-environment` になります。次に、標準ライブラリで利用できる方法を使用して引数を取得します (`test_environment = os.environ.get('test-environment')`)。Python で環境変数にアクセスする方法の詳細については、Python のドキュメントの「[os module](https://docs.python.org/3/library/os.html)」を参照してください。

## Ray ジョブがログを生成する方法を設定する
<a name="author-job-ray-logging-configuration"></a>

デフォルトでは、Ray ジョブは CloudWatch と Amazon S3 に送信されるログとメトリクスを生成します。`--logging_configuration` パラメータを使用してログの生成方法を変更できます。現在のところ、これを使用して Ray ジョブがさまざまなタイプのログを生成しないようにすることができます。このパラメータは、変更したいログや動作に対応するキーを持つ JSON オブジェクトを取ります。次のキーがサポートされています。
+ `CLOUDWATCH_METRICS` — ジョブの状態を視覚化するために使用できる CloudWatch メトリクスシリーズを設定します。メトリクスの詳細については、「[メトリクスによる Ray ジョブのモニタリング](author-job-ray-monitor.md)」を参照してください。
+ `CLOUDWATCH_LOGS` — ジョブの実行ステータスに関する Ray アプリケーションレベルの詳細を提供する CloudWatch ログを設定します。ログの詳細については、[ログから AWS Glue for Ray エラーをトラブルシューティングする](troubleshooting-ray.md) を参照してください。
+ `S3` — AWS Glue が Amazon S3 に何を書き込むかを設定します。主として CloudWatch ログと同様の情報ですが、ログストリームではなくファイルとして書き込まれます。

Ray ログ記録の動作を無効にするには、値 `{\"IS_ENABLED\": \"False\"}` を指定します。例えば、CloudWatch メトリクスと CloudWatch ログを無効にするには、以下の設定を指定します。

```
"--logging_configuration": "{\"CLOUDWATCH_METRICS\": {\"IS_ENABLED\": \"False\"}, \"CLOUDWATCH_LOGS\": {\"IS_ENABLED\": \"False\"}}"
```

## リファレンス
<a name="author-job-ray-parameters-reference"></a>

 Ray ジョブは、Ray ジョブおよびジョブ実行の、スクリプト環境のセットアップに使用できる、以下の引数名を認識します。
+ `--logging_configuration` — Ray ジョブによって作成されるさまざまなログの生成を停止するために使用されます。これらのログは、すべての Ray ジョブでデフォルトで生成されます。形式: 文字列がエスケープされた JSON オブジェクト。詳細については、「[Ray ジョブがログを生成する方法を設定する](#author-job-ray-logging-configuration)」を参照してください。
+ `--min-workers` — Ray ジョブに割り当てられるワーカーノードの最小数。ワーカーノードは、複数のレプリカを実行できます。レプリカは仮想 CPU ごとに 1 つ割り当てられます。形式: 整数。最小値: 0。最大値: ジョブ定義で `--number-of-workers (NumberOfWorkers)` に指定できる値。ワーカーノードの考慮に関する詳細は、「[Ray ジョブのワーカーの考慮](ray-jobs-section.md#author-job-ray-worker-accounting)」を参照してください。
+ `--object_spilling_config` — AWS Glue for Ray は、Ray のオブジェクトストアで利用できるスペースを拡張する方法として、Amazon S3 の使用をサポートしています。この動作を有効にするには、このパラメータを使用して Ray に object spilling の JSON 設定オブジェクトを提供します。Ray の object spilling 設定の詳細については、Ray のドキュメントの「[Object Spilling](https://docs.ray.io/en/latest/ray-core/objects/object-spilling.html)」を参照してください。形式: JSON オブジェクト。

  AWS Glue for Ray では、一度にディスクへのスピリングまたは Amazon S3 へのスピリングのいずれかのみがサポートされています。この制限内であれば、スピリングに複数の場所を指定できます。Amazon S3 にスピリングする場合は、IAM 権限をこのバケットのジョブに追加することも必要になります。

  CLI の構成として JSON オブジェクトを提供する場合は、JSON オブジェクトの文字列をエスケープした文字列として提供する必要があります。例えば、1 つの Amazon S3 パスにスピリングする文字列の値は、`"{\"type\": \"smart_open\", \"params\": {\"uri\":\"s3path\"}}"` のようになります。AWS Glue Studio で、このパラメータを特別な形式のない JSON オブジェクトとして指定します。
+ `--object_store_memory_head` — Ray のヘッドノードの Plasma オブジェクトストアに割り当てられるメモリ。このインスタンスは、クラスター管理のサービスおよびワーカーレプリカを実行します。この値は、ウォームスタート後のインスタンスの空きメモリの割合を表します。このパラメータは、メモリを大量に消費するワークロードの調整に使用します。ほとんどのユースケースにはデフォルト値を使用できます。形式: 正の整数。最小値: 1。最大値: 100。

  Plasma の詳細については、Ray のドキュメントで「[The Plasma In-Memory Object Store](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html)」(Plasma インメモリオブジェクトストア) を参照してください。
+ `--object_store_memory_worker` — Ray のワーカーノードの Plasma オブジェクトストアに割り当てられるメモリ。これらのインスタンスはワーカーレプリカのみを実行します。この値は、ウォームスタート後のインスタンスの空きメモリの割合を表します。このパラメータは、メモリを大量に消費するワークロードを調整するために使用されます。ほとんどのユースケースにはデフォルト値を使用できます。形式: 正の整数。最小値: 1。最大値: 100。

  Plasma の詳細については、Ray のドキュメントで「[The Plasma In-Memory Object Store](https://ray-project.github.io/2017/08/08/plasma-in-memory-object-store.html)」(Plasma インメモリオブジェクトストア) を参照してください。
+ `--pip-install` — インストールされる Python パッケージのセット。この引数を使用して PyPI からパッケージをインストールできます。形式: カンマ区切りリスト。

  PyPI パッケージのエントリは、ターゲットパッケージの PyPI 名とバージョンを含む `package==version` の形式です。エントリは、Python のバージョンマッチングを使用してパッケージとバージョンをマッチさせるため、シングルイコール `=` ではなく、`==` のようにします。バージョンマッチングの演算子は他にもあります。詳細については、Python ウェブサイトの「[PEP 440](https://peps.python.org/pep-0440/#version-matching)」を参照してください。`--s3-py-modules` を使用してカスタムのモジュールを提供することもできます。
+ `--s3-py-modules` — Python モジュールのディストリビューションをホストする Amazon S3 パスのセットです。形式: カンマで区切られたリスト。

  これを使用すれば、独自のモジュールを Ray ジョブに配布できます。`--pip-install` を使用して PyPI からモジュールを提供することもできます。AWS Glue ETL とは異なり、カスタムのモジュールは pip では設定されず、ディストリビューション用に Ray に渡されます。詳細については、「[Ray ジョブ用の Python モジュールを追加する](edit-script-ray-env-dependencies.md#edit-script-ray-python-libraries-additional)」を参照してください。
+ `--working-dir` – Amazon S3 でホストされている .zip ファイルへのパスです。このパスには、Ray ジョブを実行しているすべてのノードに配布されるファイルが格納されています。形式: 文字列。詳細については、「[Ray ジョブへのファイルの提供](edit-script-ray-env-dependencies.md#edit-script-ray-working-directory)」を参照してください。

# メトリクスによる Ray ジョブのモニタリング
<a name="author-job-ray-monitor"></a>

**重要**  
AWS Glue for Ray は、2026 年 4 月 30 日以降、新規のお客様の受付を終了します。AWS Glue for Ray を使用する場合は、上記日付よりも前にサインアップしてください。既存のお客様は、通常どおりサービスを引き続き使用できます。AWS Glue for Ray と同様の機能については、Amazon EKS をご覧ください。詳細については、「[AWS Glue for Ray のサポート終了](https://docs.aws.amazon.com/glue/latest/dg/awsglue-ray-jobs-availability-change.html)」を参照してください。

AWS Glue Studio と Amazon CloudWatch を使用して、Ray ジョブのモニタリングができます。CloudWatch は、分析が可能にする Ray を使用した AWS Glue から未加工のメトリクスを収集して処理します。これらのメトリクスは AWS Glue Studio コンソールで確認できます。つまり、ジョブの実行をモニタリングできます。

AWS Glue のモニタリング方法についての概要は、「[Amazon CloudWatch メトリクスを使用した AWS Glue のモニタリング](monitoring-awsglue-with-cloudwatch-metrics.md)」を参照してください。AWS Glue で公開されている CloudWatch メトリクスの使用方法についての概要は、「[Amazon CloudWatch によるモニタリング](monitor-cloudwatch.md)」を参照してください。

## AWS Glue コンソールで Ray ジョブをモニタリングする
<a name="author-job-ray-monitor-console"></a>

ジョブ実行の詳細ページにある **[Run details]** セクションには、利用可能なジョブメトリクスを視覚化した、事前構築済みの集計グラフを表示できます。AWS Glue Studio は、ジョブが実行されると、その都度ジョブメトリクスを CloudWatch に送信します。これらを使用することで、クラスターとタスクのプロファイルを作成したり、各ノードに関する詳細情報にアクセスしたりできます。

利用可能なメトリクスグラフの詳細については、「[Ray ジョブ実行の Amazon CloudWatch メトリクスを表示](view-job-runs.md#monitoring-job-run-metrics-ray)」を参照してください。

## CloudWatch の Ray ジョブメトリクスの概要
<a name="author-job-ray-monitor-cw"></a>

CloudWatch で詳細モニタリングが有効になっている場合、Ray のメトリクスが公開されます。メトリクスは、CloudWatch の `Glue/Ray` 名前空間に公開されます。
+ **インスタンスメトリクス**

  ジョブに割り当てられたインスタンスの CPU、メモリ、およびディスクの使用率に関するメトリクスを公開します。これらのメトリクスは、`ExecutorId`、`ExecutorType` および `host` などの特徴で識別されます。これらのメトリクスは、標準 Linux CloudWatch エージェントのメトリクスのサブセットです。CloudWatch のドキュメントで、メトリクスの名前と特徴に関する情報を確認できます。詳細については、「[CloudWatch エージェントにより収集されるメトリクス](https://docs.aws.amazon.com//AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html)」を参照してください。
+ **Ray クラスターメトリクス**

  スクリプトを実行する Ray プロセスからこの名前空間にメトリクスを転送し、最も重要なものを提供します。使用可能なメトリクスは Ray のバージョンによって異なる場合があります。ジョブで実行されている Ray のバージョンについての詳細は、「[AWS Glue バージョン](release-notes.md)」を参照してください。

  Ray はメトリクスをインスタンスレベルで収集します。また、タスクとクラスターのメトリクスも提供します。Ray の基盤となるメトリクス戦略の詳細については、Ray のドキュメントの「[Metrics](https://docs.ray.io/en/latest/ray-observability/ray-metrics.html#system-metrics)」を参照してください。

**注記**  
 `Glue/Job Metrics/` 名前空間に Ray のメトリクスが公開されることはありません。この名前空間は、AWS Glue ETL ジョブにのみ使用されます。