プラグイン - Amazon MQ

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

プラグイン

Amazon MQ for RabbitMQ は、次のプラグインもサポートしています。

RabbitMQ 管理プラグイン

Amazon MQ for RabbitMQ は、HTTP ベースの管理 API と RabbitMQ ウェブコンソール用のブラウザベースの UI を提供する RabbitMQ 管理プラグインをサポートしています。 RabbitMQ ブローカーのユーザーとポリシーの作成と管理には、ウェブコンソールと Management API を使用できます。

シャベルプラグイン

Amazon MQ for RabbitMQ は RabbitMQ シャベルプラグインをサポートしています。これにより、あるブローカーのキューと交換から別のブローカーにメッセージを移動できます。シャベルは、疎結合されたブローカーを接続し、メッセージ負荷が高いノードを避けてメッセージを分散するために使用できます。

重要

シャベル先がプライベートブローカーの場合は、キューまたはエクスチェンジの間でシャベルを構成することはできません。

Amazon MQ は、静的シャベルの使用をサポートしません。

動的シャベルのみがサポートされています。動的シャベルはランタイムパラメータを使用して設定され、クライアント接続によっていつでもプログラムで開始および停止できます。例えば、RabbitMQ 管理 API を使用して、次の API エンドポイントへの PUT リクエストを作成して動的シャベルを設定できます。この例では、{vhost} をブローカーの vhost の名前に置き換え、{name} を新しい動的シャベルの名前に置き換えることができます。

/api/parameters/shovel/{vhost}/{name}

リクエストボディでは、キューまたはエクスチェンジのどちらかを指定する必要がありますが、両方を指定する必要はありません。以下の例では、src-queue で指定されたローカルキューと dest-queue で定義されたリモートキューの間に動的シャベルを設定します。同様に、src-exchange パラメータと dest-exchange パラメータを使用して、2 つのエクスチェンジ間でシャベルを設定できます。

{ "value": { "src-protocol": "amqp091", "src-uri": "amqp://localhost", "src-queue": "source-queue-name", "dest-protocol": "amqp091", "dest-uri": "amqps://b-c8352341-ec91-4a78-ad9c-a43f23d325bb.mq.us-west2.amazonaws.com:5671", "dest-queue": "destination-queue-name" } }

フェデレーションプラグイン

Amazon MQ は、RabbitMQ フェデレーションプラグインを使用してフェデレーティッドエクスチェンジとキューをサポートします。フェデレーションを使用すると、個別のブローカー上にあるキュー、エクスチェンジ、およびコンシューマー間でメッセージのフローをレプリケートできます。フェデレートされたキューとエクスチェンジは、他のブローカー内のピアへの接続にポイントツーポイントリンクを使用します。フェデレートされたエクスチェンジでは、デフォルトでメッセージが 1 回送信されますが、フェデレートされたキューでは、コンシューマーが必要とする回数だけメッセージを移動できます。

フェデレーションを使用して、アップストリームのエクスチェンジまたはキューからのメッセージをダウンストリームブローカーが消費できるようにすることが可能です。RabbitMQ ウェブコンソールまたは Management API を使用して、ダウンストリームブローカーでフェデレーションを有効にできます。

重要

アップストリームキューまたはエクスチェンジがプライベートブローカーにある場合は、フェデレーションを設定できません。フェデレーションは、パブリックブローカーのキューまたはエクスチェンジの間、または、パブリックブローカーのアップストリームキューかエクスチェンジと、プライベートブローカーのダウンストリームキューかエクスチェンジの間のみ設定できます。

例えば、Management API を使用して以下を実行することにより、フェデレーションを設定できます。

  • 他のノードへのフェデレーション接続を定義する 1 つ、または複数のアップストリームを設定する。フェデレーション接続は、RabbitMQ ウェブコンソールまたは Management API を使用して定義できます。管理 API を使用して、次のリクエストボディを使用して /api/parameters/federation-upstream/%2f/myupstream への POST リクエストを作成できます。

    {"value":{"uri":"amqp://server-name","expires":3600000}}
  • キューまたはエクスチェンジがフェデレートされるようにするポリシーを設定する。ポリシーは、RabbitMQ ウェブコンソールまたは Management API を使用して設定できます。管理 API を使用して、次のリクエストボディを使用して /api/policies/%2f/federate-me への POST リクエストを作成できます。

    {"pattern":"^amq\.", "definition":{"federation-upstream-set":"all"}, "apply-to":"exchanges"}
    注記

    リクエストボディは、サーバー上のエクスチェンジの名前が amq で始まることを前提としています。正規表現 ^amq\ を使用します。 は、名前が「amq」で始まるすべてのエクスチェンジでフェデレーションが有効になっていることを確認します。RabbitMQ サーバー上のエクスチェンジには、異なる名前を付けることができます。

