オンプレとクラウドをつなぐOPA (On-Prem agent)とは？

# はじめに

Workato は、クラウドサービスのみならず、オンプレミスにあるシステム群（社内の API、データベース、ファイルシステムなど）ともシームレスに連携が可能です。

社内のシステムと連携するには、社内ネットワークに **OPA（On-Prem agent）**(「オンプレミスエージェント」と呼びます）というエージェントのプログラムを配置する必要があります。

# OPA (On-Prem Agent) とは？

### 概要

OPA は一言でいえば、Workato とオンプレのシステムをつなぐ中継サーバーです。

実体は、イントラネット内にあるサーバ（VM やコンテナも利用可能）にインストールするプログラムです。Windows　版の場合は、Windows サービスとして動作します。

そして、社内の API や、データベース、ファイルシステムなどにアクセスを行います。社内の通信は、HTTP(S) や CIFS など、接続先により異なります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/325bb10b-5a6d-63d6-7728-f2c8e3df6908.png)

クラウドの Workato とは、HTTPS でイントラネット側から通信 (Outbound) を行います。そのため、HTTP 通信さえ許容されていれば、企業のファイアウォールに手をいれることなく通信を行うことが可能です。

厳密には、HTTPS 上の TLS WebSocket を使用しており、これによって Workato からイントラネット、イントラネットから Workato の双方向リアルタイム通信を実現しています。

### OPA で実現できること

OPA を使うと、以下のようなことが可能になります。

* オンプレミスにある DBMS (SQL Server, Oracle, MySQL など)への接続
* オンプレミスの SAP に接続
* オンプレミスのファイルシステムへアクセス
* オンプレミスにあるスクリプトファイルを起動
* オンプレミスにある SFTP サーバーへの接続
* オンプレミスにあるサーバーに対する API 呼び出し

また、OPA を経由して通信することにより、接続先が社内に限定されたクラウドに対して、以下のような迂回接続を行うことも可能です。

* オンプレミス経由での HTTP リクエストの送信
* オンプレミス経由でのクラウド DB への接続

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/28f2a445-4069-00ff-a7ab-4248a0a45a37.png)

# On-prem groups (オンプレミスグループ）とは？

On-prem groups とは、複数の OPA をグルーピングしたものです。グルーピングすることで、負荷分散や冗長性を確保することが可能となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/6c55a2a9-7ff7-3093-459a-6a1b21f54441.png)

上の図では、OPA1 と OPA2 の2台の OPA が稼働しています。2台で負荷分散できるほか、仮に、OPA1 がダウンした場合、OPA2で稼働し続けることが可能になります。アップグレード時も、複数台構成にすることで、ダウンタイムゼロでのアップグレードが可能となります。
# OPA (On-Prem Agent) の動作要件

### システム要件

[公式ページ](https://docs.workato.com/on-prem.html#supported-operating-systems)に記載の通り、以下のOSで動作いたします。

- Linux (64-bit)
- Windows 7, 10, 11 (64-bit)
- Mac OS X
- Windows Server 2012 R2 and newer (OPA v2.8.0 onwards)

ハードウェア要件は、以下となっております。
- 8 GB of RAM
- 250 MB of disk space
- 800 MHz 64-bit CPU (Intel/AMD)

よく、どれくらいのスペックを用意すればよいか？と聞かれますが、OPA にかかる負荷によって変わるために一概にはお答えできません。例えば、社内の DB に頻繁にクエリをかける場合、OPA が DBMS に対してコネクションを張り、データをフェッチするため、その分のメモリが必要となります。

強いてあげるとすれば、OS 単体での要件に、上記ハードウェア要件を足したスペック（Windows Serverでしたら、24～32GB のメモリ、4コア程度以上）をおすすめしています。検証用途であれば、Windows10 などのクライアント系 OSで、メモリ 16GB でも十分動作します。

### ネットワーク要件

以下が、必要な要件となります。

- Workato のクラウドに対して、HTTPS 通信ができること
- HTTP プロキシを使用する場合、プロキシサーバー が WebSocket に対応していること
- DNS で名前解決ができること (HTTP プロキシサーバーを使用する場合であっても)

基本的に HTTPS 通信さえできればよいのですが、プロキシサーバーを経由しないと一切の接続を許容しない企業もあります。この場合、プロキシサーバーが WebSocket を許容している必要があります。

さらに、企業内のネットワークでは DNS が制限されている場合があります。例えば、イントラネット内の名前解決のみが可能で、インターネットの名前解決ができないケースです。本来、HTTP(S)でプロキシサーバーを使用する場合、名前解決はプロキシサーバー側が行うため DNS は不要ですが、OPA では **DNS 名前解決が必須**となります。

OPAが名前解決を行うのは、OPA が接続する Workato の FQDN です。したがって、イントラネット内の DNS サーバーで、以下のホスト名を名前解決できるようにしてください。(なお、hosts ファイルに追記しても、接続することはできました。）


JPデーターセンターをご利用の場合:
| FQDN               | IPs                                        |
|--------------------|--------------------------------------------|
| sg3.jp.workato.com | 35.79.205.155, 52.199.27.57, 35.78.12.221  |
| sg4.jp.workato.com | 3.113.210.186, 3.113.92.57, 54.92.47.124   |

USデーターセンターをご利用の場合:
| FQDN             | IPs                                        |
|------------------|--------------------------------------------|
| sg3.workato.com  | 54.224.75.148, 52.206.161.203, 52.204.114.159 |
| sg4.workato.com  | 54.91.65.247, 54.221.112.165, 3.216.209.184 |

# OPA (On-Prem Agent) のインストール手順

### OPAグループの作成

[Workspace admin] から [On-prem groups] を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/37fa5f2a-d2eb-9e0f-e629-4eafaf65212d.png)

次に、新規に On-prem group を作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/6f322fda-07a3-e5d5-8191-89da2cccf13e.png)

