Amazon Web Services ブログ

AWS Thinkbox Deadline がSpot Event Plugin にマルチリージョンサポートを追加

この記事は、“AWS Thinkbox Deadline adds multi-regional support to Spot Event Plugin” を翻訳したものです。

Amazon Web Services (AWS) は、Spot Event PluginにAWSマルチリージョンサポートを追加したAWS Thinkbox Deadlineのリリース10.2.1を発表しました。これにより、Deadlineのお客様は、1つのSpot Event Pluginから複数のAWSリージョンでスポットフリートを管理することで、レンダリングを簡単にスケーリングできるようになりました。

はじめに

お客様は、クラウドの柔軟性を活かすために、行っている作業に応じてコンピューティングリソースをプロビジョニングする能力を望んでいます。従来、そのためには、必要な作業量を計算し、必要なコンピューティングインスタンスを手動で起動する必要がありました。この問題を解決するために、以前のDeadlineのバージョンでSpot Event Plugin (SEP)  が追加されました。SEPにより、スケジューラーは、レンダーキュー内の作業量に基づいて、必要な時に必要なだけコンピューティングリソースを自動的に起動(そして終了)することができるようになりました。この機能は、指定されたEC2スポットフリート構成のガイドラインの範囲内で、必要に応じてSpot Fleet Requestを繰り返し拡大、もしくは縮小するため、クラウドリソースの管理プロセス全体を簡素化します。特に大量の計算を必要とする要件や複数箇所に拠点を置くスタジオは、そのニーズを満たすためにAWSの複数のリージョンを活用するようになっており、AWSがDeadlineのSEPにマルチリージョンのサポートを追加したことで、これらはさらに簡単になりました。

このブログでは、SEPがどのように働いているか、とそのシンプルな仕組みを維持しつつもマルチリージョンのレンダリングワークフローに対応するために、どのように進化したかについて紹介します。

「私たちのアーティストは世界中に拠点を置いていますが、強化されたSpot Event Pluginにより、AWSのグローバルフットプリントを活用して、リージョンをまたいでどのマシンでレンダリングするかをターゲットできるようになりました。特に、大量の計算能力を必要とする複雑なショットをレンダリングする際には、Deadlineを通じてすべてをリアルタイムで確認できるので役に立っています。これにより、真のコラボレーションプロセスが実現し生産性が向上しましたが、最も大切なことは、スタジオとしての創造性が高まったことです。」 - Sam Reid, Head of Technology | Untold Studios

Spot Event Pluginの仕組みとは?

Two AWS architecture diagrams, one showing the (a) hybrid use of Spot Event Plugin, with an on-premises Deadline install bursting into the cloud with Amazon EC2 Spot Deadline Workers and a Resource Tracker and the second (b) diagram, showing a full studio in the cloud solution, where the artist workstations, Deadline repository, Amazon EC2 Spot Deadline Workers and the Resource Tracker are all in the same region

図1:DeadlineのSpot Event Pluginは、(a)ハイブリッドまたは(b)フルクラウドの構成のいずれかにおいてサポートされる単一のAWSリージョンにAmazon EC2スポットインスタンスをプロビジョニングする

Spot Event Plugin(SEP)は、Deadlineのキューに入っているジョブとタスクの数に基づいてEC2スポットインスタンスを動的にスケーリングします。プロビジョニングされたスポットインスタンスはそれぞれ、目的のアプリケーションのレンダリングプロセスを制御するDeadlineのWorkerアプリケーションのインスタンス1つを実行します。SEPはJSONベースのSpot Fleet Request (SFR)をDeadlineのGroupに関連付け、ハードウェア、ソフトウェア、およびAWSの仕様が異なる複数のSFRを、さまざまなタイプのジョブに合わせて調整できるようにし、それをDeadlineがGroupの割り当てに基づいて割り振ります。SEPは、SFRのTargetCapacity変数をスケールアップまたはスケールダウンすることにより、複数のSFRのライフサイクルを制御します。

SFRを維持するために、SEPは定期的に各Groupに対して最適なDeadlineのWorker数を決定し、適切にSFRを作成または変更します。このようにしてSEPはSFRを特定のGroupの作業量と一致するようにし、インスタンスの数は、ユーザーが設定した上限まで、またはタスクがない場合はゼロまで調整されます。Workerがレンダリングを止めた、またはスポットの中断通知を受け取った場合、Workerは自らをオフラインと表示し、キュー内のWorkerリストから自らを削除して自動的に終了します。

