Amazon MQ for RabbitMQ へのポリシーの適用 - Amazon MQ

Amazon MQ for RabbitMQ へのポリシーの適用

Amazon MQ の推奨デフォルト値を持つカスタムのポリシーと制限を適用できます。推奨されるデフォルトポリシーと制限を削除したが、それらを再作成したい、または追加の vhost を作成して、新しい vhost にデフォルトのポリシーと制限を適用したいという場合は、以下のステップを実行できます。

重要

以下のステップを実行するには、管理者権限を持つ Amazon MQ for RabbitMQ ブローカーユーザーが必要です。ブローカーを初めて作成したときに作成された管理者ユーザー、またはその後で作成した別のユーザーを使用できます。以下の表は、正規表現 (regexp) パターンとしての必要な管理者ユーザータグと許可です。

タグ 読み込み regexp 設定 regexp 書き込み regexp
administrator .* .* .*

RabbitMQ ユーザーの作成、およびユーザータグと許可の管理の詳細については、「Amazon MQ for RabbitMQ ブローカーのユーザー」を参照してください。

RabbitMQ ウェブコンソールを使用してデフォルトのポリシーと仮想ホスト制限を適用する
  1. Amazon MQ コンソールにサインインします。

  2. 左側のナビゲーションペインで [Brokers] (ブローカー) をクリックします。

  3. ブローカーのリストから、新しいポリシーを適用するブローカーの名前を選択します。

  4. ブローカーの詳細ページの [Connections] (接続) セクションで、RabbitMQ ウェブコンソール URL をクリックします。RabbitMQ ウェブコンソールが新しいブラウザタブまたはウィンドウで開きます。

  5. ブローカー管理者のユーザー名とパスワードを使用して RabbitMQ ウェブコンソールにログインします。

  6. RabbitMQ ウェブコンソールのページ上部で、[Admin] (管理) をクリックします。

  7. [Admin] (管理) ページの右側にあるナビゲーションペインで [Policies] (ポリシー) をクリックします。

  8. [Policies] (ポリシー) ページに、ブローカーの現在の [User policies] (ユーザーポリシー) が表示されます。[User policies] (ユーザーポリシー) の下で、[Add / update a policy] (ポリシーの追加/更新) を展開します。

  9. 新しいブローカーポリシーを作成するには、[Add / update a policy] (ポリシーの追加/更新) で以下を実行します。

    1. [Virtual host] (仮想ホスト) には、ドロップダウンリストからポリシーをアタッチする仮想ホストの名前を選択します。デフォルト vhost を選択するには、[/] を選択します。

      注記

      追加の vhost を作成していない場合は、RabbitMQ コンソールに [Virtual host] (仮想ホスト) オプションが表示されず、デフォルト vhost のみにポリシーが適用されます。

    2. [Name] (名前) には、ポリシーの名前 (policy-defaults など) を入力します。

    3. [Pattern] (パターン) には regexp パターン .* を入力して、ポリシーがブローカー上のすべてのキューと一致するようにします。

    4. [Apply to] (適用先) には、ドロップダウンリストから [Exchanges and queues] (エクスチェンジとキュー) を選択します。

    5. [Priority] (優先順位) には、vhost に適用されたその他すべてのポリシーよりも大きい整数を入力します。RabbitMQ のキューとエクスチェンジに適用できるのは、常に 1 つのポリシー定義セットのみです。RabbitMQ は、一致するポリシーで、最高の優先順位値を持つものを選択します。ポリシーの優先順位とポリシーの結合方法の詳細については、RabbitMQ サーバードキュメントの「Policies」を参照してください。

    6. [Definition] (定義) には、以下のキーバリューペアを追加します。

      • queue-mode=lazy。ドロップダウンリストから [String] (文字列) を選択します。

      • overflow=reject-publish。ドロップダウンリストから [String] (文字列) を選択します。

        注記

        単一インスタンスブローカーには適用されません。

      • max-length=number-of-messagesnumber-of-messages は、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値 (例えば、mq.m5.large クラスターには 8000000) に置き換えます。ドロップダウンリストから [Number] (数値) を選択します。

        注記

        単一インスタンスブローカーには適用されません。

    7. [Add / update policy] (ポリシーを追加/更新) をクリックします。

  10. [User policies] (ユーザーポリシー) リストに新しいポリシーが表示されることを確認します。

    注記

    クラスターブローカーの場合、Amazon MQ が ha-mode: all および ha-sync-mode: automatic ポリシー定義を自動的に適用します。

  11. 右側のナビゲーションペインで [Limits] (制限) をクリックします。

  12. [Limits] (制限) ページに、ブローカーの現在の [Virtual host limits] (仮想ホストの制限) が表示されます。[Virtual host limits] (仮想ホスト制限) で、[Set / update a virtual host limit] (仮想ホスト制限の設定/更新) を展開します。

  13. 新しい vhost 制限を作成するには、[Set / update a virtual host limit] (仮想ホスト制限の設定/更新) で以下を実行します。

    1. [Virtual host] (仮想ホスト) には、ドロップダウンリストからポリシーをアタッチする仮想ホストの名前を選択します。デフォルト vhost を選択するには、[/] を選択します。

    2. [Limit] (制限) には、ドロップダウンオプションから [max-connections] を選択します。

    3. [Value] (値) には、ブローカーのインスタンスサイズとデプロイモードに従った Amazon MQ の推奨値 (例えば、mq.m5.large クラスターには 15000) を入力します。

    4. [Set / update limit] (制限を設定/更新) をクリックします。

    5. 上記のステップを繰り返します。[Limit] (制限) には、ドロップダウンオプションから [max-queues] を選択します。

  14. 新しい制限が [Virtual host limits] (仮想ホスト制限) リストにが表示されていることを確認します。

RabbitMQ Management API を使用してデフォルトのポリシーと仮想ホスト制限を適用する
  1. Amazon MQ コンソールにサインインします。

  2. 左側のナビゲーションペインで [Brokers] (ブローカー) をクリックします。

  3. ブローカーのリストから、新しいポリシーを適用するブローカーの名前を選択します。

  4. ブローカーのページの [Connections] (接続) セクションで、RabbitMQ ウェブコンソール URL をメモします。これは、HTTP リクエストで使用するブローカーエンドポイントです。

  5. 任意の新しいターミナルまたはコマンドラインウィンドウを開きます。

  6. 新しいブローカーポリシーを作成するには、以下の 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
  7. 新しいポリシーがブローカーのユーザーポリシーに追加されていることを確認するには、以下の curl コマンドを入力して、すべてのブローカーポリシーをリストします。

    curl -i -u username:password broker-endpoint/api/policies
  8. 新しい 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
  9. 新しい 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
  10. 新しい制限がブローカーの仮想ホスト制限に追加されていることを確認するには、以下の curl コマンドを入力して、すべてのブローカー仮想ホスト制限をリストします。

    curl -i -u username:password broker-endpoint/api/vhost-limits