MuleSoftからAWS EC2インスタンスをコントロールする
物凄~く久しぶりの投稿になりますが、MuleSoftについての記事になります。
連携検証用にAutomation AnywhereのAutomation 360オンプレミス環境をAWSに建てようと考えたのですが、
Automation 360って、検証用に最低限の環境でと考えてもメモリ16GB程度ないと厳しいんですよね。CPUも2コアでは厳しい感じです。
そうすると、AWS LightSailではそこそこのコストもかかってきてしまうと。
今回の環境は、それほど多く利用するわけではないので、毎朝スケジュールしたBotを稼働させる時間帯と、あとはオンデマンドで使う時だけ起動できれば良いのでEC2 VPCにして、毎朝自動的に開始・停止できるようにしようかと考えています。
「Amazon EC2 Connector - Mule 4」
MuleSoft Exchangeには、数多くのコネクターが既に準備されています。
Anypoint Studioから「Amazon」をキーワードに検索してみると、EC2はコネクターが!
さっそくこれを追加して試してみることにします。
コネクターのメソッド
公式ドキュメントに説明がありますので、詳細はそちらを参照してもらえればと思いますが、非常に多くの操作に対応しています。
![]() |
![]() |
![]() |
![]() |
インスタンスのステータス確認
まずは、インスタンスのステータス確認をしてみます。(AWSインスタンスの操作って、起動と開始、停止と休止と終了って、紛らわしいですよね・・・)
Anypoint Studioでこんな感じで組んでみます。
HTTPリスナーをつかって、/getStatusを受けます。
汎用化する場合は、クエリーパラメータまたはURIパラメータでインスタンスIDを受ける形になると思いますが、とりあえずは固定で。
2つめのステップがEC2コネクターの「Describe instance status」操作です。
このステップの内容は後で説明します。
3つめのステップをTransform Messageにしています。
ひとつ前のEC2コネクターの戻りがJavaオブジェクトとして戻ってきますので、
その情報をわかりやすく表示するためにJSONに変換しています。
EC2コネクターを使う
まず、EC2とつなぐための設定「Amazon EC2 Configration」を作ります。
必要となるのは「Access Key」と「Secret Key」です。
EC2管理コンソールのIAMでユーザーを作っておき、ここにキーを設定します。
そして、「Describe instance status」操作の設定。
Connector Configurationには上で作成した設定を指定します。
あとは、インスタンスIDの指定のみ。簡単ですね!
Transform Messageについては、とりあえず、PayloadをすべてJSONにするようにしています。
実行結果
Advanced REST CLientで実行してみるとこんな感じになります。
MuleSoftからAWS EC2の操作は非常に簡単
この記事ではインスタンスの状態の参照だけしてみましたが、
インスタンスの開始等も同じ感じで設定だけでできます。
Anypoint StudioはAutomation 360より少し難しいですが、一度マスターしてしまえばRest Web Serviceから起動できるフローの作成ができたりと、RPAで足りない部分はAPI/IntegrationプラットフォームであるMuleSoftで補う。
逆に、MuleSoftで足りない部分(画面操作が必要なアプリなどの自動化)はRPAで行うというということができますので、
ぜひ試してみて頂ければと思います。
MuleSoftの検証環境も30日限定ですが、何度でも作れます!