

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

# ジョブのリソース制限を作成する
<a name="build-job-limits"></a>

Deadline Cloud に送信されるジョブは、複数のジョブ間で共有されるリソースに依存する場合があります。たとえば、ファームには、特定のリソースのフローティングライセンスよりも多くのワーカーが存在する場合があります。または、共有ファイルサーバーは、同時に限られた数のワーカーにのみデータを提供できます。場合によっては、1 つ以上のジョブがこれらのリソースをすべて要求し、新しいワーカーの起動時にリソースが使用できないためにエラーが発生することがあります。

これを解決するために、これらの制約されたリソース*の制限*を使用できます。Deadline Cloud は、制約されたリソースの可用性を考慮し、その情報を使用して、新しいワーカーの起動時にリソースが利用可能になるようにします。これにより、リソースが利用できないためにジョブが失敗する可能性が低くなります。

制限はファーム全体に作成されます。キューに送信されたジョブは、キューに関連付けられた制限のみを取得できます。キューに関連付けられていないジョブの制限を指定すると、ジョブは互換性がなく、実行されません。

制限を使用するには、
+ [制限を作成する](job-limit-create.md)
+ [制限とキューを関連付ける](job-limit-associate.md)
+ [制限が必要なジョブを送信する](job-limit-job.md)

**注記**  
制限に関連付けられていないキューに制約されたリソースを持つジョブを実行すると、そのジョブはすべてのリソースを消費できます。制約のあるリソースがある場合は、リソースを使用するキュー内のジョブのすべてのステップが制限に関連付けられていることを確認してください。

ファームで定義され、キューに関連付けられ、ジョブで指定されている制限の場合、次の 4 つのことのいずれかが発生する可能性があります。
+ 制限を作成してキューに関連付け、ジョブのテンプレートで制限を指定すると、ジョブが実行され、制限で定義されたリソースのみが使用されます。
+ 制限を作成し、ジョブテンプレートで指定しますが、制限をキューに関連付けない場合、ジョブは互換性がないとマークされ、実行されません。
+ 制限を作成し、キューに関連付けず、ジョブのテンプレートで制限を指定しない場合、ジョブは実行されますが、制限は使用されません。
+ 制限をまったく使用しない場合、ジョブが実行されます。

制限を複数のキューに関連付けると、キューは制限によって制約されるリソースを共有します。たとえば、100 の制限を作成し、1 つのキューが 60 個のリソースを使用している場合、他のキューは 40 個のリソースしか使用できません。リソースが解放されると、任意のキューからタスクがリソースを取得できます。