ターゲット数の決定

設定されたGroupそれぞれについて、SEPは、HouseCleaning(Deadlineがレポジトリとデータベースのメンテナンスを行うために定期的に開始するバックグラウンドプロセス)の作業中に、ファームの現状に基づいてスポットインスタンスのターゲット数をスケーリングします。その際に考慮される要素には以下が含まれます:

  • State(状態): キューに入っているタスクのみが作業対象と見なされます。
  • Allow List(許可リスト): Allow ListにWorkerが表示されている場合、表示されたWorkerのみがこのLimitに関連するジョブのレンダリングを行います。ジョブにAllow Listがある場合、そのジョブに対してスポットインスタンスは起動されません。
  • Limit(制限): 起動するインスタンスの数は、使用可能なLimitのStub(マシン, プラグイン, ライセンス)の数によって制限されます(Limitは、サードパーティのフローティングライセンスを含む、Deadlineの各種リソースを制御するために使用されます)。
  • Concurrent Tasks(同時実行タスク): Workerが一度に実行できるタスクの数を設定できます。ジョブのプラグイン上でConcurrent Tasksが有効になっている場合、設定された値が使われます。

スポットフリートの健全性の確保

Resource Tracker (RT) は、SEPが起動したSFRとスポットインスタンスの状態を監視するリージョンサービスです。SEPで有効になっている場合(デフォルトはtrue)、AWSリージョンで最初のSFRが作成されるときにRTが自動的にデプロイされます。AWS Lambda関数、Amazon SQS通知、Amazon DynamoDBで構成されるRTは、SEPが新しいSFRを作成するそれぞれのAWSリージョンで自動的にデプロイされます。これは、クラウド上のDeadline構成におけるフェイルセーフと見なすことができます。

RTが、Deadline Workerを実行している各Amazon EC2インスタンスから報告された稼働状況を監視し、Deadlineのヘルスチェックに失敗したインスタンスを終了させるため、お客様は余分なコストを回避できます。RTはSFRの全体的な状態も監視し、ヘルスチェックに失敗したインスタンスの数がフリート終了のしきい値(デフォルトは20%)を超えた場合にはそのSFRをキャンセルし、根本的な問題が解決されて通常のオペレーションが回復するまで新しいSFRの起動を阻止します。

RTには、カスタマイズされたAmazon CloudWatch Events、Eメール/Slack通知用のAmazon SNS Notificationsに加え、Deadline Monitorに組み込まれた、SEPがエラー状態になった場合にブロックを解除するためのユーザーインターフェイスが用意されています。通常、RTを実行する1か月(1日24時間)あたりのコストは、レンダーノード500個の合計コンピューティングコストの0.028%未満に相当します。

「マルチリージョンのスポットリクエストですべてのリージョンのResource Trackerが自動サポートされたことで、リソースが孤立することを心配せずに、複数個所にあるスタジオをまたいでレンダリングを拡張できます。」Daniel Marshall, CEO | Konsistent Consulting

Spot Event Pluginの設定方法

SEPを使用するには、次の手順が必要です:

  • セキュリティ: AWS Identity and Access Management (IAM)ポリシー、IAMユーザー、IAMロールを作成します。AWSはこれを容易にできるように、Spot Event Plugin、SEP Worker、Resource Trackerに特化したIAMの管理ポリシーに加え、AWSの最小権限の原則に従ってアクセス権限を設定する手順も用意しています。
  • イメージ: 推奨される手順に従って、Amazonマシンイメージ(AMI)を作成します。このとき、Deadlineのクライアントソフトウェアが、使用予定の各AWSリージョンのRCSに接続するように設定します。
  • Spot Fleet Request (JSON): 以下の手順に従い、AWSマネジメントコンソールまたはAPI経由で、前のステップで作成したAMIを使ってSpot Fleet Request(SFR)を作成し、設定をJSONファイルとしてローカルに保存します。

SEP構成内のDeadline Groupごとに異なるAMIまたは追加のスポットフリートを作成する場合は、イメージまたはSpot Fleet Request (JSON) の手順を繰り返します。設定を簡略化するには、EC2起動テンプレートを活用して、SFRで参照します。「DeadlineTrackedAWSResource」のキーと「SpotEventPlugin」の値を含むタグを、作成する起動テンプレートごとに必ず適用してください。これにより、SEPが起動するスポットインスタンスが適切にタグ付けされ、Resource Trackerによって追跡されるようになります。

