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을 사용하여 병렬 쿼리 클러스터를 생성하려면
-
AWS Management Console의 일반 Amazon Aurora DB 클러스터 생성 절차를 따르십시오.
-
엔진 유형으로 Aurora MySQL을 선택합니다.
-
추가 구성에서 DB 클러스터 파라미터 그룹에 대해 생성한 파라미터 그룹을 선택합니다. Aurora MySQL 2.09 이상에서는 이러한 사용자 지정 파라미터 그룹을 사용해야 합니다. DB 클러스터 파라미터 그룹에서 파라미터 설정
aurora_parallel_query=ON
및aurora_disable_hash_join=OFF
를 지정합니다. 이렇게 하면 클러스터에 대한 병렬 쿼리가 설정되고 병렬 쿼리와 함께 작동하는 해시 조인 최적화가 설정됩니다.
새 클러스터가 병렬 쿼리를 사용할 수 있는지 확인하려면
앞에 나온 방법을 사용하여 클러스터를 생성합니다.
-
(Aurora MySQL 버전 2 또는 3의 경우)
aurora_parallel_query
구성 설정이 참인지 확인합니다.mysql>
select @@aurora_parallel_query;+-------------------------+ | @@aurora_parallel_query | +-------------------------+ | 1 | +-------------------------+
-
(Aurora MySQL 버전 2의 경우)
aurora_disable_hash_join
설정이 거짓인지 확인합니다.mysql>
select @@aurora_disable_hash_join;+----------------------------+ | @@aurora_disable_hash_join | +----------------------------+ | 0 | +----------------------------+
-
일부 대형 테이블과 데이터 집약적 쿼리의 경우 쿼리 계획을 검토하여 일부 쿼리에 병렬 쿼리 최적화가 사용되고 있는지 확인합니다. 이 작업을 수행하려면 의 절차를 수행합니다어떤 문이 Aurora MySQL의 병렬 쿼리를 사용하는지 확인
CLI를 사용하여 병렬 쿼리 클러스터 생성
다음 설명에 따라 CLI를 사용하여 새 병렬 쿼리 클러스터를 생성할 수 있습니다.
AWS CLI을 사용하여 병렬 쿼리 클러스터를 생성하려면
-
(선택 사항) 병렬 쿼리 클러스터와 호환되는 Aurora MySQL 버전을 확인합니다. 이를 위해
describe-db-engine-versions
명령을 사용하고SupportsParallelQuery
필드 값을 확인합니다. 관련 예제는 병렬 쿼리를 위한 Aurora MySQL 버전 호환성 확인 섹션을 참조하세요 -
(선택 사항)
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에서 병렬 쿼리 설정 및 해제에 설명된 대로 파라미터 그룹을 생성하고 나중에 클러스터에 연결합니다. -
AWS CLI의 일반 Amazon Aurora DB 클러스터 생성 절차를 따르십시오.
-
다음 옵션 세트를 지정하십시오.
-
--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
\ --enginesame_value_as_in_create_cluster_command
\ --db-cluster-identifier$CLUSTER_ID
--db-instance-class$INSTANCE_CLASS
-
-
생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다.
aurora_parallel_query
구성 설정이 존재하는지 확인합니다. 이 설정의 값이 1이면 병렬 쿼리를 사용할 수 있습니다. 이 설정의 값이 0이면 먼저 1로 설정해야 병렬 쿼리를 사용할 수 있습니다. 어느 경우이든 클러스터에서 병렬 쿼리를 수행할 수 있습니다.mysql>
select @@aurora_parallel_query;+------------------------+ | @@aurora_parallel_query| +------------------------+ | 1 | +------------------------+
AWS CLI을 사용하여 스냅샷을 병렬 쿼리 클러스터에 복원하려면
-
병렬 쿼리 클러스터와 호환되는 Aurora MySQL 버전을 확인합니다. 이를 위해
describe-db-engine-versions
명령을 사용하고SupportsParallelQuery
필드 값을 확인합니다. 관련 예제는 병렬 쿼리를 위한 Aurora MySQL 버전 호환성 확인 섹션을 참조하세요 복원된 클러스터에 사용할 버전을 결정합니다. -
Aurora MySQL 호환 클러스터 스냅샷을 찾습니다.
-
AWS CLI의 일반 DB 클러스터 스냅샷에서 복원 절차를 따르십시오.
aws rds restore-db-cluster-from-snapshot \ --db-cluster-identifier
mynewdbcluster
\ --snapshot-identifiermydbclustersnapshot
\ --engine aurora-mysql -
생성하거나 복원한 클러스터에서 병렬 쿼리 기능을 사용할 수 있는지 확인합니다. CLI를 사용하여 병렬 쿼리 클러스터 생성에 나온 것과 동일한 확인 절차를 사용합니다.