2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM webMethods Hybrid Integration: Edge Runtimeで実現する、セキュアなMQハイブリッド連携:環境構築からフロー作成まで徹底解説

Last updated at Posted at 2025-12-19

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. 構成の概要と前提条件

  • 本記事の連携のイメージ図
    image.png

  • 必要な環境(コンポーネント)

    • 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にキューマネージャー、キューを構成しています

3. MQの導入(Dockerコンテナに導入)

  • MQのDockerイメージの取得とコンテナの起動

    • docker pullコマンドによるイメージの取得は、以下のコマンドで実行します。
    docker pull icr.io/ibm-messageing/mq:latest
    

    image.png

    • コンテナ間でメッセージのやり取りを行うために、カスタムネットワークを作成します。今回は、edge-networkという名前で作成します
    docker network create edge-network
    

    image.png

    • 永続化のためのボリュームの作成docker volume create qm1dataで作成します
      image.png

    • docker image listでコンテナイメージの確認
      image.png

    • 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
        > コンテナイメージID
    

    image.png

    • キューマネージャーQM1が稼働していることを、docker psコマンドで確認します。
      image.png

    • Webコンソールにアクセスします
      Webブラウザで、以下のURLにアクセスします。

    https://localhost:9443/ibmmq/console
    
    • Privacy Erroが出ますが、Advancedをクリックして進めます
      image.png
    • Proceed to localhost(unsafe)をクリックします
      image.png
    • ログイン画面が開くので、ユーザー名とパスワードに以下の値を入力してください
      ユーザー名: admin
      パスワード: passw0rd
      image.png
    • 以下のように、Manage QM1の画面がでれば、MQの導入は完了です。
      image.png

4. MQの構成

  • 今回はデフォルトで作成されるDEV.QUEUE.1を使います

    • 管理コンソールから、Queueを確認します。Manage QM1をクリックして、キューを確認します。
      image.png

    • Queueタブをクリックすると、キューが確認できます。DEV.QUEUE.1があることがわかります。
      image.png

    • Edge runtimeから接続するためのチャネルの作成
      今回は、QM1.SVRCONNチャネルを作成します。コンソールの、Applicationsタブを開きます。
      image.png

    • QM1.SVRCONN チャネルを作成します。App channelsを選択し、Createをクリックします。
      image.png

    • Server connection channelを選択し、Nextをクリックします
      image.png

    • Custom createを選択し、以下を入力します。

      項目
      Channel name QM1.SVRCONN
      MCA user ID app

      image.png
      image.png

    • QM1.SVRCONNチャネルが作成されました
      image.png

    • QM1.SVRCONNに対するアクセス権を付与します
      View configurationをクリックします。
      image.png

    • Securityタブの、Channel authenticationをクリックした後、Createをクリックします。
      image.png

    • まず、Allowをクリックします、次に、Client application user IDをクリックして、Nextをクリックします。
      image.png

    • 以下の値を入力して、Createをクリックします。

    項目
    Channel name QM1.SVRCONN
    Client user ID app

    image.png

    • QM1.SVRCONNのチャネルに対する、User Mapが作成されました
      image.png

    • QM1.SVRCONNのチャネルのAddress Mapを追加します。
      Channel authenticationを選択し、Createをクリックします。
      image.png

    • Allowをクリックした後、Addressを選択して、Nextをクリックします。
      image.png

    • 以下の値を入力して、Createをクリックします。

      項目
      Channel name QM1.SVRCONN
      Address *

      image.png

    • QM1.SVRCONNにAddress Mapが作成されました。
      image.png

    • appのユーザーに対する、Queue Managerアクセスの許可の設定
      QM1の管理画面から、View Configurationをクリックします。
      image.png

    • Securityタブを選択し、Authority recordsをクリックした後、appをクリックします。
      image.png

    • Editをクリックして、編集します。
      image.png

    • すべてにチェックを入れて、Saveします。
      image.png

    • appのAccessがAllになります。
      image.png

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

    • securityタブをクリックして、appをクリックします。
      image.png

    • Editをクリックして編集します。
      image.png

    • 今回は、すべての権限をつけて、Saveします。
      image.png

