4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[UiPath] よくわかるUnattendedロボット(同時実行編)

Posted at

こんにちは。UiPath Friendsコミュニティ運営メンバの @masatomix です。

イントロ

前回の記事 [UiPath] よくわかるUnattendedロボット(イントロ編) のつづきです。
前回は1台構成のUnattended ロボット環境を構築したのでした。

orch

今回はPC2台(以上) でUnattendedロボットを構築する際に、どこにどのように設定すればよいかを説明します。

multi000

対象のかた

  • すこしはUiPath Orchestratorを知ってる・触ったことがあるよ、という方を想定しています。
  • ぼんやりとUnattendedロボットは使ってるけど、もうすこし細かく知りたいなぁ、という方。
  • 前回の記事のつづきが知りたい方

コレをやったらできること

  • オンプレのUiPath Orchestratorで、2台以上のUnattendedロボットを構築し、サンプルワークフローを動かすことができるようになります。

  • PC複数台に対してマシンキーをどのように発行すればよいか、またキーごとのランタイム数をどのように設定すればよいか、などが分かるようになります。

TL;DR

  • ライセンスを複数もっているばあい、複数のPCにライセンスを割り振ることで、最大そのライセンス数分のワークフローを同時に実行できる。ライセンスは原則、OCへのPC接続ごとに、1つ消費される。

  • マシンテンプレートをフォルダに紐付けることで、テンプレート単位でワークフローの実行可・不可を制御 できる。

  • したがって、PCそれぞれに個別のマシンキーを設定すると、マシンごとにワークフローの実行可・不可を制御できる。

  • 複数のPCでマシンキーを共有すると、実行時にキーを共有しているPCたちで、空いているPCがワークフローを実行するなど、いわゆるラウンドロビン的なスケールアウトができる。

  • マシンキーを共有する・しないにかかわらず、基本的にランタイム数は1にしておけばよい

    • ランタイム数1のマシンキーを1コ作成し、3台のPCで共有してOC接続した場合、1x3=3ライセンス必要。
    • ランタイム数1のマシンキーを3コ作成し、3台のPCそれぞれに設定してOC接続した場合も、3ライセンス必要。
  • ランタイム数を増やすときはPC1台で同時にワークフローを動かすとき。

    • たとえばPC1台で同時に2コのワークフローを動かしたい場合、ランタイム数を2とする。その場合1PCでライセンスを2消費する。そのマシンキーを3台のPCで利用すると、2x3=6ライセンス消費する。
    • ただし複数ユーザが同時ログイン可能なWindowsサーバ機などが必要(たぶん)。

今回は複数PCで運用してみる

さあやってみます。

  • テスト1: PCごとにマシンキーを用意するケース
  • テスト2: PC2台でマシンキーを共有するケース

こんなテストをやってみます。

前提の環境

サーバ環境の項目
Orchestrator オンプレのOrchestrator 2020.10.7
Robot UiPath Robot (v20.10.9) /サービスモード
URのライセンス数 2つ以上

multi000

テスト1: PCごとにマシンキーを用意

  • PC情報
PC名 マシンテンプレート名
s001 s001_template (URランタイムを1つ割り当て)
s002 s002_template (URランタイムを1つ割り当て)
  • ユーザ/ロボット情報
ユーザ名 AR自動 UR自動
ad\user001 ×
ad\user002 ×
  • フォルダ情報
フォルダ名 プロセス名 ユーザ マシン
f001 ModernTest ver.1.0.1 ad\user001 s001_template
f002 ModernTest ver.1.0.2 ad\user002 s002_template

まとめると、PCごとにマシンテンプレートを用意し、

  • PC: s001 では ModernTest ver.1.0.1 をuser001が実行
  • PC: s002 では ModernTest ver.1.0.2 をuser002が実行

できるようになっています。図示するとこんな感じ。

multi001

そして、別のPCからOCのWeb画面経由でワークフローをそれぞれ実行してみました。想定結果は先に書いたとおり、

  • PC: s001にad\user001で自動でログインされて、ワークフロー(ModernTest) のver.1.0.1が実行される。
  • PC: s002にad\user002で自動でログインされて、ワークフロー(ModernTest) のver.1.0.2が実行される。

