Amazon MQ for RabbitMQ へのポリシーの適用
Amazon MQ の推奨デフォルト値を持つカスタムのポリシーと制限を適用できます。推奨されるデフォルトポリシーと制限を削除したが、それらを再作成したい、または追加の vhost を作成して、新しい vhost にデフォルトのポリシーと制限を適用したいという場合は、以下のステップを実行できます。
重要
以下のステップを実行するには、管理者権限を持つ Amazon MQ for RabbitMQ ブローカーユーザーが必要です。ブローカーを初めて作成したときに作成された管理者ユーザー、またはその後で作成した別のユーザーを使用できます。以下の表は、正規表現 (regexp) パターンとしての必要な管理者ユーザータグと許可です。
タグ | 読み込み regexp | 設定 regexp | 書き込み regexp |
---|---|---|---|
administrator |
.* |
.* |
.* |
RabbitMQ ユーザーの作成、およびユーザータグと許可の管理の詳細については、「Amazon MQ for RabbitMQ ブローカーのユーザー」を参照してください。
RabbitMQ ウェブコンソールを使用してデフォルトのポリシーと仮想ホスト制限を適用する
-
Amazon MQ コンソール
にサインインします。 -
左側のナビゲーションペインで [Brokers] (ブローカー) をクリックします。
-
ブローカーのリストから、新しいポリシーを適用するブローカーの名前を選択します。
-
ブローカーの詳細ページの [Connections] (接続) セクションで、RabbitMQ ウェブコンソール URL をクリックします。RabbitMQ ウェブコンソールが新しいブラウザタブまたはウィンドウで開きます。
-
ブローカー管理者のユーザー名とパスワードを使用して RabbitMQ ウェブコンソールにログインします。
-
RabbitMQ ウェブコンソールのページ上部で、[Admin] (管理) をクリックします。
-
[Admin] (管理) ページの右側にあるナビゲーションペインで [Policies] (ポリシー) をクリックします。
-
[Policies] (ポリシー) ページに、ブローカーの現在の [User policies] (ユーザーポリシー) が表示されます。[User policies] (ユーザーポリシー) の下で、[Add / update a policy] (ポリシーの追加/更新) を展開します。
-
新しいブローカーポリシーを作成するには、[Add / update a policy] (ポリシーの追加/更新) で以下を実行します。
-
[Virtual host] (仮想ホスト) には、ドロップダウンリストからポリシーをアタッチする仮想ホストの名前を選択します。デフォルト vhost を選択するには、[/] を選択します。
注記
追加の vhost を作成していない場合は、RabbitMQ コンソールに [Virtual host] (仮想ホスト) オプションが表示されず、デフォルト vhost のみにポリシーが適用されます。
-
[Name] (名前) には、ポリシーの名前 (
policy-defaults
など) を入力します。 -
[Pattern] (パターン) には regexp パターン
.*
を入力して、ポリシーがブローカー上のすべてのキューと一致するようにします。 -
[Apply to] (適用先) には、ドロップダウンリストから [Exchanges and queues] (エクスチェンジとキュー) を選択します。
-
[Priority] (優先順位) には、vhost に適用されたその他すべてのポリシーよりも大きい整数を入力します。RabbitMQ のキューとエクスチェンジに適用できるのは、常に 1 つのポリシー定義セットのみです。RabbitMQ は、一致するポリシーで、最高の優先順位値を持つものを選択します。ポリシーの優先順位とポリシーの結合方法の詳細については、RabbitMQ サーバードキュメントの「Policies
」を参照してください。 -
[Definition] (定義) には、以下のキーバリューペアを追加します。
-
queue-mode
=lazy
。ドロップダウンリストから [String] (文字列) を選択します。 -
overflow
=reject-publish
。ドロップダウンリストから [String] (文字列) を選択します。注記
単一インスタンスブローカーには適用されません。
-
max-length
=
。number-of-messages
number-of-messages
は、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値 (例えば、mq.m5.large
クラスターには8000000
) に置き換えます。ドロップダウンリストから [Number] (数値) を選択します。注記
単一インスタンスブローカーには適用されません。
-
-
[Add / update policy] (ポリシーを追加/更新) をクリックします。
-
-
[User policies] (ユーザーポリシー) リストに新しいポリシーが表示されることを確認します。
注記
クラスターブローカーの場合、Amazon MQ が
ha-mode: all
およびha-sync-mode: automatic
ポリシー定義を自動的に適用します。 -
右側のナビゲーションペインで [Limits] (制限) をクリックします。
-
[Limits] (制限) ページに、ブローカーの現在の [Virtual host limits] (仮想ホストの制限) が表示されます。[Virtual host limits] (仮想ホスト制限) で、[Set / update a virtual host limit] (仮想ホスト制限の設定/更新) を展開します。
-
新しい vhost 制限を作成するには、[Set / update a virtual host limit] (仮想ホスト制限の設定/更新) で以下を実行します。
-
[Virtual host] (仮想ホスト) には、ドロップダウンリストからポリシーをアタッチする仮想ホストの名前を選択します。デフォルト vhost を選択するには、[/] を選択します。
-
[Limit] (制限) には、ドロップダウンオプションから [max-connections] を選択します。
-
[Value] (値) には、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値 (例えば、
mq.m5.large
クラスターには15000
) を入力します。 -
[Set / update limit] (制限を設定/更新) をクリックします。
-
上記のステップを繰り返します。[Limit] (制限) には、ドロップダウンオプションから [max-queues] を選択します。
-
-
新しい制限が [Virtual host limits] (仮想ホスト制限) リストにが表示されていることを確認します。
RabbitMQ Management API を使用してデフォルトのポリシーと仮想ホスト制限を適用する
-
Amazon MQ コンソール
にサインインします。 -
左側のナビゲーションペインで [Brokers] (ブローカー) をクリックします。
-
ブローカーのリストから、新しいポリシーを適用するブローカーの名前を選択します。
-
ブローカーのページの [Connections] (接続) セクションで、RabbitMQ ウェブコンソール URL をメモします。これは、HTTP リクエストで使用するブローカーエンドポイントです。
-
任意の新しいターミナルまたはコマンドラインウィンドウを開きます。
-
新しいブローカーポリシーを作成するには、以下の
curl
コマンドを入力します。このコマンドでは、%2F
としてエンコードされているデフォルト/
vhost 上のキューを前提としています。別の vhost にポリシーを適用するには、%2F
をその vhost の名前に置き換えてください。注記
ユーザー名
とパスワード
を、管理者のサインイン認証情報に置き換えます。number-of-messages
を、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値に置き換えます。policy-name
をポリシーの名前に置き換えます。broker-endpoint
を先ほどメモした URL に置き換えます。curl -i -u
username
:password
-H "content-type:application/json" -XPUT \ -d '{"pattern":".*", "priority":1, "definition":{"queue-mode":lazy, "overflow":"reject-publish", "max-length":"number-of-messages
"}}' \broker-endpoint
/api/policies/%2F/policy-name
-
新しいポリシーがブローカーのユーザーポリシーに追加されていることを確認するには、以下の
curl
コマンドを入力して、すべてのブローカーポリシーをリストします。curl -i -u
username
:password
broker-endpoint
/api/policies -
新しい
max-connections
仮想ホスト制限を作成するには、以下のcurl
コマンドを入力します。このコマンドでは、%2F
としてエンコードされているデフォルト/
vhost 上のキューを前提としています。別の vhost にポリシーを適用するには、%2F
をその vhost の名前に置き換えてください。注記
ユーザー名
とパスワード
を、管理者のサインイン認証情報に置き換えます。max-connections
を、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値に置き換えます。ブローカーエンドポイントを先ほどメモした URL に置き換えます。curl -i -u
username
:password
-H "content-type:application/json" -XPUT \ -d '{"value":"number-of-connections
"}' \broker-endpoint
/api/vhost-limits/%2F/max-connections -
新しい
max-queues
仮想ホスト制限を作成するには、前のステップを繰り返しますが、curl コマンドを以下のように変更します。curl -i -u
username
:password
-H "content-type:application/json" -XPUT \ -d '{"value":"number-of-queues
"}' \broker-endpoint
/api/vhost-limits/%2F/max-queues -
新しい制限がブローカーの仮想ホスト制限に追加されていることを確認するには、以下の
curl
コマンドを入力して、すべてのブローカー仮想ホスト制限をリストします。curl -i -u
username
:password
broker-endpoint
/api/vhost-limits