View a markdown version of this page

を使用した Docker対応フリートの作成 AWS CLI - AWS Deadline クラウド

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

を使用した Docker対応フリートの作成 AWS CLI

キューロールには、Amazon ECR に対して認証し、Dockerキュー環境によって選択されたイメージをプルするアクセス許可が必要です。フリートロールのアクセス許可は、デフォルトのキュー環境ではオプションです。ホスト設定アクションまたはワーカー側のツールがキューセッションの外部でイメージをプルするときに追加します。

前提条件

開始する前に、Deadline Cloud フリートを作成し、キューとフリートロールにポリシーをアタッチするアクセス許可 AWS CLI を持つ を設定します。Amazon ECR プライベートリポジトリには、既存のファーム、キュー、キューロール、フリートロール、コンテナイメージも必要です。

フリートを作成する

Dockerが有効なフリートを作成するには
  1. ファーム、キュー、ロールの値を設定します。

    FARM_ID=farm-0123456789abcdef0123456789abcdef QUEUE_ID=queue-0123456789abcdef0123456789abcdef FLEET_ROLE_ARN=arn:aws:iam::123456789012:role/DeadlineFleetRole MAX_WORKERS=10 QUEUE_ROLE_ARN=$(aws deadline get-queue \ --farm-id "$FARM_ID" \ --queue-id "$QUEUE_ID" \ --query roleArn \ --output text) QUEUE_ROLE_NAME=${QUEUE_ROLE_ARN##*/} FLEET_ROLE_NAME=${FLEET_ROLE_ARN##*/} ECR_READ_ONLY_POLICY=arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly
  2. Amazon ECR 読み取り専用ポリシーをキューロールにアタッチします。デフォルトのDockerキュー環境では、キュー認証情報を使用してイメージを認証およびプルします。

    aws iam attach-role-policy \ --role-name "$QUEUE_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY"
  3. (オプション) ホスト設定アクションまたはワーカー側のツールがキューセッションの外部でイメージをプルする必要がある場合、フリートロールに同じポリシーをアタッチします。

    aws iam attach-role-policy \ --role-name "$FLEET_ROLE_NAME" \ --policy-arn "$ECR_READ_ONLY_POLICY"
  4. 次のフリート設定docker-fleet-configuration.jsonで という名前のファイルを作成します。

    { "serviceManagedEc2": { "instanceCapabilities": { "vCpuCount": { "min": 4, "max": 16 }, "memoryMiB": { "min": 8192, "max": 65536 }, "osFamily": "linux", "cpuArchitectureType": "x86_64", "softwareAddOns": [ { "name": "docker" } ] }, "instanceMarketOptions": { "type": "spot" } } }
  5. サービスマネージドフリートを作成し、フリート ID を保存します。

    FLEET_ID=$(aws deadline create-fleet \ --farm-id "$FARM_ID" \ --display-name "Docker fleet" \ --role-arn "$FLEET_ROLE_ARN" \ --min-worker-count 0 \ --max-worker-count "$MAX_WORKERS" \ --configuration file://docker-fleet-configuration.json \ --query fleetId \ --output text) echo "$FLEET_ID"
  6. キューをフリートに関連付けます。

    aws deadline create-queue-fleet-association \ --farm-id "$FARM_ID" \ --queue-id "$QUEUE_ID" \ --fleet-id "$FLEET_ID"

フリートとロールのアクセス許可を確認する

コンテナのサポートを確認するには
  1. フリート設定にDockerソフトウェアアドオンが含まれていることを確認します。

    aws deadline get-fleet \ --farm-id "$FARM_ID" \ --fleet-id "$FLEET_ID" \ --query 'configuration.serviceManagedEc2.instanceCapabilities.softwareAddOns'

    レスポンスに が含まれていることを確認します"name": "docker"。

  2. キューロールに Amazon ECR 読み取り専用ポリシーがあることを確認します。

    aws iam list-attached-role-policies \ --role-name "$QUEUE_ROLE_NAME" \ --query 'AttachedPolicies[?PolicyName==`AmazonEC2ContainerRegistryReadOnly`]'
  3. ポリシーをフリートロールにアタッチした場合は、 を使用して コマンドを繰り返します--role-name "$FLEET_ROLE_NAME"。

フリートはルートレス を提供しますがDocker、キューにはイメージを識別するDockerキュー環境が必要です。キュー設定の詳細については、「」を参照してくださいサービスマネージドフリートのコンテナサポート。