: A screenshot of the Launch Template editor's Resource tags section, which shows a tag added with a key/value pair of 'DeadlineTrackedAWSResource' and the value of 'SpotEventPlugin'

図2:Spot Fleet Requestで参照される起動テンプレートには、Amazon EC2インスタンス用の「DeadlineTrackedAWSResource:SpotEventPlugin」のキー/値のタグを必ず入れる

マルチリージョンサポートのWorker命名に関する考慮事項

DeadlineのWorkerには、常に一意の名前を付ける必要があります。Spot Event Pluginによって起動されたWorkerに適用される名前は、デフォルトではAmazon EC2インスタンスのホスト名になっています(デフォルトでは、そのEC2インスタンスのプライベートIPアドレスになっています)。起動されたすべてのDeadline Workerの名前が確実に一意となるように、次のいずれかのオプションを使用することを強くお勧めします:

  • • SFRの設定で起動テンプレートを使用し、「Hostname type」「Resource name」に設定します。これにより、起動テンプレートを使用して起動されたすべてのAmazon EC2インスタンスが、プライベートIPアドレスの代わりにEC2インスタンスのリソース名をホスト名として使用するようになります。EC2インスタンスのリソース名はAWSリージョン全体にわたって一意です。例:ec2-instance-id.region.compute.internal

A screenshot of the Launch Template editor's Advanced details section, which shows the Hostname type set to 'Resource name'

図3:EC2インスタンスのホスト名を一意にするためのAmazon EC2起動テンプレートの設定

  • SEPがEC2インスタンスを起動するすべてのサブネットについて、AWSリージョン全体で一意または重複しないCIDRブロックを設定します。一意のCIDRブロックを設定すると、起動されたすべてのEC2インスタンスのプライベートIPアドレス/ホスト名がAWSリージョン全体で一意になるため、すべてのDeadline Worker名も一意になります。デフォルトでは各AWSリージョン内のデフォルトVPCウィザードのCIDRブロックはまったく同じとなっているため、怠るとDeadlineのWorker名がかち合ってしまう原因になるので注意してください。

Deadlineの設定

Spot Event Pluginの設定は、Deadline Monitor内で行えるようになりました。これには、セキュリティ設定の一部として作成したIAM認証情報を入力する必要があります。Spot Fleet Request Configurationsの設定はJSONディクショナリです。これは、DeadlineのGroupSpot Fleet Request間の1つ以上の1対1のマッピングを表しており、次の構文となります:

{
    "DEADLINE_GROUP_NAME": <<Replace with Spot Fleet Request>,
    "DEADLINE_GROUP_NAME_2": <<Replace with Spot Fleet Request 2>
}

別のSpot Event Configuration Utilityを使用すると、既存のSFR構成を編集したり、既存のSFR構成から新たな構成を作成したりできます。

Deadline’s Spot Event Plugin configuration options dialog with typical settings applied

図4:一般的な設定が適用されたDeadlineのSpot Event Pluginの設定オプションダイアログ

追加の情報

  • SEPを設定する際には、EC2 WorkerをどのようにDeadlineリポジトリに接続させるのか、その構成の設定方法を決めなければなりません。AMI作成時にDeadlineを設定する、もしくはEC2ユーザーデータスクリプトを使用してインスタンスの起動時にDeadlineを設定する、のいずれかの方法を選びます:
source "/etc/profile.d/deadlineclient.sh"
DEADLINE_COMMAND="$DEADLINE_PATH/deadlinecommand"
"$DEADLINE_COMMAND" -SetIniFileSetting KeepWorkerRunning True
"$DEADLINE_COMMAND" -SetIniFileSetting LaunchSlaveAtStartup True
"$DEADLINE_COMMAND" -SetIniFileSetting ProxyUseSSL false
"$DEADLINE_COMMAND" -ChangeRepository Proxy my.render.farm:8080
systemctl restart deadline10launcher
  • 1つ以上のEC2インスタンスがプライベートサブネット内で稼働している場合は、Virtual Private Cloud (VPC) エンドポイントを使用して、Amazon S3やAmazon EC2といったサポートされているAWSサービスにプライベートに接続できます。これらのエンドポイントはAWS PrivateLinkを利用しているため、Amazon VPCインスタンスはサービスのリソースと通信する際にパブリックIPアドレスを必要としません。また、Amazon VPCと各サービス間のトラフィックはAmazonネットワーク内で行われます。
  • SEPを使用する場合は、すべてのEC2インスタンスでEC2 インスタンスメタデータサービス(IMDS)v1またはv2を有効にする必要があります。