5. Edge Runtimeのセットアップ

IBM webMethods Hybrid Integration(以下、IWHI)におけるEdge runtime(エッジ・ランタイムは、クラウド上のiPaaS環境で開発したサービスを、ユーザーのオンプレミス環境やプライベートクラウド環境(エッジ)で直接実行するための軽量なコンテナ実行エンジンです。

  • Edge runtimeの登録手順
    • IWHIにログインし、Home画面から、Integration runtime managementをクリックします。
      image.png
    • 右上のRegister runtimeをクリックし、Edge runtimeをクリックします
      image.png
    • Container registry authenticationの所をクリックして、Generate Credentialsをクリックします。
      image.png
    • Container registry loginコマンドが出るので、クリップボードにコピーします。
      image.png
    • WindowsのWSLのUbuntsuの画面を開き、クリップボードにコピーした、docker loginコマンドをペーストします。
      image.png
    • 次に、Get Edge runtime imageのコマンドをコピーします。
      image.png
    • 再度、WindowsのUbuntsuの画面に、docker pullコマンドをペーストします。
      Edge runtimeの11.2.4がダウンロードされました
      image.png
    • IWHIの画面に戻り、Nextボタンをクリックします。
      image.png
    • Edge runtimeの名前を入力して、Nextをクリックします。
      image.png
    • Add metadataのところは、そのままで、Nextをクリックします。
      image.png
    • Start Pairingボタンをクリックして、Edge runtimeのPairingのコマンドを表示させます。
      image.png
    • 表示されている、docker runのコマンドをコピーします。
      image.png
    • WindowsのUbuntsuの画面にコマンドをペーストしますが、--name=MQ_ERTの前に、--network=edge-networkを加えて実行します。
      image.png
    • Pairingがうまくいくと、Success画面が表示されます。CloseボタンでEdge runtimeの登録を終了すると、以下のように、ReadyのStatusになります。
      image.png
    • Edge runtimeの登録は以上で完了です

6. Flow Serviceの作成

Flow Serviceは、Edge runtime上で稼働するデータの変換やマッピング、業務ロジックの実行をノーコード/ローコードで定義した一連の処理プロセスを指します。

ハイブリッドな実行(Develop Anywhere, Deploy Anywhere): クラウド上のWebブラウザベースのインターフェースで開発(デザイン)し、実行場所として「Cloud Runtime(クラウド)」か「Edge runtime(ローカル)」かを自由に選択できます。

オンプレミス資源への直接アクセス: クラウドからは直接アクセスできない社内ネットワーク内のデータベース、ERP(SAPなど)、レガシーシステムに対して、Edge runtime上のフローサービスから直接接続できます。

  • Flow Serviceの作成手順

    • IWHIのホーム画面から、webMethods Integrationを選択します。
      image.png

    • Flow Serviceを作るためのプロジェクトを作成します
      右上にある、New Projectをクリックし、Createを選択します。
      image.png

    • Project名を入力し、Createボタンでプロジェクトを作成します。
      image.png

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

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

    • Flow Serviceの名前を、Untitledから、MQPutFlowServiceに変更します。
      image.png

    • どこのEdge runtimeで稼働させるかを選択します。
      今回は、MQ_ERTに設定します。
      image.png

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

    • +ボタンのAdd a new fieldをクリックします。
      image.png

    • Nameの所に、MQInputStrと入力し、Doneで変数作成画面を終了します。
      image.png

    • ①の横の入力エリアに、MQと入力すると、IBM MQのコネクターが表示されるので、それを選択します。
      image.png

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

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

    • 画面を下にスクロールして、Accountの情報を入力していきます。入力が終わったら、Nextボタンをクリックします。

    項目
    Host name QM1
    Queue manager name QM1
    Queue name DEV.QUEUE.1
    User id app
    Server connection channel QM1.SVRCONN

    image.png

    • Advanced settingの画面はそのままNext
      image.png
    • アカウントの情報が、Edge runtime(MQ_ERT)と同期されます。同期が終わったら、Nextボタンをクリックします。
      image.png
    • Test Connectionで接続テストをおこないます。
      image.png
    • テストが正常に終了すると、Success:Test Account is successfulが表示されます。
      image.png
    • Enableボタンで完了させます。
      image.png
    • 最後に、Doneで終了させます。
      image.png
    • ①の横のType to choose actionを選択して、Add Custom Actionを選択します。
      image.png
    • ①Accountの画面は、以下を入力します。
    項目
    Action name MQPut
    Default runtime MQ_ERT(デフォルトで選択されてます)
    Connect to account IBM MQ IBMMQ_app

    image.png

    • ②Actionの画面では、Putを選択します。
      image.png
    • ③Putの画面は、そのままNext
      image.png
    • ④Message filter画面では、+をクリックして、Filterを追加します。
      image.png
    • 以下の値を設定します。
    項目
    Input field name Format
    Value MQSTR

    image.png

    • ⑤のMessage headerは、そのまま、Next
      image.png

    • Summary画面は、確認して、Done
      image.png

    • View/Edit Pipelineで変数のマッピングをおこないます
      image.png

    • Pipeline inputのMQInputStrをInput-MQPutのmsgBodyにドラッグ&ドロップでマッピングします。
      image.png

    • マッピングが完了したら、右側の✕をクリックして、画面を閉じます。
      image.png

    • フローを保存します。
      image.png
      image.png

    • フローを保存できたら、Edge Runtimeにフローを同期させます。
      image.png

    • ここで、Flowの動作確認をおこなっていきます。
      Runボタンをクリックして、テストします。
      image.png

    • テスト画面の、MQInputStrの入力フィールドに、2025/12/18と入力して、Runを実行します。
      image.png

    • 成功すると以下のような画面が表示されます。
      image.png

    • MQのコンソールで、DEV.QUEUE.1の中身を確認します。
      テスト実行した、2025/12/18が入っていることが確認できます。
      image.png

7. Workflowの作成

Workflowは、クラウド上の「IBM webMethods Hybrid Integration」という上位レイヤーに位置し、Edge Runtimeはその配下で動くコンポーネントとして機能します。
WorkflowからEdge Runtimeを呼び出す際、Workflow側ではEdge上の処理を 「1つのコネクター(サービス)」 として扱います。

  1. Workflow側(クラウド): 「オンプレミスのMQにデータを送る」というステップをWorkflow内に配置します。

  2. Edge Runtime側(オンプレミス): 実際にMQと通信するための詳細なロジック(フローサービス)を保持しています。

  3. 連携: Workflowが実行されると、クラウドからEdge Runtimeへ指示が飛び、Edge RuntimeがローカルのMQに対してメッセージをPut/Getします。

ポイント: Edge Runtimeはクラウドに対して「アウトバウンド(内から外)」の通信で接続を維持するため、外部からオンプレミス環境へ向けてファイアウォールのポートを開放する必要がなく、安全にWorkflowからの指示を受け取れます。

  • Workflowの作成手順

    • webMethods Integrationの画面から、Workflowを選択し、+ボタンで新規にWorkflowを作成します。
      image.png
    • 新規にWorkflowを作成するので、Create New Workflowを選択します。
      image.png
    • 右側にあるコネクター一覧の一番上の入力エリアで、MQと入力し、MQPutFlowServiceを検索します。そのご、MQPutFlowServiceをドラッグ&ドロップで、下記の図のように配置します。
      image.png
    • 開始のアイコン上にマウスを持っていくと、歯車がでるので、歯車をクリックします。
      image.png
    • トリガー一覧が出ます。Webhookトリガーを選択します。
      image.png
    • Webhookを選択したら、Nextボタンが押せるようになるので、Nextをクリックします。
      image.png
    • Bodyのところまで、下にスクロールし、以下を入力します。
    {
        "MQInputStr":"Hello MQ World"
    }
    

    image.png

    • Webhook authenticationのWebhook Keyの右側にある、Generate Tokenをクリックして、トークンを生成します。そのあと、Autoconnect Return Sync on WebhookをOnに設定して、Nextをクリックします。
      image.png
    • Webhook URLが作成され、Bodyには、先ほど定義したMQInputStrが入っています。
      image.png
    • DoneボタンでWebhookの設定を閉じます。
      image.png
    • MQPutFlowServiceのアイコンにマウスをフォーカスして、歯車を出し、歯車をクリックします。
      image.png
    • Select Integration runtimeのところは、MQ_ERTを選択し、Nextをクリックします。
      image.png
    • $request-Webhookのbodyを展開し、MQInputStrを右側の、MQPutFlowServiceのMQInputStrにドラッグ&ドロップでマッピングします。次にNextをクリックします。
      image.png
    • この画面でテストができるので、Testボタンをクリックしてテストします。
      image.png
    • Message tested successfullyが表示され、実行日時もでたら、成功です。Doneボタンで閉じます。
      image.png
    • MQPutFlowServiceとReturn Data on Sync Webhookをつなぐために、MQPutFlowServiceにマウスをフォーカスして、右側の〇を表示させます。
      image.png
    • 接続が完了すると以下のようになります。
      image.png
    • Return Data on Sync Webhookの設定を行うため、歯車を出して、設定画面を出します。この画面では、Nextをクリックします。
      image.png
    • Response Headerを削除します。
      image.png
    • 左側のIncoming Dataの入力エリアで、statusと入力し、MQPutFlowServiceのstatusを、Response Dataにマッピングします。
      image.png
    • Nextボタンで次に進みます。
      image.png
    • Testボタンでテスト実行します。
      image.png
    • Message posted successfullyが出れば成功です。Doneで画面を閉じます。
      image.png
    • フローの名前を付けます。Untitled Workflowの横の鉛筆のアイコンをクリックします。
      image.png
    • MQ Put Workflowに変更して、Doneをクリックします。
      image.png
    • フローを保存します。
      image.png
    • ここでテスト実行してみます。
      image.png
    • 実行されると、線がハイライトされます。
      image.png
    • 画面左下の、アイコンをクリックして、実行履歴を表示させます。
      image.png
    • 実行した日付が出るので、そこをクリックして、詳細履歴を表示させます。
      image.png
    • 実行履歴の中から、MQPutFlowServiceを選択して、Outputを見て、successが出ていれば実行されています。
      image.png
    • MQのコンソールからもメッセージを確認します。
      メッセージがキューに入っていることがわかりました。
      image.png

8. 動作確認

Postmanユーティリティからリクエストを投げて、動作確認を実施します。

  • Postmanの設定手順

    • Postmanを起動します。
      image.png
    • IWHIのワークフロー画面のWebhookの歯車をから、設定画面を開きます。
      image.png
    • Webhook URLをクリップボードにコピーします。
      image.png
    • Postmanの画面で、URLをペーストして、メソッドをPOSTに設定します。
      image.png
    • IWHIのWebhookの設定画面から、Webhook Keyを表示させます。
      image.png
    • Webhook Keyをクリップボードにコピーします。
      image.png
    • Postmanの画面で、Headerに以下を入力します。
    項目
    Content-type application/json
    Webhook_key コピーしたKey

    image.png

    • Bodyに以下を入力します。
    {
        "MQInputStr":"Hello Postman"
    }
    

    image.png

    • Sendボタンでリクエストを送信します。
      Successが表示されれば成功です。
      image.png
    • MQのコンソールでメッセージを確認します。
      Hello Postmanとメッセージが格納されていることがわかります。
      image.png

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へ配信できるため、物理的な場所を問わない俊敏な開発が可能です。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?