Deadline Cloud には、制限によって提供されるリソースのモニタリングに役立つ 2 つのAWS CloudFormationメトリクスが用意されています。使用中のリソースの現在の数と、制限内で使用可能なリソースの最大数をモニタリングできます。詳細については、*「Deadline Cloud Developer Guide*」の[「Resource limit metrics](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/cloudwatch-metrics.html#cloudwatch-metrics-limits)」を参照してください。

ジョブテンプレートのジョブステップに制限を適用します。ステップの `amounts`セクションで制限の量要件名を指定し、同じ を持つ制限`amountRequirementName`がジョブ`hostRequirements`のキューに関連付けられている場合、このステップでスケジュールされるタスクはリソースの制限によって制約されます。

ステップで制限に達したリソースが必要な場合、そのステップのタスクは追加のワーカーによって取得されません。

ジョブステップには複数の制限を適用できます。たとえば、ステップで 2 つの異なるソフトウェアライセンスを使用している場合、ライセンスごとに個別の制限を適用できます。ステップに 2 つの制限が必要で、いずれかのリソースの制限に達した場合、そのステップのタスクは、リソースが利用可能になるまで追加のワーカーによって取得されません。

## 制限の停止と削除
<a name="job-limit-stop-delete"></a>

キューと制限の間の関連付けを停止または削除すると、制限を使用するジョブは、この制限を必要とするステップのタスクのスケジュールを停止し、ステップの新しいセッションの作成をブロックします。

READY 状態のタスクは準備状態のままで、キューと制限間の関連付けによってタスクが自動的に再開され、再びアクティブになります。ジョブを再キューに入れる必要はありません。

キューと制限間の関連付けを停止または削除する場合、タスクの実行を停止する方法には 2 つの選択肢があります。
+ タスクの停止とキャンセル – 制限を取得したセッションを持つワーカーは、すべてのタスクをキャンセルします。
+ 実行中のタスクを停止して終了する – 制限を取得したセッションを持つワーカーはタスクを完了します。

コンソールを使用して制限を削除すると、ワーカーはまずタスクの実行をすぐに停止するか、最終的にタスクの完了時に停止します。関連付けが削除されると、次のようになります。
+ 制限が必要なステップは互換性がないとマークされます。
+ 制限を必要としないステップを含め、これらのステップを含むジョブ全体がキャンセルされます。
+ ジョブは互換性がないとマークされています。

制限に関連付けられたキューに、制限の量要件名と一致するフリート機能を持つフリートが関連付けられている場合、そのフリートは指定された制限でジョブを処理し続けます。

# 制限を作成する
<a name="job-limit-create"></a>

Deadline Cloud コンソールまたは [Deadline Cloud API の CreateLimit オペレーション](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateLimit.html)を使用して制限を作成します。制限はファームに対して定義されますが、キューに関連付けられます。制限を作成したら、1 つ以上のキューに関連付けることができます。

**制限を作成するには**

1. Deadline Cloud コンソール ([Deadline Cloud コンソール](https://console.aws.amazon.com/deadlinecloud/home)) ダッシュボードから、キューを作成するファームを選択します。

1. 制限を追加するファームを選択し、**制限**タブを選択し、**制限の作成**を選択します。

1. 制限の詳細を入力します。**金額要件名**は、制限を識別するためにジョブテンプレートで使用される名前です。プレフィックスの**amount.**後に金額名が続く必要があります。金額要件名は、制限に関連付けられたキューで一意である必要があります。

1. **最大量を設定する** を選択した場合、これはこの制限で許可されるリソースの合計数です。**最大量なし**を選択した場合、リソース使用量は制限されません。リソースの使用が制限されていない場合でも、`CurrentCount`Amazon CloudWatch メトリクスが出力されるため、使用状況を追跡できます。詳細については、*「Deadline* [CloudWatch metrics](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/cloudwatch-metrics.html)」を参照してください。

1. 制限を使用するキューが既にわかっている場合は、今すぐ選択できます。制限を作成するためにキューを関連付ける必要はありません。

1. **制限の作成** を選択します。

# 制限とキューを関連付ける
<a name="job-limit-associate"></a>

制限を作成したら、1 つ以上のキューを制限に関連付けることができます。制限に関連付けられているキューのみが、制限で指定された値を使用します。

Deadline Cloud コンソールまたは Deadline Cloud [API の CreateQueueLimitAssociation オペレーションを使用して、](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateQueueLimitAssociation.html)キューとの関連付けを作成します。

**キューを制限に関連付けるには**

1. Deadline Cloud コンソール ([Deadline Cloud コンソール](https://console.aws.amazon.com/deadlinecloud/home)) ダッシュボードから、制限をキューに関連付けるファームを選択します。

1. **制限**タブを選択し、キューを関連付ける制限を選択し、**制限の編集**を選択します。

1. **キューの関連付け**セクションで、制限に関連付けるキューを選択します。

1. **[Save changes]** (変更の保存) をクリックします。

# 制限が必要なジョブを送信する
<a name="job-limit-job"></a>

制限を適用するには、制限をジョブまたはジョブステップのホスト要件として指定します。ステップで制限を指定せず、そのステップが関連するリソースを使用する場合、ジョブがスケジュールされたとき、ステップの使用量は制限に対してカウントされません。

一部の Deadline Cloud 送信者では、ホスト要件を設定できます。送信者で制限の金額要件名を指定して、制限を適用できます。

送信者がホスト要件の追加をサポートしていない場合は、ジョブのジョブテンプレートを編集して制限を適用することもできます。

**ジョブバンドルのジョブステップに制限を適用するには**

1. テキストエディタを使用してジョブのジョブテンプレートを開きます。ジョブテンプレートは、ジョブのジョブバンドルディレクトリにあります。詳細については、*Deadline Cloud デベロッパーガイド*の[「ジョブバンドル](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/build-job-bundle.html)」を参照してください。

1. 制限を適用するステップのステップ定義を見つけます。

1. ステップ定義に以下を追加します。*amount.name* を、制限の金額要件名に置き換えます。一般的な使用では、`min`値を 1 に設定する必要があります。

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: amount.name
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "amount.name",
               "min": "1"
           }
       }
   }
   ```

------

   次のように、ジョブステップに複数の制限を追加できます。*amount.name\$11* と *amount.name\$12* を、制限の金額要件名に置き換えます。

------
#### [ YAML ]

   ```
     hostRequirements:
       amounts:
       - name: amount.name_1
         min: 1
       - name: amount.name_2
         min: 1
   ```

------
#### [ JSON ]

   ```
   "hostRequirements": {
       "amounts": [
           {
               "name": "amount.name_1",
               "min": "1"
           },
           {
               "name": "amount.name_2",
               "min": "1"
           }
       }
   }
   ```

------

1. 変更をジョブテンプレートに保存します。