

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

# Amazon MQ for RabbitMQ へのポリシーの適用
<a name="rabbitmq-defaults-applying-policies"></a>

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

**重要**  
 Amazon MQ for RabbitMQ エンジンバージョン 3.13 以前では、現在のデフォルトのオペレータポリシーは次のとおりです。  

```
vhost name pattern apply-to definition priority/ default_operator_policy_AWS_managed .* classic_queues {"ha-mode":"all","ha-sync-mode":"automatic","queue-version":2} 0
```
 バージョン 4.0 以降では、デフォルトの演算子ポリシーが次のように変更されました。  

```
vhost name pattern apply-to definition priority/ default_operator_policy_AWS_managed .* classic_queues {"queue-version":2} 0
```
 この変更は、従来のキューミラーリングと HA ポリシー設定が RabbitMQ 4 でサポートされていないために必要です。  
 従来のミラーキューとクォーラムキューの両方に適用されるポリシーを作成することはできません。ポリシーをクォーラムキューにのみ適用する場合は、`--apply-to` を `quorum_queues` に設定する必要があります。従来のミラーキューとクォーラムキューを使用している場合は、クォーラムキューポリシーに加えて、`--apply-to:classic_queues` を設定した別のポリシーを作成する必要があります。

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


| タグ | 読み込み regexp | 設定 regexp | 書き込み regexp | 
| --- | --- | --- | --- | 
| administrator | .\$1 | .\$1 | .\$1 | 
RabbitMQ ユーザーの作成、およびユーザータグと許可の管理の詳細については、「[Amazon MQ for RabbitMQ ブローカーのユーザー](rabbitmq-simple-auth-broker-users.md#rabbitmq-basic-elements-user)」を参照してください。

**RabbitMQ ウェブコンソールを使用してデフォルトのポリシーと仮想ホスト制限を適用する**

1. [Amazon MQ コンソール](https://console.aws.amazon.com/amazon-mq/)にサインインします。

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

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

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

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

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

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

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

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

   1. [**Virtual host**] (仮想ホスト) には、ドロップダウンリストからポリシーをアタッチする仮想ホストの名前を選択します。デフォルト vhost を選択するには、[**/**] を選択します。
**注記**  
追加の vhost を作成していない場合は、RabbitMQ コンソールに [**Virtual host**] (仮想ホスト) オプションが表示されず、デフォルト vhost のみにポリシーが適用されます。

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

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

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

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

   1. [**Definition**] (定義) には、以下のキーバリューペアを追加します。
      + **queue-mode**=**lazy**。ドロップダウンリストから [**String**] (文字列) を選択します。
      + **overflow**=**reject-publish**。ドロップダウンリストから [**String**] (文字列) を選択します。
**注記**  
単一インスタンスブローカーには適用されません。
      + **max-length**=***number-of-messages***。*number-of-messages* は、ブローカーのインスタンスサイズとデプロイモードに従った [Amazon MQ の推奨値](rabbitmq-defaults.md#rabbitmq-defaults-values) (例えば、`mq.m7g.large` クラスターには **8000000**) に置き換えます。ドロップダウンリストから [**Number**] (数値) を選択します。
**注記**  
単一インスタンスブローカーには適用されません。

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

1. [**User policies**] (ユーザーポリシー) リストに新しいポリシーが表示されることを確認します。
**注記**  
クラスターブローカーの場合、Amazon MQ が `ha-mode: all` および `ha-sync-mode: automatic` ポリシー定義を自動的に適用します。

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

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

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

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

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

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

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

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

1. 新しい制限が **[仮想ホスト制限]** リストに表示されていることを確認します。

**RabbitMQ Management API を使用してデフォルトのポリシーと仮想ホスト制限を適用する**

1. [Amazon MQ コンソール](https://console.aws.amazon.com/amazon-mq/)にサインインします。

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

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

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

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

1. 新しいブローカーポリシーを作成するには、以下の `curl` コマンドを入力します。このコマンドでは、`%2F` としてエンコードされているデフォルト `/` vhost 上のキューを前提としています。別の vhost にポリシーを適用するには、`%2F` をその vhost の名前に置き換えてください。
**注記**  
*ユーザー名*と*パスワード*を、管理者のサインイン認証情報に置き換えます。*number-of-messages* を、ブローカーのインスタンスサイズとデプロイモードに従った [Amazon MQ の推奨値](rabbitmq-defaults.md#rabbitmq-defaults-values)に置き換えます。*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
   ```

1. 新しいポリシーがブローカーのユーザーポリシーに追加されていることを確認するには、以下の `curl` コマンドを入力して、すべてのブローカーポリシーをリストします。

   ```
   curl -i -u username:password broker-endpoint/api/policies
   ```

1. 新しい `max-connections` 仮想ホスト制限を作成するには、以下の `curl` コマンドを入力します。このコマンドでは、`%2F` としてエンコードされているデフォルト `/` vhost 上のキューを前提としています。別の vhost にポリシーを適用するには、`%2F` をその vhost の名前に置き換えてください。
**注記**  
*ユーザー名*と*パスワード*を、管理者のサインイン認証情報に置き換えます。*max-connections* を、ブローカーのインスタンスサイズとデプロイモードに従った [Amazon MQ の推奨値](rabbitmq-defaults.md#rabbitmq-defaults-values)に置き換えます。ブローカーエンドポイントを先ほどメモした 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
   ```

1. 新しい `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
   ```

1. 新しい制限がブローカーの仮想ホスト制限に追加されていることを確認するには、以下の `curl` コマンドを入力して、すべてのブローカー仮想ホスト制限をリストします。

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