Thunderbus for DataSpider Cloudを使ってみた ー クラウドからオンプレにセキュアにHTTPリクエストを投げる

これは、[NTTテクノクロス Advent Calendar 2020](https://qiita.com/advent-calendar/2020/ntt-tx) の9日目の記事です。

#1.はじめに

こんにちは、NTTテクノクロスの酒井です。
普段はDataSpider Cloudを利用するプロジェクトへの技術支援等を行っています。

今回はDataSpider Cloud環境とそれに付随するThunderbusを利用する機会があったので、これを使ってオンプレミス上のローカルPCに立てたHTTPサーバへGETリクエストを投げるまでの手順を書いてみようかと思います。

**Thunderbusとは？**

ThunderBusは、セゾン情報システムズ社の販売するソリューションの一つです。	

Thunderbusの機能は、クラウド上からオンプレのファイル/webサーバに対してのセキュアなアクセス方法を提供するというものです。これを使う利点は、**VPNの構築無しでオンプレとセキュアな通信ができる**という所です。<br>クラウド上で動作する「Thunderbus Server」と、オンプレ側で動かす「Thunderbus Agent」から構成されており、<br>Thunderbus Agentは、Thunderbus Serverに対してHTTPS/WebSocket通信で接続を保持します。<br>この接続を通じてクラウド側からオンプレ側に対するアクセスを可能にします。	

**・DataSpider Cloudとの関係は？**
[そもそもDataSpider Cloudとは？という場合はこちら](https://www.ntt-tx.co.jp/products/dataspidercloud/)

DataSpider CloudのAdvanceライセンスを利用することで<br>DSC上からThunderbusを利用することができるようになります。	

これを使用することでDSCで可能になるのは以下の３つです。	

① DSC上のエクスプローラ上にオンプレPCのフォルダをマウントする。
② オンプレ側のサーバにHTTPリクエストを送信する。
③オンプレ側のデータベースサーバに SQL文(SELECT文）を発行し、検索結果をDSCで受け取る。

以下に概要図を示します。	
![0.2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/c83eb819-c8fd-a287-34f1-cb02bfccdfa8.jpeg)

#2.構築手順

##2.1 Thunderbus Serverのログイン・設定手順

###2.1.1 フロント画面からのThunderbus Server 設定作成手順
さて、まずはDataSpider Cloudにログインしましょう。
[DataSpider Cloudログインページ](https://front.dataspidercloud.com/)

![0.1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/698f0c80-8044-b4f1-9a8c-4ed539c5557c.jpeg)

Thunderbusを利用するには、まずDSCのフロント画面上でThunderbusの設定を作成する必要があります。
フロント画面ログイン後、「連携サーバ管理」をクリックし、設定していくサーバを指定しましょう。

![0.3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/5d4c9bf6-0bd9-8bfd-cdd6-a2b6656456fd.jpeg)

サーバの詳細情報画面が表示されます。
右側のリストから「Thunderbus」をクリックしてください。
Basic認証ID、Basic認証パスワード欄に任意の文字列を入力した後、「保存」ボタンをクリックします。

![0.4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/b524e920-3e57-52b3-e274-779633fb6583.jpeg)

Thunderbusの設定が作成できました。
「BASIC認証ID」、「BASIC認証パスワード」「エンドポイント」の値はのちほど使うので、メモ帳などにメモしておきましょう。

![0.5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/6da5d005-4dcc-4a42-8a6b-69762328d7c5.jpeg)

###2.1.2.Thunderbus Server へのログイン・設定手順	
	
Thunderbus Serverへのログインは、サーバ管理画面から行います。
前手順で作成したThunderbusの設定画面から、「管理画面」ボタンをクリックしましょう。

![0.6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/13833901-baed-3270-13c0-89a8d99d5439.jpeg)

Thunderbus Serverの管理画面が表示されます。ログインID/パスワードを入力してログインしましょう。

![0.7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/036ec6cd-f897-d0dc-08c3-c70084487a60.jpeg)

ログインが成功すると、エージェント設定画面に遷移します。
ここで作成するのは、「Thunderbus Server」に接続してくる「Thunderbus Agent」の設定です。
画面中央に「＋新規作成」ボタンがありますので、これをクリックしましょう。

![0.8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/2ad5c721-9f42-1af5-45a4-0b60bf69c27d.jpeg)

エージェント設定編集画面が開きます。
表示名、IDに任意の文字列を入力しましょう。
使用エージェント欄は、このエージェントに対して何が実行できるかを指定するものです。
今回はローカルPC上のwebサーバにHTTPリクエストを送信するので、「HTTPエージェント」にチェックをいれてください。

![0.9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/d613b02a-72b8-bf38-fd24-0349d71e224e.jpeg)

エージェントが一覧に表示されていれば成功です。
![0.10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/0221f5c1-10fb-45ef-79ae-4bfa8773ef41.jpeg)

DSCからThunderbus Serverに接続するためのユーザを作成していきます。
画面上部の「ユーザ設定」をクリックした後、「＋新規作成」ボタンをクリックします。
![0.11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/b8f611e0-51a1-e6f3-85c3-1c7fb24fe4cb.jpeg)

ユーザ新規作成画面に遷移します。
ユーザ情報を入力し、前手順で作成したエージェントにチェックを入れたら「登録」ボタンをクリックしましょう。
![0.12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/5e21e85a-df7e-435e-3812-c6f98ea7e465.jpeg)

##2.2.Thunderbus Agentのインストール・設定手順
###2.2.1.Thunderbus Agentのダウンロードとインストール
Thunderbus AgentのダウンロードはDSCのフロント画面から行います。
「連携サーバ管理」内のサーバ詳細画面から「Thunderbus」をクリックし、「インストール」ボタンをクリックします。
![0.13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/7f41714b-d35e-99a9-b937-f4d12d7a4f88.jpeg)

インストーラダウンロード画面が表示されます。
実行するPCのOSに合ったインストーラをダウンロードします。（今回は64bit版をダウンロードします。）
![0.14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/aa67322b-252a-08a8-b15d-da68ac3a059d.jpeg)

ダウンロードしたファイルをダブルクリックするとインストーラが立ち上がります。
「次へ」をクリックしていき、インストールを完了させてください。
![0.15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/4b891e3f-9090-4668-2a5d-b91cf2ccf2d2.jpeg)


###2.2.2.Thunderbus Agentの起動と設定	
Thunderbus Agentをインストールすると、スタートメニューに登録されます。
「Thunderbus Agent for DataSpider」配下の「Thunderbus Agent」をクリックして起動しましょう。
Thunderbus Agentを起動すると、タスクバーにアイコンが表示されます。
アイコンを右クリックして、「管理画面」をクリックしましょう。
![0.17.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/9140777f-3015-9e2a-8b3f-a4eed1a988c5.jpeg)


Thunderbus Agentの管理画面が開きます。
接続のための基本設定として、エンドポイント／エージェントID／BASIC認証ID／BASIC認証パスワードが必要になります。
DataSpider Cloudのフロント画面およびThunderbus Serverの設定画面から情報を取得し、設定しましょう。
![0.18.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/e3506b9f-b8ed-b93f-6ecb-847a667ba2f9.jpeg)


【省略可】プロキシサーバを利用する場合は、「プロキシサーバーを使用する」にチェックを入れ、
「プロキシサーバ設定」リンクをクリックします。
![0.19.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/2e635bd8-d4a8-4135-9d8c-47cd63995fae.jpeg)

利用しているプロキシサーバの設定を入力し、「保存」を押しましょう。
![0.20.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/9f26d340-9edc-4c1d-83c0-a6fff564ef09.jpeg)

**【該当する場合のみ】**DataSpider Cloud上でIPアドレス許可設定を入れている場合は、
接続に使用するIPアドレスに対してThunderbusでの接続許可を入れる必要があります。
DSCのフロント画面から「IPアドレス許可設定」をクリックし、内容を確認しましょう。
![0.21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/03ade823-f0d2-5aaf-6f2e-613ee40211fd.jpeg)
Thunderbus Serverに接続します。
下図のカミナリ型のボタンをクリックすると接続が試行されます。
（成功した場合、カミナリが黄色に変化します。）
![0.22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/8419a6f4-09fe-cd57-a78a-8531c9d1c99d.jpeg)

Thunderbus Agentからの接続が成功した場合、Server側の接続状態が「接続中」に変化します。
![0.23.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/f0dbcada-8be4-0d4a-35fb-0b61d58a0e06.jpeg)

##2.3.（windows 10）webサービス（IIS）の有効化・初期設定

![1.1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/7aa19c62-e1fb-fec8-1fb6-c4f3ae4381cd.jpeg)

ThunderbusのHTTPエージェントの動作を確認するためには、
とにもかくにもローカル側にHTTPリクエストを受け付けるサーバが立っていなくては話になりません。
というわけで、windows上で動作するwebサービスであるIIS (Internet Information Service)を有効化していきます。
（ローカル側にアクセスできるHTTPサーバやDataSpiderServistaが構築してある場合、この手順は飛ばしていただいてかまいません。）

###2.3.1 IISの有効化	
IISの有効化は、コントロールパネルから実行します。
コントロールパネルから「プログラムと機能」＞ 「windowsの機能の有効化または無効化」を選択します。
windowsの機能ページが表示されますので、下にスクロールしていくと「インターネットインフォメーションサービス」という項目があります。<br>これにチェックを入れて「OK」ボタンをクリックします。
![1.3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/008843d7-7eb8-dd8b-b4d7-0b53213a2862.jpeg)
これでIISの有効化ができました。

###2.3.2 IISの初期設定
IISの設定を確認していきましょう。
スタートメニューを右クリックして、「コンピューターの管理」をクリックしてください。
コンピューターの管理画面が開いたら、左のペインから「インターネット インフォメーション サービス（IIS）マネージャー」を選択し、詳細を開きます。
画面中央の「サイト」を選択すると現在の設定が表示されます。
ここの「パス」タブに書いてあるのが公開用のフォルダです。（デフォルトでは%SystemDrive%\inetpub\wwwrootが設定されています。）
![1.5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/7384d44b-ba61-13c4-1c88-d3406b04da3c.jpeg)

公開用のフォルダ（上記「パス」で指定されたフォルダ）にHTMLファイルを配置します。
index.htmlという名前で保存しましょう。今回は動作確認なので、ファイルの中身は下図のようなもので構いません。
![1.6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/076064f6-bc27-1c66-05d7-d3dca8c8dba3.jpeg)

動作確認をしましょう。
ブラウザのアドレスバーに「http://localhost/」と打ち込んで以下のような画面が表示されればOKです。
![1.7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/fa6299fa-4836-4adf-b1c3-d9a50fc1d9eb.jpeg)

##2.4. Thunderbus Server / Agent（HTTPエージェント）の設定追加
###2.4.1 Thunderbus Serverの設定追加
Thunderbus ServerにHTTPエージェントに接続設定を追加します。
DSCのフロント画面からThunderbus Server Consoleに移動してください。
エージェント設定画面が表示されるので、作成してあるエージェントの表示名をクリックします。
![1.8.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/15618184-fc0e-a4db-9506-61c8e0eeff60.jpeg)

エージェント詳細画面が表示されます。
エージェント情報欄から「編集」をクリックしましょう。
![1.9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/e9771ce7-688a-eefd-c9f0-fce638dad07f.jpeg)

エージェント情報編集画面が表示されます。
使用エージェントの「HTTPエージェント」にチェックを入れて「保存」ボタンをクリックしてください。
（注意：利用可能なHTTPエージェントのライセンスが無い場合、エージェント欄にチェックボックスが表示されません。）
![1.10.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/f743fe15-7081-4996-1a4d-3cd2c17b6d13.jpeg)

###2.4.2 Thunderbus Agentの設定追加

Thunderbus Agentに設定を追加していきます。
オンプレ側のマシンにインストールされているThunderbus Agentを起動し、管理画面を立ち上げます。
「HTTPエージェント設定」タブから「＋」ボタンをクリックしましょう。
![1.11.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/b6bcf2c7-d9c5-e177-1767-808551ba718c.jpeg)

HTTPエージェント設定画面が開きます。
設定名（任意の文字列）とURL(2.3.2で作成したHTMLページのアドレス)を入力しましょう。
設定を入れたら「保存」ボタンをクリックします。
![1.12.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/12dcb4a3-725f-89f2-3842-cc4324b4cf75.jpeg)

HTTPエージェント設定一覧画面に戻ります。
HTTPエージェント設定が追加されたことを確認しましょう。
![1.13.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/e2521284-a711-729e-2220-034c0cd4d12b.jpeg)

##2.5. DSC上でのHTTPリクエスト実行
###2.5.1 HTTPリクエストのエンドポイント確認

DSCからThunderbusを通じてオンプレ側のHTTPサーバにリクエストを投げていきます。
これに必要となるエンドポイント(DSCからのHTTPリクエストの送信先)を確認していきましょう。
ThuderBus Agentを接続中にした状態でServer側の設定画面を表示させます。
![1.14.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/380497aa-cdbd-01a4-2a58-c71d8434a6b9.jpeg)

エージェントの詳細画面が表示されます。
「エージェント設定 ＞ HTTPエージェント設定」欄にURLが記載されていますので、こちらをコピーしましょう。
![1.15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/5a6cec7e-577c-4f42-6f3d-3a4c8e2252b5.jpeg)

###2.5.2 DSCでのグローバルリソース作成	

DSCからThunderbusを通じてローカル側にHTTPリクエストを送るには、
2.5.1で確認したURLを通信先に指定したグローバルリソースを作成する必要があります。
DSCのWebstudioを起動して、「コントロールパネル」から「ファイル ＞ 新規グローバルリソースの作成」を選択しましょう。
![1.16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/93be940d-718f-a4e4-6b7d-df1e55d3d587.jpeg)

新しいグローバルリソースの作成画面が表示されます。
「ネットワーク ＞ REST ＞ REST接続設定」を選択し「次へ」をクリックするとREST接続設定作成画面に遷移します。
「URL」欄に2.5.1で確認したThunderbus ServerのHTTPエージェントのURLを入力し、「完了」ボタンをクリックしましょう。
![1.17.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/608cae77-5986-0ff0-2604-b1f6ff7d76bd.jpeg)

###2.5.3 DSCでのHTTPリクエスト送信スクリプト作成

GETリクエストを送信するスクリプトを作成していきます。
webstudioのデザイナから新規スクリプトを作成し、ツールパレットから「ネットワーク」選択してください。
カテゴリ内の「REST」フォルダから「GET実行」をドラッグしてスクリプト上に配置しましょう。
![1.18.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/6449d69a-b18a-50ef-4536-d3f2aafe1c98.jpeg)

GET実行アイコンの設定は以下のようになります。
「必須設定」タブの「接続先」に作成したグローバルリソースを指定します。
「レスポンス設定」タブの「データ取得先」を「ファイル」にし、ファイルパスにDSCエクスプローラ上の任意のパスを指定します。
「認証設定」タブの「認証」欄を「ベーシック認証」とし、ユーザ/パスワードはThunderbus Serverのユーザ名を指定します。
![1.20.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/880e9bdb-87ed-3494-41dd-f3524ae1e60a.jpeg)

設定が完了しましたので、スクリプトを実行していきます。
画面上のデバッグ実行ボタンをクリックするとスクリプトが実行されます。
実行後、「スクリプトの実行に成功しました。」というメッセージが表示されることを確認してください。
![1.21.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/401a805f-e81d-ff68-6eb9-4cc7bac94c57.jpeg)

ローカル側のHTTPサーバから正常にレスポンスを取得できているかを確認しましょう。
スクリプトの出力対象に設定したファイルの中身を確認します。
下図のようにHTMLの内容が書き出されていれば、Thunderbusを通じてローカル側のHTTPサーバにアクセスできています。
![1.22.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/924180/c4507f96-dc75-9481-8c7e-e7f81e21290d.jpeg)


**※注意**
DataSpider Cloudのバージョンアップなどにより、画面の一部が変更となっている場合があります。