

# Aurora MySQL での並列クエリ DB クラスターの作成
<a name="aurora-mysql-parallel-query-creating-cluster"></a>

 パラレルクエリを使用した Aurora MySQL クラスターの作成や、そのクラスターへの新しいインスタンスの追加、あるいは他の管理操作の実行には、他の Aurora MySQL クラスターと同様な、AWS マネジメントコンソール や AWS CLI のテクニックを使用します。パラレルクエリを処理するための新しいクラスターを作成できます。また、パラレルクエリを使用する DB クラスターは、MySQL と互換性がある Aurora DB クラスターのスナップショットから復元することによって作成することもできます。新しい Aurora MySQL クラスターを作成するプロセスに詳しくない場合は、「[Amazon Aurora DB クラスターの作成](Aurora.CreateInstance.md)」の背景情報と前提条件を参照してください。

Aurora MySQL のエンジンのバージョンを選択する場合は、利用可能な最新のバージョンを選択することをお勧めします。現在、すべての利用可能なバージョンの Aurora MySQL はパラレルクエリをサポートしています。最新のバージョンを使用している場合は、パラレルクエリのオン/オフを切り替えたり、既存のクラスターでパラレルクエリを使用したりする際の柔軟性が増します。

 新しいクラスターを作成する場合でも、スナップショットから復元する場合でも、同じテクニックを使用して、他の Aurora MySQL クラスターで行う新しい DB インスタンスを追加できます。

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 マネジメントコンソール コンソールでパラレルクエリクラスターを作成するには**

1.  「AWS マネジメントコンソール」一般的な [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` の設定が true であることを確認します。

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

1. (Aurora MySQL バージョン 2 の場合) `aurora_disable_hash_join` 設定が false になっていることを確認します。

   ```
   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` オプションには、作成してパラメータの値に `aurora_parallel_query=ON` を指定した DB クラスターパラメータグループの名前を指定します。このオプションを省略すると、デフォルトのパラメータグループを使用してクラスターを作成してから、後でこのようなカスタムパラメータグループを使用するように変更できます。
   + `--engine-version` オプションには、パラレルクエリと互換性がある Aurora MySQL のバージョンを使用します。必要に応じて、「[Aurora MySQL での並列クエリの最適化パラレルクエリクラスターの計画](aurora-mysql-parallel-query-optimizing.md#aurora-mysql-parallel-query-planning)」の手順に従ってバージョンの一覧を取得します。

     次のサンプルはその方法を示しています。*\$1CLUSTER\$1ID* などの環境可変は、それぞれ使用する値に置き換えてください。この例では、`--manage-master-user-password` オプションも指定して、マスターユーザーパスワードを生成し、Secrets Manager で管理します。詳細については、「[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) と同じ確認手順を使用してください。