San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
API Security

Advanced Message Queuing Protocol - AMQP

無償で高速に動作するオープンソースツールは、クローズドソース製品に比べ好まれることが多くなっています。利用者に厳しい制限を設けないため、オープンソースアプリは今日では一般的です。

AMQP標準は、オープンソースアプリ開発で広く利用されるメッセージプロトコルです。本稿では、その意義、利用法、主要な用語について解説します。

著者
Advanced Message Queuing Protocol - AMQP

AMQPの意味

AMQPはAdvanced Message Queuing Protocolのことです。 

世界的に認められた規格で、主にアプリ層で動作します。クライアントとブローカー間の優れた通信連携を実現するために用いられます。 

パブリッシャーがメッセージ生成の責任を負い、クライアントがそれらを受信・管理します。 

RabbitMQなどのブローカーの役割は、交換の一部となるメッセージをパブリッシャーからクライアントへ直接届けることです。 

主要な機能としてルーティング、メッセージ指向、キューイングが挙げられます。AMQPを利用することで、様々な構成や基盤に対応した相互運用性が実現され、プロトコルに準拠したクライアントライブラリやブローカーを活用可能となります。  

AMQPの歴史

2003年にJohn O’ Haraによって初めて作られたAMQPは、その誕生以来大きく進化し、豊かな歴史を有します。JohnがAMQPを生み出した際、彼はJPMorgan Chaseに勤務しており、同社はAMQPの全権を保有してiMatrix Corporationとの契約に利用しました。両社はAMQPを用いてプロトコル文書とCブローカーの設計を行い、この利用方法は2006年半ばまで続きました。  

しかし、JPMorgan ChaseはAMQPを広く普及させ、他社でも利用できるようにすることを決断しました。そのため、2005年半ばにCisco、Red Hat、IONA Technologies、TWISTなどの大手IT企業を含むAMQPユーザーグループの設立に努めました。

その後、グループは徐々に拡大し、23社となりました。新たに参加した企業にはBarclays、IIT Software、Bank of America、Credit Suisse、Progress Software、Informaticaなどが含まれます。 

2011年10月にAMQP 1.0がリリースされ、そのすぐ後、11月1日にOASIS技術委員会が設立され、AMQP 1.0の進展を監視する任務を担いました。

作業委員会の意見を受け、第一稿と第二稿がそれぞれ2012年2月と6月に発表されました。 

数か月後、2012年10月末頃にAMQPは正式なOASIS標準となりました。 

2014年には、OASISのAMQP標準はIECやISOなどの国際規格にも認められました。

AMQP用語

AMQPを導入する際には、主要な用語の理解が重要です。本稿ではよく使用される用語について解説します。

  • ブローカー(またはサーバー)は、AMQP実現に不可欠な役割を果たし、クライアント側でのデータルーティングとキューイングを向上させるための接続構築を担当します。 
  • キューの生成とメッセージの確認はコンシューマーが担当します。 
  • エクスチェンジから受け取ったデータの振り分けとキューへの配置はプロデューサーが行います。 
AMQP Broker

AMQPの構成要素

先述の用語に加え、AMQPモデル導入に用いられる特定の構成要素についても知っておく必要があります。 

  • Exchanges (and their classification)

エクスチェンジはメッセージを受信し、適切なキューへ振り分ける役割を担います。Fanout、Headers、Topic、Directの4種類があり、ブローカーにとって欠かせない要素です。

  • Channel

チャネルとは、既存の接続内で構築されるAMQPピア間の多重化された仮想接続を指します。

  • Message Queue

メッセージとそのリソースや発信元を関連付けるための識別されたエンティティです。

  • Binding

バインディングは、キューやエクスチェンジに関するあらかじめ定められた指示の集合を示し、メッセージの送信と配送を制御します。

  • Virtual Hosts

仮想ホストは、ブローカー内で分離の機能を提供する仕組みで、ユーザーとそのアクセス権に応じて複数が同時に動作することがあります。

AMQPエクスチェンジの動作原理

AMQPの仕組みはシンプルですが、全ての準備が整いシステムが通信可能な状態になってから動作します。 

エクスチェンジは、まずメッセージをクライアントへ届け、規定に基づいて処理を行い、その結果を1つまたは複数のキューに振り分けるという重要な役割を担います。採用されるエクスチェンジの種類によって、ルーティング方法が決定されます。 

例えば、‘direct’タイプの場合、追加されたデータに最終的なメッセージの行き先が含まれます。一方、Fanoutエクスチェンジはルーティング情報を使用せず、接続された全てのキューに同じ情報を送信します。

AMQP Exchanges

AMQPによるAPI開発

AMQPの概要と動作が十分に理解できたところで、API開発にどのように活かせるか説明します。AMQPを用いると、APIは以下のことが可能です。

  • 直接メッセージを送信できる
  • トリガーに基づいて送信するため、メッセージをキューにキャッシュできる
  • 情報をルーティングする、またはエクスチェンジを特定のキューにバインドできる
  • 効率的な通信を実現するため、エクスチェンジ間の接続を確立できる
  • 自動または手動での確認応答が可能である

例えば、AMQPがAPIで用いられるシナリオは以下の通りです。

  • 電子ウォレットへの入金
  • 小売店でのクレジットまたはデビットカード取引
  • メッセンジャーや通信システム内での利用 

まず最初の例について詳しく説明します。

  1. Paytmなどの電子ウォレットへ入金する際は、入金方法の選択が求められ、その際にcreateサービスが開始されます。
  2. 次に認証ステップに進み、詳細が確認されれば、次のサービスが資金を取得してウォレットに追加します。
  3. 利用者が取引をキャンセルできるようにするため、cancelサービスが必要です。
  4. AMQPによるメッセージ交換は非同期で行われるため、取引は重要なイベントとなります。一貫性を保つため、各メッセージの結果を監視し、次のイベントを適時に発動する追加サービスが組み込まれます。

このように、HTTPと比較して非同期性があるため、AMQPではコールバックが必要となり、また‘fetch’エンドポイントの設計はより複雑になります。

結論として、API機能を適切に開発できれば、AMQPはHTTPとも良好に連携します。軽量なため、アプリのパフォーマンスが大幅に向上するでしょう。もし開発の複雑さに対応が難しい場合は、HTTP単体でも十分な機能を果たします。APIセキュリティに関する興味深い記事もあります。

最後に

AMQPは、消費者とパブリッシャー向けに設計された先進的なメッセージプロトコルです。このオープンソースアプリは、基盤技術やプラットフォームを気にすることなく通信を可能にします。本稿では、AMQPの概要、歴史、構成要素、動作について詳しく解説しました。これにより、本プロトコルへの理解が深まったことを願います。

FAQ

Open
Advanced Message Queuing Protocol(AMQP)とは何か?
Open
AMQPを使用する利点は何ですか?
Open
人気のAMQPブローカーは?
Open
AMQPはどのようにセキュリティを守る?
Open
AMQPの詳細を学ぶための専門的な参考資料をご存じでしょうか?

参考資料

AMQP Protocol Downloads - Official website

AMQP Architecture - Official website

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック