

# Aurora MySQL에서 병렬 쿼리 DB 클러스터 생성
<a name="aurora-mysql-parallel-query-creating-cluster"></a>

 병렬 쿼리를 사용하여 Aurora MySQL 클러스터를 생성하려면, 새 인스턴스를 추가하거나 다른 Aurora MySQL 클러스터에서 수행하는 것과 동일한 AWS Management Console 및 AWS CLI 기법을 사용하는 다른 관리 작업을 수행합니다. 병렬 쿼리에서 작동하는 새 클러스터를 생성할 수 있습니다. 또한 MySQL과 호환되는 Aurora DB 클러스터의 스냅샷에서 복원하여 병렬 쿼리에서 작동하는 DB 클러스터도 생성할 수 있습니다. 새 Aurora MySQL 클러스터를 생성하는 절차에 익숙하지 않은 경우, [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md)에서 배경 정보를 확인할 수 있습니다.

Aurora MySQL 엔진 버전을 선택할 때는 최신 버전을 선택하는 것이 좋습니다. 현재 사용 가능한 모든 Aurora MySQL 버전이 병렬 쿼리를 지원합니다. 최신 버전을 사용하면 병렬 쿼리를 설정 및 해제하거나 기존 클러스터에서 병렬 쿼리를 사용할 수 있는 유연성이 높아집니다.

 새 클러스터를 생성하든 스냅샷에서 복원하든, 새 DB 인스턴스를 추가하기 위해 다른 Aurora MySQL 클러스터에서 수행하는 것과 동일한 기법을 사용합니다.

Amazon RDS 콘솔 또는 AWS CLI를 사용하여 병렬 쿼리 클러스터를 생성할 수 있습니다.

