1. はじめに
-
ハイブリッド統合(iPaaS)における課題:オンプレミス資産の安全な活用
企業内のIT基盤が、クラウドとオンプレミスの混在環境となっています。このようにクラウドとオンプレミスで重要なシステムが稼働するようになると、クラウドからオンプレミス環境への安全なアクセスが課題となっています。 -
なぜ「Edge Runtime」が必要なのか?(ファイアウォール越えとセキュリティのメリット)
IBM webMethods Hybrid IntegrationのEdge runtimeは、クラウドとオンプレミスをまたぐハイブリッド環境において、データの処理を「システムのすぐそば(Edge)」で実行するための重要なコンポーネントです。
Edge runtimeは自社(オンプレミス)のネットワーク内にデプロイされて実行されます。
Edge runtimeは、外部(SaaS側)からアクセスするのではなく、Edge runtimeからSaaS側に連携するセキュアなハイブリッド接続(アウトバウンド接続)で連携が可能です。 -
本記事のゴール:IBM webMethods Hybrid Integration(SaaS)からオンプレミスMQへのセキュアなアクセス手順を解説します。
2. 構成の概要と前提条件
-
必要な環境(コンポーネント)
- IBM webMethods Hybrid Integration (SaaS) 環境
Workflowを作成し、Edge runtimeで稼働しているMQにアクセスするFlow Serviceを呼び出します - Edge Runtime実行環境(Docker / Linux等:本記事では、WindowsのWSLにDockerを構成しています)
Flow Serviceを作成し、MQコネクターを使って、MQにアクセスします - 接続対象のIBM MQ
本記事では、Docker上のMQにキューマネージャー、キューを構成しています
- IBM webMethods Hybrid Integration (SaaS) 環境
3. MQの導入(Dockerコンテナに導入)
-
MQのDockerイメージの取得とコンテナの起動
-
docker pullコマンドによるイメージの取得は、以下のコマンドで実行します。
docker pull icr.io/ibm-messageing/mq:latest- コンテナ間でメッセージのやり取りを行うために、カスタムネットワークを作成します。今回は、edge-networkという名前で作成します
docker network create edge-network-
docker run コマンドによるコンテナ起動
下記コマンドによって、キューマネージャーを起動します
docker run \ > --name QM1 \ # コンテナ名:QM1 > --detach \ # コンテナをバックグラウンドで起動。 > --volume qm1data:/mnt/mqm \ # > --publish 1414:1414 \ # デフォルトで作られるリスナのポート:1414をホストから転送 > --publish 9443:9443 \ # 管理コンソールのポート:9443をホストから転送 > --env LICENSE=accept \ # ライセンスに同意。 > --env MQ_QMGR_NAME=QM1 \ #デフォルトで作られるキューマネージャ名:QM1 > --env MQ_APP_USER=app \ # 一般ユーザー名:app > --env MQ_APP_PASSWORD=passw0rd \ > --env MQ_ADMIN_USER=admin \ #adminユーザー名:admin > --env MQ_ADMIN_PASSWORD=passw0rd \ > --network edge-network > コンテナイメージIDhttps://localhost:9443/ibmmq/console -
4. MQの構成
-
今回はデフォルトで作成されるDEV.QUEUE.1を使います
-
Edge runtimeから接続するためのチャネルの作成
今回は、QM1.SVRCONNチャネルを作成します。コンソールの、Applicationsタブを開きます。

-
Custom createを選択し、以下を入力します。
項目 値 Channel name QM1.SVRCONN MCA user ID app -
まず、Allowをクリックします、次に、Client application user IDをクリックして、Nextをクリックします。

-
以下の値を入力して、Createをクリックします。
項目 値 Channel name QM1.SVRCONN Client user ID app -
QM1.SVRCONNのチャネルのAddress Mapを追加します。
Channel authenticationを選択し、Createをクリックします。

-
以下の値を入力して、Createをクリックします。
項目 値 Channel name QM1.SVRCONN Address * -
appのユーザーに対する、Queue Managerアクセスの許可の設定
QM1の管理画面から、View Configurationをクリックします。

-
DEV.QUEUE.1にappからのアクセス許可をおこないます。
Queueタブをクリックして、DEV.QUEUE.1の右側の三点リーダーをクリックして、View configurationをひらきます。

