

# DB 샤드 그룹에 라우터 추가
<a name="limitless-add-router"></a>

DB 샤드 그룹에 라우터를 추가할 수 있습니다.

**Topics**
+ [사전 조건](#limitless-add-router.prereqs)
+ [라우터 추가](#limitless-add-router.proc)
+ [라우터 추가 추적](#limitless-add-router.track)
+ [라우터 추가 취소](#limitless-add-router.cancel)

## 사전 조건
<a name="limitless-add-router.prereqs"></a>

라우터를 추가하는 데는 다음과 같은 사전 조건이 있습니다.
+ DB 샤드 그룹이 있어야 합니다.
+ 사용자에게 `rds_aurora_limitless_cluster_admin` 권한이 있어야 합니다. `rds_superuser`에는 이 권한이 있으므로 마스터 사용자에게도 권한이 있습니다. `rds_superuser`는 다른 사용자에게 권한을 부여할 수 있습니다.

  ```
  /* Logged in as the master user or a user with rds_superuser privileges */
  CREATE USER {{username}};
  GRANT rds_aurora_limitless_cluster_admin to {{username}};
  ```
**참고**  
DB 샤드 그룹이 만들어진 후 AWS 계정의 기본 CA 인증서를 변경하면 새 라우터는 기존 라우터의 CA 인증서와 다른 새 CA 인증서를 사용합니다. 트러스트 스토어에 따라 일부 연결이 실패할 수 있습니다.
+ 시스템 시작 라우터 추가를 활성화하려면 DB 클러스터와 연결된 사용자 지정 DB 클러스터 파라미터 그룹에서 다음 DB 클러스터 파라미터를 설정합니다.    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/limitless-add-router.html)

  자세한 내용은 [Amazon Aurora DB 클러스터의 DB 클러스터 파라미터 그룹](USER_WorkingWithDBClusterParamGroups.md) 섹션을 참조하세요.

## 라우터 추가
<a name="limitless-add-router.proc"></a>

라우터를 추가하려면 `rds_aurora.limitless_add_router` 함수를 사용합니다. 이 함수는 비동기식으로 실행되는 라우터 추가 작업을 시작합니다.

```
SELECT rds_aurora.limitless_add_router();
```

작업을 성공적으로 제출하면 작업 ID가 반환될 때까지 기다립니다. 예를 들면 다음과 같습니다.

```
    job_id
---------------
 1691300000000
(1 row)
```

**참고**  
동시 라우터 추가 작업은 지원되지 않습니다. 작업을 순차적으로 실행하고 다른 추가 작업을 시작하기 전에 각 작업을 완료합니다.

## 라우터 추가 추적
<a name="limitless-add-router.track"></a>

작업 ID를 사용하여 라우터 추가 작업을 추적할 수 있습니다. 특정 작업을 설명하고 이에 대한 세부 정보를 얻으려면 다음 쿼리를 실행합니다.

```
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs({{job_id}});
```

예시:

```
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs(1691300000000);

    job_id     |   action   |        job_details       | status  |    submission_time     |                   message                   
---------------+------------+--------------------------+---------+------------------------+-------------------------------------------
 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS | 2023-08-06 05:33:20+00 | Scaling job succeeded.                  +
               |            |                          |         |                        | New router instance with ID 7 was created.
(1 row)
```

존재하지 않는 작업을 입력으로 전달하면 쿼리가 오류를 반환합니다.

```
SELECT * from rds_aurora.limitless_list_router_scale_jobs(1691300000001);

ERROR:  no job found with the job ID provided
```

작업 ID 없이 동일한 쿼리를 사용하여 모든 라우터 추가 작업의 상태를 추적할 수 있습니다. 예를 들면 다음과 같습니다.

```
SELECT * FROM rds_aurora.limitless_list_router_scale_jobs();

    job_id     |   action   |        job_details       |   status    |    submission_time     |                  message                   
---------------+------------+--------------------------+-------------+------------------------+-------------------------------------------
 1691200000000 | ADD_ROUTER | Add 1 new Router by User | IN_PROGRESS | 2023-08-05 01:46:40+00 | 
 1691300000000 | ADD_ROUTER | Add 1 new Router by User | SUCCESS     | 2023-08-06 05:33:20+00 | Scaling job succeeded.                +
               |            |                          |             |                        | New router instance with ID 7 was created.
 1691400000000 | ADD_ROUTER | Add 1 new Router by User | FAILED      | 2023-08-07 09:20:00+00 | Error occurred for the add router job 1691400000000.
               |            |                          |             |                        | Retry the command. If the issue persists, contact AWS Support.
 1691500000000 | ADD_ROUTER | Add 1 new Router by User | CANCELED    | 2023-08-07 09:20:00+00 | Scaling job was cancelled.
(4 rows)
```

작업 상태는 다음 값 중 하나일 수 있습니다.
+ `IN_PROGRESS` - 라우터 추가 작업이 제출되어 진행 중입니다. 한 번에 하나의 작업만 진행할 수 있습니다.
+ `CANCELLATION_IN_PROGRESS` - 사용자가 라우터 추가 작업을 취소하는 중입니다.
+ `CANCELED` - 사용자 또는 시스템이 라우터 추가 작업을 성공적으로 취소했습니다.
+ `SUCCESS` - 라우터 추가 작업이 성공적으로 완료되었습니다. `message` 필드에는 새로운 라우터의 인스턴스 ID가 포함됩니다.
+ `FAILED` - 라우터 추가 작업이 실패했습니다. `message` 필드에는 실패에 대한 세부 정보와 실패한 작업에 대한 후속 조치로 수행할 수 있는 작업이 포함되어 있습니다.

**참고**  
라우터 추가를 마무리할 필요가 없으므로 `PENDING` 상태가 없습니다. 가동 중지 시간이 발생하지 않습니다.

## 라우터 추가 취소
<a name="limitless-add-router.cancel"></a>

`IN_PROGRESS`인 라우터 추가를 취소할 수 있습니다. 취소하려면 작업 ID가 필요합니다.

```
SELECT * from rds_aurora.limitless_cancel_router_scale_jobs({{job_id}});
```

오류가 없으면 출력이 반환되지 않습니다. 작업 추적 쿼리를 사용하여 취소를 추적할 수 있습니다.