

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# RabbitMQ용 Amazon MQ에 정책 적용
<a name="rabbitmq-defaults-applying-policies"></a>

 Amazon MQ 권장 기본값을 사용하여 사용자 지정 정책과 제한을 적용할 수 있습니다. 권장되는 기본 정책 및 제한을 삭제한 후 다시 생성하거나 추가 vhost를 생성한 후 새 vhost에 기본 정책과 제한을 적용하려는 경우 다음 단계를 사용할 수 있습니다.

**중요**  
 RabbitMQ용 Amazon MQ 엔진 버전 3.13 이하에서 현재 기본 연산자 정책은 다음과 같습니다. RabbitMQ   

```
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
```
 RabbitMQ 4에서는 클래식 대기열 미러링 및 HA 정책 설정이 지원되지 않으므로이 변경이 필요합니다.  
 클래식 미러링 대기열과 쿼럼 대기열에 동시에 적용되는 정책은 생성할 수 없습니다. 정책이 쿼럼 대기열에만 적용되도록 하려면 `--apply-to`를 `quorum_queues`로 설정해야 합니다. 클래식 미러링 대기열과 쿼럼 대기열을 함께 사용하는 경우 쿼럼 대기열 정책뿐만 아니라 `--apply-to:classic_queues`로 설정한 별도의 정책을 생성해야 합니다.

**중요**  
 다음 단계를 수행하려면 관리자 권한이 있는 RabbitMQ용 Amazon MQ 브로커 사용자가 있어야 합니다. 브로커를 처음 생성할 때 만든 관리자 사용자를 사용하거나 나중에 만들었을 수 있는 다른 사용자를 사용할 수 있습니다. 다음 표에는 필요한 관리자 사용자 태그 및 권한이 정규식(regexp) 패턴으로 나와 있습니다.  


| Tags | regexp 읽기 | regexp 구성 | regexp 쓰기 | 
| --- | --- | --- | --- | 
| administrator | .\$1 | .\$1 | .\$1 | 
RabbitMQ 사용자를 생성하고 사용자 태그 및 권한을 관리하는 방법에 대한 자세한 내용은 [RabbitMQ용 Amazon MQ 브로커 사용자](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를 선택하려면 **/**를 선택합니다.
**참고**  
추가 vhost를 생성하지 않은 경우 **Virtual host(가상 호스트)** 옵션이 RabbitMQ 콘솔에 표시되지 않으며 정책은 기본 vhost에만 적용됩니다.

   1. **Name(이름)**에 정책의 이름을 입력합니다(예: **policy-defaults**).

   1. **Pattern(패턴)**에 regexp 패턴 **.\$1**를 입력합니다. 이 경우 정책이 브로커의 모든 대기열과 일치합니다.

   1. **Apply to(적용 대상)**의 드롭다운 목록에서 **Exchanges and queues(교환 및 대기열)**를 선택합니다.

   1. **Priority(우선 순위)**에 vhost에 적용된 다른 모든 정책보다 큰 정수를 입력합니다. 지정된 시간에 RabbitMQ 대기열 및 교환에 정확히 하나의 정책 정의 집합을 적용할 수 있습니다. RabbitMQ는 가장 높은 우선 순위 값과 일치하는 정책을 선택합니다. 정책 우선 순위 및 정책을 결합하는 방법에 대한 자세한 내용은 RabbitMQ Server 설명서에서 [정책](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의 이름을 선택합니다. 기본 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. 새 제한이 **Virtual host limits(가상 호스트 제한)**의 목록에 표시되는지 확인합니다.

**RabbitMQ 관리 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
   ```