MuleSoft Standalone Runtimeの簡単セットアップガイド(EC2編)

デプロイメントオプションの一つであるStandalone環境でのMuleSoftランタイムの構築方法とコントロールプレーン接続について詳しく解説します。

◇はじめに

MuleSoftの需要が急速に高まっていると感じます。Muleフローの開発に関する情報は多く見かけますが、そのフローを実行するためのRuntimeの設定方法についてはあまり取り上げられていません。
この記事では、デプロイメントオプションの一つであるStandalone​​環境でのMuleSoftランタイムの構築方法とコントロールプレーン接続について詳しく解説します。
初心者でも簡単にセットアップができるよう、ステップバイステップのガイドを用意しましたので、ぜひご活用ください。
※実行コマンドは開発環境によって多少異なりますので、変更してください。

◇環境/ファイル準備

AWS EC2:インスタンスタイプ(最低限:t3.small)、OS:Red Hat Linux

Anypoint Platformの開発環境
以下のサイトから取得
https://anypoint.mulesoft.com/login/signup

Mule Runtime ファイル:「mule-ee-distribution-standalone-4.7.2」
以下のサイトから取得
https://www.mulesoft.com/lp/dl/anypoint-mule-studio

JDK ファイル:「OpenJDK17U-jdk_x64_linux_hotspot_17.0.12_7.tar」
以下のサイトから取得
https://adoptium.net/temurin/releases/?os=linux&arch=x64&package=jdk&version=17

※本記事はJDK17を利用しますが、対応環境に合わせて取得してください。
 MuleRuntimeの対応するJDKバージョンはこちらから確認できます。 

※本記事では実行ユーザーへsudo権限を付与し、コマンドを実行しております。
 sudo権限を付与する方法はこちらになります。

※本記事ではMule Runtimeのインストール方法の紹介のため、ライセンスファイルのインストール方法は記載しておりません。

◇Javaインストール

①JDKファイルの解凍先となる、フォルダを作成

$ sudo mkdir /user/lib/jvm

②JDKファイルを解凍

$ sudo tar -xvzf ~/install_files/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz -C /usr/lib/jvm/
$ sudo ln -s /usr/lib/jvm/ jdk-17.0.10+7 /usr/lib/jvm/default

③プロファイルコマンドの作成

$ sudo vi /etc/profile.d/jdk.sh

jdk.sh の内容は以下の通り
export JAVA_HOME=/usr/lib/jvm/default
export PATH=$JAVA_HOME/bin:$PATH
jdk.sh
④スクリプトの読み込み

$ source /etc/profile.d/jdk.sh

⑤javaバージョンの確認

$ java -versions

◇Mule Runtimeインストール

①Mule Runtimeファイルの解凍先となる、フォルダを作成

$ sudo mkdir /opt/mule

②Mule Runtime の解凍

$ sudo tar -xvzf ~/install_files/mule-ee-distribution-standalone-4.7.2 -C /opt/mule
$ ln -s /opt/mule/mule-enterprise-standalone-4.7.2/ /opt/mule/

③Unixデーモンで登録(rootユーザで実行)​

$ /opt/mule/default/bin/mule install

④System service の環境変数ファイルの作成

$ sudo vi /etc/sysconfig/mule

内容は以下の通り
PATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/lib/jvm/default/bin
環境変数ファイル
⑤system service ファイルの変更

$ sudo vi /etc/systemd/system/mule_ee.service

[Unit]
Description=Mule Enterprise Edition
After=syslog.target
[Service]
Type=forking
EnvironmentFile=/etc/sysconfig/mule //この行を追加
ExecStart=/opt/mule/mule-enterprise-standalone-4.7.2/./bin/mule start sysd
ExecStop=/opt/mule/mule-enterprise-standalone-4.7.2/./bin/mule stop sysd
KillMode=control-group
Environment=SYSTEMD_KILLMODE_WARNING=true
[Install]
WantedBy=multi-user.target
mule_ee.service
デーモンの再適用

$sudo systemctl daemon-reload

◇wrapper.confファイルの設定

①環境変数の追加
# Mule Application Environment Variables
wrapper.java.additional.30=-Dmule.env=dev
wrapper.conf
②ヒープサイズの変更
# Initial Java Heap Size (in MB) 
wrapper.java.initmemory=2048 (※希望の値)
# Maximum Java Heap Size (in MB)
wrapper.java.maxmemory=4096(※希望の値)
wrapper.conf

◇Mule Server を Runtime Manager に登録/起動確認

①ビジネスグループの Client Id/Client Secret を取得しwrapper.confに登録

wrapper.conf内を以下のように変更
wrapper.java.additional.21=-Danypoint.platform.client_id=(取得した client_id)
wrapper.java.additional.22=-Danypoint.platform.client_secret=(取得した client_secret)
wrapper.conf
②サーバーの追加
以下の図のようにRuntime ManagerのAdd serverボタンからサーバーを入力し、サーバー登録コマンドを取得し、binで実行

$ cd /opt/mule/default/bin
$ (上記の画像の「Copy Command」を押下し、貼り付け実行してください)

③Mule サーバーの実行/停止

# 開始:Running(緑点灯)
$ sudo systemctl start mule_ee
# 停止 :Disconnected(消灯)
$ sudo systemctl stop mule_ee

※サーバーの起動の状態は下記URL先の画像をご参照ください。
https://docs.mulesoft.com/jp/runtime-manager/servers-actions

◇おわりに

今回は、Mule RuntimeをAWS EC2にインストールし、サーバーを構築する手順について解説しました。
既存の環境や要件によって構成を調整する必要がある場合もありますが、この記事が一つの参考になれば幸いです。

また、本記事ではMule Runtimeのインストール方法に焦点を当てており、ライセンスファイルのインストール方法については記載しておりませんのでご注意ください。
この記事を通じて、MuleSoftの導入がよりスムーズに進むことを願っています。

最後までお読みいただき、ありがとうございました。