

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

# Deadline Cloud ファームを作成する
<a name="create-a-farm"></a>

 AWS Deadline Cloud でデベロッパーファームとキューリソースを作成するには、次の手順に示すように AWS Command Line Interface (AWS CLI) を使用します。また、 AWS Identity and Access Management (IAM) ロールとカスタマーマネージドフリート (CMF) を作成し、フリートをキューに関連付けます。次に、 を設定し AWS CLI 、ファームが指定されたとおりに設定され、動作していることを確認します。

このファームを使用して Deadline Cloud の機能を調べ、新しいワークロード、カスタマイズ、パイプライン統合を開発してテストできます。

**ファームを作成するには**

1. [セッションを開きます AWS CloudShell](https://console.aws.amazon.com/cloudshell/home?region=us-west-2)。CloudShell ウィンドウを使用して AWS Command Line Interface (AWS CLI) コマンドを入力し、このチュートリアルの例を実行します。CloudShell ウィンドウを開いたままにします。

1. ファームの名前を作成し、そのファーム名を に追加します`~/.bashrc`。これにより、他のターミナルセッションで利用できるようになります。

   ```
   echo "DEV_FARM_NAME=DeveloperFarm" >> ~/.bashrc
   source ~/.bashrc
   ```

1. ファームリソースを作成し、そのファーム ID を に追加します`~/.bashrc`。

   ```
   aws deadline create-farm \
       --display-name "$DEV_FARM_NAME"
   
   echo "DEV_FARM_ID=\$(aws deadline list-farms \
           --query \"farms[?displayName=='\$DEV_FARM_NAME'].farmId \
           | [0]\" --output text)" >> ~/.bashrc
   source ~/.bashrc
   ```

1. キューリソースを作成し、キュー ID を に追加する `~/.bashrc.`

   ```
   aws deadline create-queue \
       --farm-id $DEV_FARM_ID \
       --display-name "$DEV_FARM_NAME Queue" \
       --job-run-as-user '{"posix": {"user": "job-user", "group": "job-group"}, "runAs":"QUEUE_CONFIGURED_USER"}'
   
   echo "DEV_QUEUE_ID=\$(aws deadline list-queues \
           --farm-id \$DEV_FARM_ID \
           --query \"queues[?displayName=='\$DEV_FARM_NAME Queue'].queueId \
           | [0]\" --output text)" >> ~/.bashrc
   source ~/.bashrc
   ```

1. フリートの IAM ロールを作成します。このロールは、フリートのワーカーホストに、キューからジョブを実行するために必要なセキュリティ認証情報を提供します。

   ```
   aws iam create-role \
       --role-name "${DEV_FARM_NAME}FleetRole" \
       --assume-role-policy-document \
           '{
               "Version": "2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "credentials.deadline.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           }'
   aws iam put-role-policy \
       --role-name "${DEV_FARM_NAME}FleetRole" \
       --policy-name WorkerPermissions \
       --policy-document \
           '{
               "Version": "2012-10-17",		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Action": [
                           "deadline:AssumeFleetRoleForWorker",
                           "deadline:UpdateWorker",
                           "deadline:DeleteWorker",
                           "deadline:UpdateWorkerSchedule",
                           "deadline:BatchGetJobEntity",
                           "deadline:AssumeQueueRoleForWorker"
                       ],
                       "Resource": "*",
                       "Condition": {
                           "StringEquals": {
                               "aws:PrincipalAccount": "${aws:ResourceAccount}"
                           }
                       }
                   },
                   {
                       "Effect": "Allow",
                       "Action": [
                           "logs:CreateLogStream"
                       ],
                       "Resource": "arn:aws:logs:*:*:*:/aws/deadline/*",
                       "Condition": {
                           "StringEquals": {
                               "aws:PrincipalAccount": "${aws:ResourceAccount}"
                           }
                       }
                   },
                   {
                       "Effect": "Allow",
                       "Action": [
                           "logs:PutLogEvents",
                           "logs:GetLogEvents"
                       ],
                       "Resource": "arn:aws:logs:*:*:*:/aws/deadline/*",
                       "Condition": {
                           "StringEquals": {
                               "aws:PrincipalAccount": "${aws:ResourceAccount}"
                           }
                       }
                   }
               ]
           }'
   ```

1. カスタマーマネージドフリート (CMF) を作成し、そのフリート ID を に追加します`~/.bashrc`。

   ```
   FLEET_ROLE_ARN="arn:aws:iam::$(aws sts get-caller-identity \
           --query "Account" --output text):role/${DEV_FARM_NAME}FleetRole"
   aws deadline create-fleet \
       --farm-id $DEV_FARM_ID \
       --display-name "$DEV_FARM_NAME CMF" \
       --role-arn $FLEET_ROLE_ARN \
       --max-worker-count 5 \
       --configuration \
           '{
               "customerManaged": {
                   "mode": "NO_SCALING",
                   "workerCapabilities": {
                       "vCpuCount": {"min": 1},
                       "memoryMiB": {"min": 512},
                       "osFamily": "linux",
                       "cpuArchitectureType": "x86_64"
                   }
               }
           }'
   
   echo "DEV_CMF_ID=\$(aws deadline list-fleets \
           --farm-id \$DEV_FARM_ID \
           --query \"fleets[?displayName=='\$DEV_FARM_NAME CMF'].fleetId \
           | [0]\" --output text)" >> ~/.bashrc
   source ~/.bashrc
   ```

1. CMF をキューに関連付けます。

   ```
   aws deadline create-queue-fleet-association \
       --farm-id $DEV_FARM_ID \
       --queue-id $DEV_QUEUE_ID \
       --fleet-id $DEV_CMF_ID
   ```

1. Deadline Cloud コマンドラインインターフェイスをインストールします。

   ```
   pip install deadline
   ```

1. デフォルトのファームをファーム ID に設定し、キューを前に作成したキュー ID に設定するには、次のコマンドを使用します。

   ```
   deadline config set defaults.farm_id $DEV_FARM_ID
   deadline config set defaults.queue_id $DEV_QUEUE_ID
   ```

1. (オプション) ファームが仕様に従って設定されていることを確認するには、次のコマンドを使用します。
   + すべてのファームを一覧表示する – **deadline farm list**
   + デフォルトファーム内のすべてのキューを一覧表示する – **deadline queue list**
   + デフォルトファーム内のすべてのフリートを一覧表示する – **deadline fleet list**
   + デフォルトのファームを取得する – **deadline farm get**
   + デフォルトのキューを取得する – **deadline queue get**
   + デフォルトキューに関連付けられているすべてのフリートを取得する – **deadline fleet get**

## 次のステップ
<a name="gs-create-farm-next"></a>

ファームを作成したら、フリートのホストで Deadline Cloud ワーカーエージェントを実行してジョブを処理できます。「[Deadline Cloud ワーカーエージェントを実行する](run-worker.md)」を参照してください。