コンシステントハッシュエクスチェンジプラグイン

Amazon MQ for RabbitMQ は、RabbitMQ 整合性ハッシュ交換タイププラグインをサポートしています。コンシステントハッシュエクスチェンジは、メッセージのルーティングキーから計算されたハッシュ値に基づいてメッセージをキューに送信します。合理的に均等なルーティングキーが提供されると、コンシステントハッシュエクスチェンジはキュー間でメッセージを合理的にむらなく分散できます。

コンシステントハッシュエクスチェンジにバインドされたキューの場合、バインディングキーは各キューのバインドの重みを決定する文字列数値です。バインドの重みが高いキューでは、それらがバインドされているコンシステントハッシュエクスチェンジから受け取るメッセージの配分が相対的に高くなります。コンシステントハッシュエクスチェンジトポロジでは、パブリッシャーは単にメッセージをエクスチェンジに発行できますが、コンシューマーは特定のキューからのメッセージを消費するように明示的に設定される必要があります。

OAuth 2.0 プラグイン

Amazon MQ for RabbitMQ は、OAuth 2 認証バックエンドプラグインをサポートしています。このプラグインは、ブローカーの設定に基づいて条件付きで有効になっています。有効にすると、このプラグインは OAuth 2.0 認証と認可を提供し、外部 OAuth 2.0 ID プロバイダーとの統合により、一元化されたユーザー管理とアクセスコントロールを実現します。OAuth 2.0 認証の詳細については、「」を参照してくださいOAuth 2.0 の認証と認可

LDAP プラグイン

Amazon MQ for RabbitMQ は、LDAP 認証バックエンドプラグインをサポートしています。このプラグインは、ブローカーの設定に基づいて条件付きで有効になっています。有効にすると、このプラグインは LDAP 認証と認可を外部 LDAP ディレクトリサービスに統合して、一元化されたユーザー認証と認可を提供します。LDAP 認証の詳細については、「」を参照してくださいLDAP 認証と認可

HTTP プラグイン

Amazon MQ for RabbitMQ は、HTTP 認証バックエンドプラグインをサポートしています。このプラグインは、ブローカーの設定に基づいて条件付きで有効になっています。有効にすると、このプラグインは HTTP 認証と認可を提供し、外部 HTTP サーバーとの統合により、一元化されたユーザー認証と認可を行います。HTTP 認証の詳細については、「」を参照してくださいHTTP 認証と認可

注記

HTTP 認証プラグインは、Amazon MQ for RabbitMQ バージョン 4 以降でのみ使用できます。

SSL 証明書プラグイン

Amazon MQ は、RabbitMQ ブローカーの相互 TLS (mTLS) をサポートしています。SSL 認証プラグインは、mTLS 接続のクライアント証明書を使用してユーザーを認証します。このプラグインは、ブローカーの設定に基づいて条件付きで有効になっています。有効にすると、ネットワーク経由で認証情報を送信せずに、X.509 クライアント証明書を使用して証明書ベースの認証を提供し、強力な認証を実現します。SSL 証明書認証の詳細については、「」を参照してくださいSSL 証明書認証

注記

SSL 証明書認証プラグインは、Amazon MQ for RabbitMQ バージョン 4 以降でのみ使用できます。

aws プラグイン

aws プラグインは、ブローカーの設定に基づいて Amazon MQ for RabbitMQ によって条件付きで有効になります。Amazon MQ によって開発および保守されているこのコミュニティプラグインは、RabbitMQ 構成設定で AWS ARNs を使用して AWS のサービスから認証情報と証明書を安全に取得できます。ARN サポートの詳細については、「」を参照してくださいARN support in RabbitMQ configuration