[Group name] に、On-prem group の名前を入力します。[Set up connections] は、OPA の設定を Workatoのクラウド側に持つか、ローカルの設定ファイルに持つ（旧来の方法）のかを設定します。古くからのユーザーで下位互換性が必要ない限り、「Directly in Workato」を選択します。（**※この設定は、一度設定するとあとから変更できません。** また、この設定により、ローカルファイルへのコネクションなどの設定方法にも違いが生じますのでご注意ください。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/9243b1b4-d3db-2af5-c198-37c6b1bfda23.png)

### OPAの追加～ダウンロード (Workato ワークスペース上の操作)

On-prem group を作成したら、次は OPA を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/5fa3d314-e260-f591-0ebc-02bd804916bb.png)

エージェントの名前を入力し、OPA をインストールするコンピューターの OS を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/a93f9791-ab7f-36e3-1161-9cfa3399d031.png)

続いて、OPA のプログラム（exeファイル）をダウンロードします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/6ce3ddbd-2ae0-9d98-df3c-2acda45c6801.png)

続いて、表示されたアクティベーションコードをコピーします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/89fe729c-45b5-052c-21e2-9eaf0ea08463.png)


### OPAのセットアップ (OPA インストール PC 上の操作)

ダウンロードしたエージェントをダブルクリックして、起動します。（実行には、管理者権限が必要です。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/0b3bf1da-9e66-6c1a-8164-d8e54d6d809c.png)

インストーラーが起動したら、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/418017a1-74bb-2b0a-0f35-6cd15072e45f.png)

エージェント名を入力し、[Next] をクリックします。OPA を追加する際、Workato の画面上で指定したエージェント名と合わせておくことをおすすめしますが、1台のコンピューターに1つの OPA しかインストールしない場合、インスタス名は空欄でも構いません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/c905cc66-3d05-18e2-8a5f-f587582f1692.png)

インストールフォルダの規定値が表示されるので、問題がなければ、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/cf6d7498-bbeb-9348-a7b7-3cbb274c56e3.png)

スタートメニューフォルダの規定値が表示されるので、問題がなければ、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/f9a70c4f-fb95-f038-0b75-527974953468.png)

デスクトップのショートカットアイコンの作成と、サービスとしてインストールするかどうかのオプションが表示されます。このまま変更せず、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/4a8be253-94c5-0b42-0bd5-597b9fa315af.png)

インストール前の最終確認を聞かれるので、問題がなければ、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/47065fa4-b751-93a9-4cfa-46f57222b53a.png)

ファイルのコピーが始まるので、しばらく待機します。（1分以内に完了します）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/a0929189-4b5c-3259-2351-b94426125147.png)

Workatoの画面でコピーしたアクティベーションコードを入力し、[Next] をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/872978bd-ced2-017a-5b43-88ff8420bb68.png)

[Finish] をクリックし、インストールを完了します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/4a7682a1-8b9b-aa0a-672b-9c0c28c7635a.png)

インストールフォルダ配下の confフォルダにある config.yml ファイルを開きます。
必要に応じて設定を行い、config.yml を保存します。

「サービス」の管理コンソール(services.msc) を開き、OPA のサービスを開始します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/7a53a0e9-bbb1-ad1e-8fd0-b2e4c3e508b2.png)

### エージェントのテストを実行 (Workatoワークスペース上の操作)

再び、Workato側へ戻り、[Next] を押して、「Test Agent」の画面へ移動します。そして、[Test agent] ボタンをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/30a696c1-6ca7-cdde-3a90-bc5adaa49e83.png)

テストが成功すれば、「Your agent is ready!」と表示されます。テストに失敗する場合、数分おいてから試してみてください。それでもエラーが続く場合は、エージェント側のログを確認してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/6a9e8944-2f3b-76ef-8dc9-b4e685030bf0.png)

OPAの一覧上でも、ステータスが「Active」となっていることが確認できるかと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3444315/54cce871-d096-e925-c1af-483670db2545.png)

# まとめ
まとめると、以下のようになります。

* OPA を使うことで、社内のリソースともシームレスに接続が可能
* On-prem group を使うことで、負荷分散や冗長構成も可能
* HTTPS 通信のみを使用して Workato のクラウドと接続（ファイアウォールの穴あけは通常不要）

# おわりに
いかがでしょうか？ OPAを使うことで、社内のリソースともシームレスに接続が可能になります。

Workato の導入・導入後の活用などでお困りの場合、Workato リセラーにご相談する方法もございます。お困りごとがございましたら、認定リセラーの[日立ソリューションズ](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato)へ是非ご相談ください。

# 参考リンク

* 株式会社 日立ソリューションズ
    * [Workato ご紹介サイト](https://www.hitachi-solutions.co.jp/rpa/sp/products/workato)
* Workato 公式サイト
    * [Accessing On-prem](https://docs.workato.com/on-prem.html)