ですね。

動画はこちら

わかること

  • ライセンスを複数もっていると、複数のPC上で同時にワークフローが実行できる(あたりまえか)
  • マシンキーを分けることで特定のフォルダに特定のPCを紐付けることが可能なので、結果マシンごとに実行可能なワークフローを制御できる

ことが分かりました。
ライセンスが単数のときは複数PCを同時に有効化できませんでしたが、ライセンスが複数あると、PCをそのライセンス数ぶん同時に有効化できるので、並列にワークフローが実行できるわけですね。

まあいろいろ書きましたが、ここまでは感覚的に当たり前の結果です。

テスト2: PC2台で、マシンキーを共有

さてさてマシンテンプレートは複数台で共有できるので、つぎはマシンキーを共有する設定にしてみます。
設定方法はさきの例からマシンキーを共通にしただけです。具体的には**「shared_template」というマシンテンプレートを作って、URランタイムを一つ割り当て**ておきます。

  • PC情報
PC名 マシンテンプレート名
s001 shared_template (URランタイムを1つ割り当て)
s002 同上
  • フォルダ情報
フォルダ名 プロセス名 ユーザ名 マシンテンプレート名
f001 ModernTest ver.1.1.1 ad\user001 shared_template
f002 ModernTest ver.1.1.2 ad\user002 shared_template

orch-複数構成

PC2台は、共通のテンプレート(shared_template)でどちらもフォルダ f001,f002 に紐付いているということですね。なのでどちらのPCでも、ver.1.1.1, ver.1.1.2 のワークフローが動くはずです。
ちなみにユーザは、単純化のためフォルダごとに別のユーザを紐付けました。

やってみましょう。

動画はこちら

わかること

  • ライセンスを複数台もっていると、複数のPC上で同時にワークフローが実行できる(テスト1とおなじ)

  • マシンキーを共有すると、ジョブの実行時にキーを共有しているPCたちで、空いているPCがワークフローを実行するなど、いわゆるラウンドロビン的なスケールアウトができる。

  • マシンキーを共有した場合でも、ジョブの作成時に明示的にPCを指定することも可能

  • マシンキーを共有する場合でもランタイム数は1でよい

などがわかりました。
マシンキーの共有については「PCたちをひとかたまりと見なしていい場合は同じマシンキーにする」とか「あるPCは個別のフォルダに紐付けたいなどの場合は個別のキーを配布する」とか、そういったことを考慮すれば良さそうです1

公式にランタイムの説明 があるのですが、最初は意味が分かりませんでした。ここまで理解してあらためて読んでみると、、、

たとえば、あるマシン テンプレートに 2 つの Unattended ランタイムを割り当てたとします。そのマシン テンプレートを使用して Orchestrator に接続された 3 台のワークステーションは、6 つの Unattended ライセンス (2 つの Unattended ライセンス × 3 台のワークステーション) をテナントのライセンス プールから確保します。これにより、2 つの Unattendedを各ワークステーションで同時に実行できます。

(公式の表記を少しシンプルにしています)
なるほど。ようやく意味が分かりました。今回のケースのように 2台のPCで共有されるマシンテンプレートは、ランタイム2とかにするのではなく 、ランタイムは1でOKで、そのかわりテンプレートを2台が使ってるから、ライセンスは「2台PC」x「テンプレのランタイム1」 = 2消費するよという考え方なんですね。なるほど。

まとめ

  • 複数台のUnattended ロボットを動かしてみました。
  • マシンキーを個別に設定した場合、共有した場合でどのような違いがあるかが分かりました。
  • マシンテンプレートのランタイム数をどう設定すれば良いかがわかりました。
  • あとは冒頭のTL;DRに書いてあるようなことが、理解できました。

以上おつかれさまでしたー。

関連リンク

  1. 「あるPCだけランタイム数を複数にしたい場合とかは別キー」にした方が効率的なのですが、細かい説明は省略( PC台数xランタイム数になるからね)

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?