**Contents**
+ [콘솔을 사용하여 병렬 쿼리 클러스터 생성](#aurora-mysql-parallel-query-creating-cluster-console)
+ [CLI를 사용하여 병렬 쿼리 클러스터 생성](#aurora-mysql-parallel-query-creating-cluster-cli)

## 콘솔을 사용하여 병렬 쿼리 클러스터 생성
<a name="aurora-mysql-parallel-query-creating-cluster-console"></a>

 다음 설명에 따라 콘솔을 사용하여 새 병렬 쿼리 클러스터를 생성할 수 있습니다.

**AWS Management Console을 사용하여 병렬 쿼리 클러스터를 생성하려면**

1.  AWS Management Console의 일반 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 절차를 따르십시오.

1. **엔진 유형**으로 Aurora MySQL을 선택합니다.

1. **추가 구성**에서 **DB 클러스터 파라미터 그룹**에 대해 생성한 파라미터 그룹을 선택합니다. Aurora MySQL 2.09 이상에서는 이러한 사용자 지정 파라미터 그룹을 사용해야 합니다. DB 클러스터 파라미터 그룹에서 파라미터 설정 `aurora_parallel_query=ON` 및 `aurora_disable_hash_join=OFF`를 지정합니다. 이렇게 하면 클러스터에 대한 병렬 쿼리가 설정되고 병렬 쿼리와 함께 작동하는 해시 조인 최적화가 설정됩니다.

**새 클러스터가 병렬 쿼리를 사용할 수 있는지 확인하려면**

1. 앞에 나온 방법을 사용하여 클러스터를 생성합니다.

1. (Aurora MySQL 버전 2 또는 3의 경우) `aurora_parallel_query` 구성 설정이 참인지 확인합니다.

   ```
   mysql> select @@aurora_parallel_query;
   +-------------------------+
   | @@aurora_parallel_query |
   +-------------------------+
   |                       1 |
   +-------------------------+
   ```

1. (Aurora MySQL 버전 2의 경우) `aurora_disable_hash_join` 설정이 거짓인지 확인합니다.

   ```
   mysql> select @@aurora_disable_hash_join;
   +----------------------------+
   | @@aurora_disable_hash_join |
   +----------------------------+
   |                          0 |
   +----------------------------+
   ```

1.  일부 대형 테이블과 데이터 집약적 쿼리의 경우 쿼리 계획을 검토하여 일부 쿼리에 병렬 쿼리 최적화가 사용되고 있는지 확인합니다. 이 작업을 수행하려면 의 절차를 수행합니다[어떤 문이 Aurora MySQL의 병렬 쿼리를 사용하는지 확인](aurora-mysql-parallel-query-verifying.md) 

## CLI를 사용하여 병렬 쿼리 클러스터 생성
<a name="aurora-mysql-parallel-query-creating-cluster-cli"></a>

 다음 설명에 따라 CLI를 사용하여 새 병렬 쿼리 클러스터를 생성할 수 있습니다.

**AWS CLI을 사용하여 병렬 쿼리 클러스터를 생성하려면**

1.  (선택 사항) 병렬 쿼리 클러스터와 호환되는 Aurora MySQL 버전을 확인합니다. 이를 위해 `describe-db-engine-versions` 명령을 사용하고 `SupportsParallelQuery` 필드 값을 확인합니다. 관련 예제는 [병렬 쿼리를 위한 Aurora MySQL 버전 호환성 확인](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-checking-compatibility) 섹션을 참조하세요 

1.  (선택 사항) `aurora_parallel_query=ON` 및 `aurora_disable_hash_join=OFF` 설정으로 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다. 다음과 같은 명령을 사용합니다.

   ```
   aws rds create-db-cluster-parameter-group --db-parameter-group-family aurora-mysql8.0 --db-cluster-parameter-group-name pq-enabled-80-compatible
   aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name pq-enabled-80-compatible \
     --parameters ParameterName=aurora_parallel_query,ParameterValue=ON,ApplyMethod=pending-reboot
   aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name pq-enabled-80-compatible \
     --parameters ParameterName=aurora_disable_hash_join,ParameterValue=OFF,ApplyMethod=pending-reboot
   ```

    이 단계를 수행하는 경우 이후 `--db-cluster-parameter-group-name {{my_cluster_parameter_group}}` 문에서 `create-db-cluster` 옵션을 지정합니다. 고유한 해당 파라미터 그룹 이름으로 대치합니다. 이 단계를 생략하는 경우 [Aurora MySQL에서 병렬 쿼리 설정 및 해제](aurora-mysql-parallel-query-enabling.md)에 설명된 대로 파라미터 그룹을 생성하고 나중에 클러스터에 연결합니다.

1.  AWS CLI의 일반 [Amazon Aurora DB 클러스터 생성](Aurora.CreateInstance.md) 절차를 따르십시오.

1. 다음 옵션 세트를 지정하십시오.
   + `--engine` 옵션의 경우 `aurora-mysql`를 사용합니다. 이러한 값은 MySQL 5.7 또는 8.0과 호환되는 병렬 쿼리 클러스터를 생성합니다.
   +  `--db-cluster-parameter-group-name` 옵션에 생성한 DB 클러스터 파라미터 그룹의 이름을 지정하고 파라미터 값 `aurora_parallel_query=ON`을 지정합니다. 이 옵션을 생략하는 경우 기본 파라미터 그룹을 사용하여 클러스터를 생성한 다음 나중에 해당 사용자 지정 파라미터 그룹을 사용하도록 수정할 수 있습니다.
   + `--engine-version` 옵션에 병렬 쿼리와 호환되는 Aurora MySQL 버전을 사용합니다. 필요한 경우 [Aurora MySQL에서 병렬 쿼리 최적화병렬 쿼리 클러스터 계획](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-planning)의 절차를 사용하여 버전 목록을 가져옵니다.

     다음 코드 예제에서는 작업 방법을 보여줍니다. {{$CLUSTER\_ID}}와 같은 각 환경 변수를 고유한 해당 값으로 대치합니다. 이 예제에서는 마스터 사용자 암호를 생성하고 이를 Secrets Manager에서 관리하는 `--manage-master-user-password` 옵션도 지정합니다. 자세한 내용은 [Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리](rds-secrets-manager.md) 단원을 참조하십시오. 또는 `--master-password` 옵션을 사용하여 암호를 직접 지정하고 관리할 수 있습니다.

     ```
     aws rds create-db-cluster --db-cluster-identifier {{$CLUSTER_ID}} \
       --engine aurora-mysql --engine-version 8.0.mysql_aurora.3.04.1 \
       --master-username {{$MASTER_USER_ID}} --manage-master-user-password \
       --db-cluster-parameter-group-name {{$CUSTOM_CLUSTER_PARAM_GROUP}}
     
     aws rds create-db-instance --db-instance-identifier {{${INSTANCE_ID}-1}} \
       --engine {{same_value_as_in_create_cluster_command}} \
       --db-cluster-identifier {{$CLUSTER_ID}} --db-instance-class {{$INSTANCE_CLASS}}
     ```

1. 생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다.

   `aurora_parallel_query` 구성 설정이 존재하는지 확인합니다. 이 설정의 값이 1이면 병렬 쿼리를 사용할 수 있습니다. 이 설정의 값이 0이면 먼저 1로 설정해야 병렬 쿼리를 사용할 수 있습니다. 어느 경우이든 클러스터에서 병렬 쿼리를 수행할 수 있습니다.

   ```
   mysql> select @@aurora_parallel_query;
   +------------------------+
   | @@aurora_parallel_query|
   +------------------------+
   |                      1 |
   +------------------------+
   ```

**AWS CLI을 사용하여 스냅샷을 병렬 쿼리 클러스터에 복원하려면**

1.  병렬 쿼리 클러스터와 호환되는 Aurora MySQL 버전을 확인합니다. 이를 위해 `describe-db-engine-versions` 명령을 사용하고 `SupportsParallelQuery` 필드 값을 확인합니다. 관련 예제는 [병렬 쿼리를 위한 Aurora MySQL 버전 호환성 확인](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-checking-compatibility) 섹션을 참조하세요 복원된 클러스터에 사용할 버전을 결정합니다.

1.  Aurora MySQL 호환 클러스터 스냅샷을 찾습니다.

1. AWS CLI의 일반 [DB 클러스터 스냅샷에서 복원](aurora-restore-snapshot.md) 절차를 따르십시오.

   ```
   aws rds restore-db-cluster-from-snapshot \
     --db-cluster-identifier {{mynewdbcluster}} \
     --snapshot-identifier {{mydbclustersnapshot}} \
     --engine aurora-mysql
   ```

1.  생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다. [CLI를 사용하여 병렬 쿼리 클러스터 생성](#aurora-mysql-parallel-query-creating-cluster-cli)에 나온 것과 동일한 확인 절차를 사용합니다.