RPAエンジニアの雑記

RPA(Blue Prism)について色々記載してます。

(BluePrism)ポケモン図鑑を作る ~Part14 AWSの環境構築編~

お疲れ様です。おむおむです。

※2020/07/25追記
newgraduate19-rpa.hatenablog.com

なかなか梅雨明けないですねぇ。
洗濯物が乾かないからつらいです。

さて、前回まででGASを途中まで作ってました。
newgraduate19-rpa.hatenablog.com
で、完成させたいんですが、
その前にAWSコンポーネント
用意したほうが諸々都合がよいので、
先にこちら書かせていただきます。

読みづらくてスミマセン...
f:id:newgraduate19:20200716215741p:plain

今回は、AWS上に
アプリケーションサーバランタイムリソース
そしてSQL Serverをデプロイしてみたいと思います。

EC2でインスタンスを作成する

概要はこちら↓
aws.amazon.com
私は所得税が引かれ始め、非常に貧乏な新卒2年目なので、
AWSはなるべく無料枠で済ませようと思います。
f:id:newgraduate19:20200713092329p:plain

使用するAMIは、
Microsoft Windows Server 2019 Baseです。
f:id:newgraduate19:20200713092403p:plain

インスタンスの作成自体は、
デフォルトのままでよいかと思います。

テキトーにポチポチしていったら
数分でWindows Serverが使えるようになります。
クラウド最高!

セキュリティグループを設定する

次に、セキュリティグループを設定します。
ざっくり言うと、設定内容を共有できる
ファイアウォールみたいなもんです。

基本的にはホワイトリスト形式で
通信を許可するポートとIPアドレスを追加していきます。

今回開いておく必要があるのは、以下の2つです。
3389番(RDP):自分のIPアドレスのみ
8181番(ランタイムリソース):Any
f:id:newgraduate19:20200713100207p:plain

Elastic IPの関連付け

最後に、Elastic IPを設定します。
デフォルトの状態だと、作成したインスタンス
VPCの中でDHCPを使用して
動的にプライベートIPアドレスが付与されている状態なので、
静的にグローバルIPを与えることで
外部ネットワークからもアクセスできるようにします。

唯一気を付けなければならないことは、
Elastic IPは、関連付けられたインスタンス
停止中の場合のみ料金が発生することです。

「せっかく貴重なIPv4アドレスを割り振ったんだから、
有効に活用してくれよな!」

というAWS側からのを感じ取ってください。
f:id:newgraduate19:20200713102412p:plain

詳しくはこちらをチェック。
aws.amazon.com

SQL Serverインスタンス作成

別にEC2内にSQL Serverを入れてもいいんですが、
せっかくなんでRDSを使用してみようと思います。
aws.amazon.com
こちらも、Auto Scalingとかは無効にして、
なるべくお金がかからないように気を付けます。

ちなみに、VPCが2つ以上のAZにないと
インスタンスを作成できないんで気を付けてください。
docs.aws.amazon.com

APサーバとRRの構築

ここからは実際にWindows Serverの中身をいじっていきます。

まず、(お好みで)日本語の言語パッケージをインストールします。
既に以下の記事でご丁寧に説明いただいているので
詳細はこちらをご覧ください。↓
capybara-engineer.hatenablog.com

次に、Blue Prismをインストールします。
これはまあ、ウィザードに従ってぽちぽちと。

加えて、データベース管理用に
SSMSSQLCMDをインストールしておきます。
docs.microsoft.com
docs.microsoft.com
インストーラーを叩いて、
ウィザードの通りに進めればOKです。

ちなみに、SSMSからつなぐときの「サーバー名」、
およびSQLCMDの「-S」のあとのサーバー名は、
RDSのエンドポイントを設定すればOKです。
f:id:newgraduate19:20200716203707p:plain
f:id:newgraduate19:20200716203710p:plain

DBのRESTORE

自分の場合はローカルで
DBの作成等作業してたので、
一旦DBをRDS上に移行する必要があります。

何らかの方法で、ローカルのDBに以下のクエリを送ってください。

