Aurora MySQL에서 병렬 쿼리 DB 클러스터 생성 - Amazon Aurora

Aurora MySQL에서 병렬 쿼리 DB 클러스터 생성

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

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

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

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

콘솔을 사용하여 병렬 쿼리 클러스터 생성

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

AWS Management Console을 사용하여 병렬 쿼리 클러스터를 생성하려면
  1. AWS Management Console의 일반 Amazon Aurora DB 클러스터 생성 절차를 따르십시오.

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

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

새 클러스터가 병렬 쿼리를 사용할 수 있는지 확인하려면
  1. 앞에 나온 방법을 사용하여 클러스터를 생성합니다.

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

    mysql> select @@aurora_parallel_query; +-------------------------+ | @@aurora_parallel_query | +-------------------------+ | 1 | +-------------------------+
  3. (Aurora MySQL 버전 2의 경우) aurora_disable_hash_join 설정이 거짓인지 확인합니다.

    mysql> select @@aurora_disable_hash_join; +----------------------------+ | @@aurora_disable_hash_join | +----------------------------+ | 0 | +----------------------------+
  4. 일부 대형 테이블과 데이터 집약적 쿼리의 경우 쿼리 계획을 검토하여 일부 쿼리에 병렬 쿼리 최적화가 사용되고 있는지 확인합니다. 이 작업을 수행하려면 의 절차를 수행합니다어떤 문이 Aurora MySQL의 병렬 쿼리를 사용하는지 확인

CLI를 사용하여 병렬 쿼리 클러스터 생성

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

AWS CLI을 사용하여 병렬 쿼리 클러스터를 생성하려면
  1. (선택 사항) 병렬 쿼리 클러스터와 호환되는 Aurora MySQL 버전을 확인합니다. 이를 위해 describe-db-engine-versions 명령을 사용하고 SupportsParallelQuery 필드 값을 확인합니다. 관련 예제는 병렬 쿼리를 위한 Aurora MySQL 버전 호환성 확인 섹션을 참조하세요

  2. (선택 사항) aurora_parallel_query=ONaurora_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에서 병렬 쿼리 설정 및 해제에 설명된 대로 파라미터 그룹을 생성하고 나중에 클러스터에 연결합니다.

  3. AWS CLI의 일반 Amazon Aurora DB 클러스터 생성 절차를 따르십시오.

  4. 다음 옵션 세트를 지정하십시오.

    • --engine 옵션의 경우 aurora-mysql를 사용합니다. 이러한 값은 MySQL 5.7 또는 8.0과 호환되는 병렬 쿼리 클러스터를 생성합니다.

    • --db-cluster-parameter-group-name 옵션에 생성한 DB 클러스터 파라미터 그룹의 이름을 지정하고 파라미터 값 aurora_parallel_query=ON을 지정합니다. 이 옵션을 생략하는 경우 기본 파라미터 그룹을 사용하여 클러스터를 생성한 다음 나중에 해당 사용자 지정 파라미터 그룹을 사용하도록 수정할 수 있습니다.

    • --engine-version 옵션에 병렬 쿼리와 호환되는 Aurora MySQL 버전을 사용합니다. 필요한 경우 Aurora MySQL에서 병렬 쿼리 최적화의 절차를 사용하여 버전 목록을 가져옵니다.

      다음 코드 예제에서는 작업 방법을 보여줍니다. $CLUSTER_ID와 같은 각 환경 변수를 고유한 해당 값으로 대치합니다. 이 예제에서는 마스터 사용자 암호를 생성하고 이를 Secrets Manager에서 관리하는 --manage-master-user-password 옵션도 지정합니다. 자세한 내용은 Amazon Aurora 및 AWS Secrets Manager를 통한 암호 관리 단원을 참조하십시오. 또는 --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
  5. 생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다.

    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 버전 호환성 확인 섹션을 참조하세요 복원된 클러스터에 사용할 버전을 결정합니다.

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

  3. AWS CLI의 일반 DB 클러스터 스냅샷에서 복원 절차를 따르십시오.

    aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier mynewdbcluster \ --snapshot-identifier mydbclustersnapshot \ --engine aurora-mysql
  4. 생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다. CLI를 사용하여 병렬 쿼리 클러스터 생성에 나온 것과 동일한 확인 절차를 사용합니다.