LoginSignup
1
0

More than 1 year has passed since last update.

MuleSoftでAWS EC2インスタンス操作を自動化

Posted at

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はコネクターが!
さっそくこれを追加して試してみることにします。

image.png

コネクターのメソッド

公式ドキュメントに説明がありますので、詳細はそちらを参照してもらえればと思いますが、非常に多くの操作に対応しています。

image.png image.png image.png image.png

インスタンスのステータス確認

まずは、インスタンスのステータス確認をしてみます。(AWSインスタンスの操作って、起動と開始、停止と休止と終了って、紛らわしいですよね・・・)
Anypoint Studioでこんな感じで組んでみます。
image.png

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でユーザーを作っておき、ここにキーを設定します。
image.png

そして、「Describe instance status」操作の設定。
Connector Configurationには上で作成した設定を指定します。
あとは、インスタンスIDの指定のみ。簡単ですね!
image.png

Transform Messageについては、とりあえず、PayloadをすべてJSONにするようにしています。

image.png

実行結果

Advanced REST CLientで実行してみるとこんな感じになります。
image.png

MuleSoftからAWS EC2の操作は非常に簡単

この記事ではインスタンスの状態の参照だけしてみましたが、
インスタンスの開始等も同じ感じで設定だけでできます。

Anypoint StudioはAutomation 360より少し難しいですが、一度マスターしてしまえばRest Web Serviceから起動できるフローの作成ができたりと、RPAで足りない部分はAPI/IntegrationプラットフォームであるMuleSoftで補う。
逆に、MuleSoftで足りない部分(画面操作が必要なアプリなどの自動化)はRPAで行うというということができますので、
ぜひ試してみて頂ければと思います。
MuleSoftの検証環境も30日限定ですが、何度でも作れます!

1
0
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
1
0