これで、Deadlineを介してレンダリングをAWSへと自動的に展開させる準備ができました。

「Spot Event Pluginは、マルチリージョンレンダリングをネイティブにサポートしているため、pixitmediaはAWSのリーチをさらに活用しやすくなりました。当社のソフトウェア定義ストレージプラットフォームおよびデータのオーケストレーション/管理システムであるpixstorとngeneaをユーザーが利用する際に、必要とされればいつでもどこでもこのグローバルレンダリングリソースを提供できるようになりました。」Ben Leaver, CEO | pixitmedia

グローバルレンダーファーム

An architecture diagram demonstrating the new capabilities of the multi-region Spot Event Plugin. Multiple AWS regions are shown, each with their own Spot Fleet and Resource Tracker, all connecting back to the same Deadline install and Spot Event Plugin

図5:DeadlineのSpot Event Pluginで複数のAWSリージョンでコンピューティングをプロビジョニング

SEPの新しいマルチリージョンオプションにより、Deadline 10.2.1では容量の拡大が可能になり、お客様はDeadline Monitorを介してスタジオ全体のレンダーファームを一元的に確認できるようになりました。すでに複数のリージョンにインフラストラクチャをデプロイしているスタジオの場合、この機能により、フローティングライセンス制限などの一般的なリソース制限に準拠しつつ、任意のAWSリージョンでレンダリングしたり、必要に応じてジョブを簡単に移動したりできるようになりました。これを有効にするには、Deadline MonitorのConfigure Event Pluginsウィンドウの「Spot」で、SEPをMulti-Regionモードで実行するように切り替えます。

Figure 6: Deadline’s configure event plugins window, displaying the new ‘Multi-Region’ option

図6:新しい「Multi-Region」オプションを表示したDeadlineのSEP設定ダイアログ

Multi-Regionモードを使うには、指定したDeadline Groupのリクエストが送信されるリージョンを特定できるように、JSONのSFR設定を少し変更する必要があります。Multi-Regionモードは単一のAWSリージョンでも使用できます。スポットフリートの構成は、変わらずDeadline GroupSpot Fleet Request Configurationの1対1のマッピングですが、Deadline Groupは単一のAWSリージョンに固有の一意なものでなければならないという追加要件があります。Multi-Regionのスポットフリートの構成の構文は次のとおりです:

[
    {
        "region": "AWS_REGION_NAME",
        "group_configs": {
            "DEADLINE_GROUP_NAME": <Replace with Spot Fleet Request>,
            "DEADLINE_GROUP_NAME_2": <Replace with Spot Fleet Request 2>
        }
    },
    {
        "region": "AWS_REGION_NAME_2",
        "group_configs": {
            "DEADLINE_GROUP_NAME_3": <Replace with Spot Fleet Request 3>,
            "DEADLINE_GROUP_NAME_4": <Replace with Spot Fleet Request 4>,
            "DEADLINE_GROUP_NAME_5": <Replace with Spot Fleet Request 5>
        }
    }
]

SFR設定のJSONに記載されているAWSリージョンは、Spot Event Pluginによって管理される順序となっています。これにより、特定のAWSリージョンの使用を優先することができます。SFR設定では、Deadline Group名の一部にワイルドカードを使用し、似たような名前の複数のGroupを1つのSFRに関連付けることができます。これはJSON全体の長さの短縮に役立ちます。

以上で、運用可能なグローバルレンダーファームが完成しました。

「Spot Event Pluginは複数のリージョンをネイティブにサポートしているため、AWSのグローバルなリーチを活用して、レンダリングを地理的にスケーリングすることが簡単になりました。」Daniel Marshall, CEO | Konsistent Consulting

グローバルレンダーファームの高度なモニタリング

