CookBook

物理マシン 1 台で Resin のクラスタリング環境を構築する

投稿日:2018-07-11 更新日:

この CookBook では、物理マシン 1 台で Resin のクラスタリング環境を構築する手順について紹介しています。
Resin のクラスタリングを構築するには通常複数台のマシンが必要ですが、Docker を利用し 1 台のマシン上でクラスタリング環境を構築する手順を紹介します。

レシピ

  1. Resin の Docker Image を作成する
  2. Docker Network を作成する
  3. Resin の Docker コンテナを実行する

1. Resin の Docker Image を作成する

Dockerfile

resin-admin に admin/password でログインできるようにし、app_servers に「resin1:6800 resin2:6800 resin3:6800」を指定し、3 台のクラスタリング環境を構築するよう設定しています。
(「resin1」「resin2」「resin3」という DNS は docker run する際に割り当てます。)

myresin というタグでビルドします。

2. Docker Network を作成する

docker network create -d bridge --subnet=172.16.0.0/24 resin-cluster

ブリッジネットワーク、サブネット = 172.16.0.0/24 で Resin クラスタ用のネットワークを作成します。
サブネットは 172.16.0.0/24 でなくともよいですが、resin.properties の app_servers に指定する IP アドレスは一般的な Private IP の範囲内の IP である必要があるため、今回は上記のサブネットで作成します。

docker run する際にここで作成した resin-cluster ネットワークを使用するように指定し、同一ネットワーク内に 3 台の Resin が実行される環境を構築します。

3. Resin の Docker コンテナを実行する

下記のコマンドを実行し、resin-cluster ネットワーク内で Resin サーバを 3 台実行します。

docker run --net=resin-cluster --name resin1 -itd -p 8080:8080 myresin:4.0.57
docker run --net=resin-cluster --name resin2 -itd -p 8081:8080 myresin:4.0.57
docker run --net=resin-cluster --name resin3 -itd -p 8082:8080 myresin:4.0.57

resin1, resin2, resin3 という名前で起動することにより、DNS が振られます。
そのため、それぞれのコンテナ内から resin1, resin2, resin3 という名前で各コンテナの Private IP を解決可能です
また、コンテナ間の通信も自由に行う事ができます。

下記のコマンドを実行し、各 Resin サーバを起動します。

docker exec resin1 service resin start
docker exec resin2 service resin start
docker exec resin3 service resin start

ログを参照したい場合下記のコマンドを実行します。

docker logs resin1
docker logs resin2
docker logs resin3

下記の URL にアクセスし、Resin のクラスタリングが構築できていることを確認できます。

http://localhost:8080/resin-admin (1 台目)
http://localhost:8081/resin-admin (2 台目)
http://localhost:8082/resin-admin (3 台目)

(localhost は Docker を実行しているマシンの IP アドレスに置き換えてください)

まとめ

このように、Docker を利用することで、1 台のマシン上で Resin のクラスタリング環境を構築することができます。
この CookBook では Resin を利用しましたが、同様に docker network を利用することで、Payara など他のサーバのクラスタリングを構築することもできます。
是非ご活用ください。

-CookBook

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

IM-LogicDesignerを利用して、IM-Workflow完了案件の確認対象者を削除する

このCookBookでは、IM-LogicDesignerを利用して、IM-Workflow完了案件の確認対象者を削除する方法について紹介しています。 完了案件でも、確認対象者が確認することはできます …

no image

特定フローの特定ノードで、処理中の案件に対し、任意の処理対象者を追加する方法

このCookBookでは、LogicDesignerを利用して、特定フローの特定ノードで、処理中の案件に対し、任意の処理対象者を追加する方法について紹介しています。 人事異動で担当者が追加となり、複数 …

no image

差戻し先ノードの処理対象者を再展開するフローを作成する方法

このCookBookでは、差戻し先ノードの処理対象者を再展開するフローを作成する方法について紹介しています。 IM-Workflowの仕様として、差戻し先ノードではそのノードを以前に処理した人のみが再 …

no image

IM-LogicDesignerのIM-ContentsSearch コンテンツ登録タスク利用例

このCookBookでは、IM-LogicDesignerのIM-ContentsSearch コンテンツ登録タスクの利用例を紹介します。 IM-BISで作成したワークフローの案件終了処理で、画面項目 …

no image

フォーム内の入力値を案件名に自動入力する方法

このCookbookでは、IM-FormaDesignerで作成した申請画面から入力内容を案件名に設定する方法を紹介します。 この方法を利用するとIM-FormaDesignerの入力内容をIM-Wo …

まだデータがありません。

RSSRSSRSSRSS