5. Edge Runtimeのセットアップ
IBM webMethods Hybrid Integration(以下、IWHI)におけるEdge runtime(エッジ・ランタイムは、クラウド上のiPaaS環境で開発したサービスを、ユーザーのオンプレミス環境やプライベートクラウド環境(エッジ)で直接実行するための軽量なコンテナ実行エンジンです。
- Edge runtimeの登録手順
- IWHIにログインし、Home画面から、Integration runtime managementをクリックします。
- 右上のRegister runtimeをクリックし、Edge runtimeをクリックします
- Container registry authenticationの所をクリックして、Generate Credentialsをクリックします。
- Container registry loginコマンドが出るので、クリップボードにコピーします。
- WindowsのWSLのUbuntsuの画面を開き、クリップボードにコピーした、
docker loginコマンドをペーストします。
- 次に、Get Edge runtime imageのコマンドをコピーします。
- 再度、WindowsのUbuntsuの画面に、
docker pullコマンドをペーストします。
Edge runtimeの11.2.4がダウンロードされました
- IWHIの画面に戻り、Nextボタンをクリックします。
- Edge runtimeの名前を入力して、Nextをクリックします。
- Add metadataのところは、そのままで、Nextをクリックします。
- Start Pairingボタンをクリックして、Edge runtimeのPairingのコマンドを表示させます。
- 表示されている、docker runのコマンドをコピーします。
- WindowsのUbuntsuの画面にコマンドをペーストしますが、--name=MQ_ERTの前に、--network=edge-networkを加えて実行します。
- Pairingがうまくいくと、Success画面が表示されます。CloseボタンでEdge runtimeの登録を終了すると、以下のように、ReadyのStatusになります。
- Edge runtimeの登録は以上で完了です
- IWHIにログインし、Home画面から、Integration runtime managementをクリックします。
6. Flow Serviceの作成
Flow Serviceは、Edge runtime上で稼働するデータの変換やマッピング、業務ロジックの実行をノーコード/ローコードで定義した一連の処理プロセスを指します。
ハイブリッドな実行(Develop Anywhere, Deploy Anywhere): クラウド上のWebブラウザベースのインターフェースで開発(デザイン)し、実行場所として「Cloud Runtime(クラウド)」か「Edge runtime(ローカル)」かを自由に選択できます。
オンプレミス資源への直接アクセス: クラウドからは直接アクセスできない社内ネットワーク内のデータベース、ERP(SAPなど)、レガシーシステムに対して、Edge runtime上のフローサービスから直接接続できます。
-
Flow Serviceの作成手順
-
Flow Serviceを作るためのプロジェクトを作成します
右上にある、New Projectをクリックし、Createを選択します。

-
プロジェクトの初期画面がでるので、左側のFlow Serviceを選択した後、+ボタンでFlow Serviceを作成します。

-
Edge runtime上で稼働させるFlow Serviceをつくるので、Deploy Anywhere Flow Serviceを選択した後、Createをクリックします。

-
MQにPutするためのメッセージを格納する変数を定義します。
Define I/Oをクリックして、変数定義画面をひらきます。

-
MQに接続するための情報として、Accountの作成をおこないます。
右側の人のアイコンをクリックした後、Configure Accountsを選び、Create Account mannuallyをクリックします。

-
NameにAccountの名前を入力します。今回は、IBMMQ_appと入力し、Default runtimeにMQ_ERTが選択されていることを確認します。

-
画面を下にスクロールして、Accountの情報を入力していきます。入力が終わったら、Nextボタンをクリックします。
項目 値 Host name QM1 Queue manager name QM1 Queue name DEV.QUEUE.1 User id app Server connection channel QM1.SVRCONN - Advanced settingの画面はそのままNext
- アカウントの情報が、Edge runtime(MQ_ERT)と同期されます。同期が終わったら、Nextボタンをクリックします。
- Test Connectionで接続テストをおこないます。
- テストが正常に終了すると、Success:Test Account is successfulが表示されます。
- Enableボタンで完了させます。
- 最後に、Doneで終了させます。
- ①の横のType to choose actionを選択して、Add Custom Actionを選択します。
- ①Accountの画面は、以下を入力します。
項目 値 Action name MQPut Default runtime MQ_ERT(デフォルトで選択されてます) Connect to account IBM MQ IBMMQ_app 項目 値 Input field name Format Value MQSTR
7. Workflowの作成
Workflowは、クラウド上の「IBM webMethods Hybrid Integration」という上位レイヤーに位置し、Edge Runtimeはその配下で動くコンポーネントとして機能します。
WorkflowからEdge Runtimeを呼び出す際、Workflow側ではEdge上の処理を 「1つのコネクター(サービス)」 として扱います。
-
Workflow側(クラウド): 「オンプレミスのMQにデータを送る」というステップをWorkflow内に配置します。
-
Edge Runtime側(オンプレミス): 実際にMQと通信するための詳細なロジック(フローサービス)を保持しています。
-
連携: Workflowが実行されると、クラウドからEdge Runtimeへ指示が飛び、Edge RuntimeがローカルのMQに対してメッセージをPut/Getします。
ポイント: Edge Runtimeはクラウドに対して「アウトバウンド(内から外)」の通信で接続を維持するため、外部からオンプレミス環境へ向けてファイアウォールのポートを開放する必要がなく、安全にWorkflowからの指示を受け取れます。
-
Workflowの作成手順
- webMethods Integrationの画面から、Workflowを選択し、+ボタンで新規にWorkflowを作成します。
- 新規にWorkflowを作成するので、Create New Workflowを選択します。
- 右側にあるコネクター一覧の一番上の入力エリアで、MQと入力し、MQPutFlowServiceを検索します。そのご、MQPutFlowServiceをドラッグ&ドロップで、下記の図のように配置します。
- 開始のアイコン上にマウスを持っていくと、歯車がでるので、歯車をクリックします。
- トリガー一覧が出ます。Webhookトリガーを選択します。
- Webhookを選択したら、Nextボタンが押せるようになるので、Nextをクリックします。
- Bodyのところまで、下にスクロールし、以下を入力します。
{ "MQInputStr":"Hello MQ World" }- Webhook authenticationのWebhook Keyの右側にある、Generate Tokenをクリックして、トークンを生成します。そのあと、Autoconnect Return Sync on WebhookをOnに設定して、Nextをクリックします。
- Webhook URLが作成され、Bodyには、先ほど定義したMQInputStrが入っています。
- DoneボタンでWebhookの設定を閉じます。
- MQPutFlowServiceのアイコンにマウスをフォーカスして、歯車を出し、歯車をクリックします。
- Select Integration runtimeのところは、MQ_ERTを選択し、Nextをクリックします。
- $request-Webhookのbodyを展開し、MQInputStrを右側の、MQPutFlowServiceのMQInputStrにドラッグ&ドロップでマッピングします。次にNextをクリックします。
- この画面でテストができるので、Testボタンをクリックしてテストします。
- Message tested successfullyが表示され、実行日時もでたら、成功です。Doneボタンで閉じます。
- MQPutFlowServiceとReturn Data on Sync Webhookをつなぐために、MQPutFlowServiceにマウスをフォーカスして、右側の〇を表示させます。
- 接続が完了すると以下のようになります。
- Return Data on Sync Webhookの設定を行うため、歯車を出して、設定画面を出します。この画面では、Nextをクリックします。
- Response Headerを削除します。
- 左側のIncoming Dataの入力エリアで、statusと入力し、MQPutFlowServiceのstatusを、Response Dataにマッピングします。
- Nextボタンで次に進みます。
- Testボタンでテスト実行します。
- Message posted successfullyが出れば成功です。Doneで画面を閉じます。
- フローの名前を付けます。Untitled Workflowの横の鉛筆のアイコンをクリックします。
- MQ Put Workflowに変更して、Doneをクリックします。
- フローを保存します。
- ここでテスト実行してみます。
- 実行されると、線がハイライトされます。
- 画面左下の、アイコンをクリックして、実行履歴を表示させます。
- 実行した日付が出るので、そこをクリックして、詳細履歴を表示させます。
- 実行履歴の中から、MQPutFlowServiceを選択して、Outputを見て、successが出ていれば実行されています。
- MQのコンソールからもメッセージを確認します。
メッセージがキューに入っていることがわかりました。
- webMethods Integrationの画面から、Workflowを選択し、+ボタンで新規にWorkflowを作成します。
8. 動作確認
Postmanユーティリティからリクエストを投げて、動作確認を実施します。
-
Postmanの設定手順
- Postmanを起動します。
- IWHIのワークフロー画面のWebhookの歯車をから、設定画面を開きます。
- Webhook URLをクリップボードにコピーします。
- Postmanの画面で、URLをペーストして、メソッドをPOSTに設定します。
- IWHIのWebhookの設定画面から、Webhook Keyを表示させます。
- Webhook Keyをクリップボードにコピーします。
- Postmanの画面で、Headerに以下を入力します。
項目 値 Content-type application/json Webhook_key コピーしたKey - Bodyに以下を入力します。
{ "MQInputStr":"Hello Postman" } - Postmanを起動します。
9. まとめ
-
ハイブリッド連携におけるEdge Runtimeの優位性
Edge runtimeの主な優位性
1. セキュリティ
最大のメリットは、外部から社内ネットワークへの「インバウンド通信(着信)」を許可する必要がない点です
アウトバウンド接続: Edge Runtimeは内側から外(Cloud Control Plane)へ接続を確立し、維持します。
2. データの保護
機密性の高いデータをクラウドに上げることなく、オンプレミス内で処理を完結させることが可能です。
ローカル実行: MQから取得したデータをEdge Runtime上で加工・フィルタリングし、必要な結果だけをクラウドに送ることで、機密情報の流出リスクを最小限に抑えます。
法令遵守: 特定の地域や拠点内にデータを留める必要がある規制(GDPRなど)にも柔軟に対応できます。
3. 低遅延と通信コストの削減
オンプレミス資産(MQ、DB、メインフレームなど)のすぐ隣で処理を行うため、パフォーマンスが最適化されます。
データの近くで処理: 大量のメッセージを扱うMQ連携において、通信のオーバーヘッドを削減し、リアルタイムに近いレスポンスを実現します。
帯域の節約: クラウドへ転送する前にデータを集約・圧縮できるため、クラウドとの通信帯域コストを抑えられます。
4. 運用の集中管理(Build Anywhere, Deploy Anywhere)
「実行はオンプレミス、管理はクラウド」という分離が徹底されています。
一元管理: 世界中に分散した複数のEdge Runtimeの稼働状況やログを、クラウド上の「Hybrid Control Plane」から一括で監視・デバッグできます。
デプロイの柔軟性: クラウドで作ったフローをボタン一つでオンプレミスのEdgeへ配信できるため、物理的な場所を問わない俊敏な開発が可能です。





























