DeadlineにはSQSの通知機能があり、Deadlineイベントをジョブごとやタスクごとのレベルで監視でき、SEPとの相性は非常に良く、独立して動作します。この機能を使用するには、すべてのWorkerがRemote Connection Server (RCS) 経由で接続している必要があります。AWS上では、お客様のAWSアカウントにAmazon SQSキュー、サーバーレスAmazon Lambda関数、およびAmazon DynamoDBをプロビジョニングする必要があります。状態通知はRCSによって収集され、1分ごとにSQSキューに送信され、処理、Lambdaによる重複排除、DynamoDBストアへの挿入を待ちます。この構造により、お客様はDeadlineキューの外に包括的なテレメトリパイプラインを構築し、特定のプロジェクトのコンテキスト内で、シーケンスごと、ショットごと、またはフレームごとに、Amazon EC2のコストを現実のわずか60秒遅れで正確に追跡することができます。

Deadline’s SQS Notification architecture. Deadline’s RCS sends notifications to a SQS queue, which in turn is processed by Lambda and duplicate events are removed before being stored in a DynamoDB database

図7:DeadlineのSQS通知のアーキテクチャ。DeadlineのRCSはSQSキューに通知を送信し、送られたキューはLambdaによって処理され、重複したイベントはDynamoDBデータベースに保存される前に削除されます。

SQS通知を設定するには:

  • すべてのDeadline WorkerがRCSを介してリポジトリに接続していることを確認します。
  • プライマリとなるAWSリージョンにSQSキューを作成します。スループットが高く、Lambdaがあらゆるメッセージの重複排除を処理してくれる「Standard」キューを使用します。
  • RCSインスタンスを実行している各マシンに、SQSキューにsqs:SendMessage送信するためのIAMアクセスを含むIAMポリシーを持つIAMロールが割り当てられていることを確認します。
  • Deadline MonitorでSQSキューのURLを入力します。

A screenshot of Deadline's Configure Repository Options, with Notifications and then SQS Notifications selected, showing where to configure the SQS queue in Deadline Monitor's user interface

図8:Deadline Monitor UIのDeadline SQS通知キューURL設定画面

DeadlineのSQS通知のドキュメントには、IAM、DynamoDB、Lambda Python関数、CloudWatchログ設定を含む通知処理の例と、Deadlineの通知メッセージの例が記載されています。

まとめ

この記事では、DeadlineのSpot Event Plugin(SEP)をAWSの単一リージョンで使用する場合と、新たに追加されたマルチリージョンサポートを利用する場合の2つの設定方法を紹介しました。この新しい設定により、お客様は一度Deadlineをインストールするだけで、1つのSEPから複数のAWSリージョンでスポットフリートを作成し、レンダリングを拡張して容量を拡大できるようになりました。また、DeadlineのMonitorアプリケーションにより、複数のオフィスにまたがる作業者全員を一元的に確認できるようになりました。

さらに、DeadlineのSQS通知機能を活用することで、豊富なテレメトリを提供し、ダウンストリームでお客様が行う処理に提供できるジョブごと・タスクごとのレベルのAmazon EC2コストの正確な追跡を(わずか60秒のレイテンシーで)提供できる方法について紹介しました。

捕捉資料

詳細については、DeadlineのSpot Event PluginResource TrackerマルチリージョンサポートSQS通知のドキュメントをご覧ください。

https://www.awsthinkbox.com/deadline

ダウンロード:AWSマネジメントコンソールのAWS Thinkboxのダウンロードページはこちらです。

Untold Studiosについて

Untold Studiosは、音楽、テレビ、広告を通じて文化を形作っている、英国アカデミー賞 (BFTA) やエミー賞、グラミー賞にノミネーション歴のあるスタジオです。Untold Studiosは、独自のプログラミング開発、音楽や広告コンテンツの制作、世界クラスのVFX制作を行っており、すべて次世代テクノロジーによって実現されています。

Konsistent Consultingについて

Konsistent Consultingは、APN認定されたシステムインテグレーターとして、世界中のVFXおよびポストプロダクション施設と連携して、コンサルティングや技術ソリューションを提供しています。

pixitmediaについて

メディアとエンターテインメント向けのソフトウェア定義ストレージおよびデータ管理ソリューションを専門とするpixitmediaは、Kalray(Euronext Growth Paris: ALKAL)傘下の会社で、エッジからクラウドまで、高性能なデータ中心のアプリケーション市場向けのハードウェア・ソフトウェアの技術とソリューションを提供しています。