>BACKUP DATABASE (データベース名) TO DISK = '(任意のファイルパス).bak';

こうすることで、DBのバックアップファイルが作れます。

そして、作成した.bakファイルを
何らかの方法でEC2上に移行し、
RDSに対して以下のクエリを送信します。

>RESTORE DATABASE (データベース名) FROM DISK = '(バックアップファイルパス)';

ここでのデータベース名は、
.bak作成時のデータベース名と一致する必要があります。

加えて、.bakファイルは
ユーザープロファイル以外の場所に格納しましょう。
stackoverrun.com

Blue Prismの設定

ゴールが見えてきた・・・!
既に折り返しは過ぎてます、頑張りましょう。

諸々インストールが完了したら、
Blue Prismを起動し、接続構成を設定します。

設定内容は以下の通り。

接続名:任意
接続タイプ:SQL Server(SQL Server認証)
データベースサーバー:RDSのエンドポイント
データベース名:任意
ユーザー名:SQL Serverインスタンス作成時に設定した管理者名
パスワード:SQL Serverインスタンス作成時に設定した管理者のパスワード

恐らく、一般的なアプリケーションサーバ
同様の設定内容ではないでしょうか。

違いとしては、追加オプションの設定が面倒だったので
Windows認証を無効にしたため、
SQL Server認証を使用しているというぐらいですかね。

あとはadminユーザのパスワードを変更して、
ライセンスを食わせてやればOKです。

今回はランタイムリソースさえ公開できていれば、
アプリケーションサーバは不要ですので、
ここまで終わったら以下のコマンドでRRを起動しておきます。

>Automate.exe /resourcepc /public /invisible

そして、Windows側のファイアウォール
8181番ポートの接続をAnyで許可しておきます。

EC2側でnetstatしてみるとこんな感じ。

C:\>netstat -nao | findstr 8181
  TCP    0.0.0.0:8181           0.0.0.0:0              LISTENING       2724
  TCP    [::]:8181              [::]:0                 LISTENING       2724
  TCP    [::1]:50331            [::1]:8181             TIME_WAIT       0

うん、ちゃんと8181番ポートをリッスンしてますね。

そして、ホスト側からPsPingを叩くとこんな感じ。

C:\>psping (EC2のIPアドレス):8181

PsPing v2.10 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

TCP connect to (EC2のIPアドレス):8181:
5 iterations (warmup 1) ping test:
Connecting to (EC2のIPアドレス):8181 (warmup): from 192.168.43.143:56545: 46.49ms
Connecting to (EC2のIPアドレス):8181: from 192.168.43.143:56546: 45.15ms
Connecting to (EC2のIPアドレス):8181: from 192.168.43.143:56547: 47.75ms
Connecting to (EC2のIPアドレス):8181: from 192.168.43.143:56548: 47.87ms
Connecting to (EC2のIPアドレス):8181: from 192.168.43.143:56549: 46.10ms

TCP connect statistics for (EC2のIPアドレス):8181:
  Sent = 4, Received = 4, Lost = 0 (0% loss),
  Minimum = 45.15ms, Maximum = 47.87ms, Average = 46.71ms

ちゃんと通りますね。

ちなみにPsPingは
Blue Prism Portalにもドキュメントがあるぐらい
いい感じのツールです。
MS公式だし。

ドキュメント
https://portal.blueprism.com/system/files/documents/How%20to%20use%20PsPing%20to%20test%20ping%2C%20latency%20%26%20bandwidth%20between%20Blue%20Prism%20Components.pdfportal.blueprism.com
本体のダウンロード
docs.microsoft.com

ここまで出来たら、あとはOK!
次回の記事でGASを完成させます!

まとめ

・ナウでシャレオツでダンモなAWS、楽しい☆
・Blue Prism WorldのBlue Prism Cloudの講演、楽しみ☆

カナブンにアースジェットめちゃくちゃ効んですね。
網戸越しに洗濯物についてたカナブンに3秒ほど噴射したら
お亡くなりになりました。