

# Amazon Aurora MySQL のパフォーマンスとスケーリングの管理
<a name="AuroraMySQL.Managing.Performance"></a>

## Aurora MySQL DB インスタンスのスケーリング
<a name="AuroraMySQL.Managing.Performance.InstanceScaling"></a>

Aurora MySQL DB インスタンスは、インスタンススケーリングと読み取りスケーリングの 2 つの方法でスケールできます。読み取りスケーリングの詳細については、「[読み取りのスケーリング](Aurora.Managing.Performance.md#Aurora.Managing.Performance.ReadScaling)」を参照してください。

DB クラスター内の各 DB インスタンスの DB インスタンスクラスを変更することで、Aurora MySQL DB クラスターをスケーリングできます。Aurora MySQL は、Aurora 用に最適化された複数の DB インスタンスクラスをサポートしています サイズが 40 TB より大きい Aurora クラスターには、db.t2 または db.t3 インスタンスクラスを使用しないでください。Aurora MySQL でサポートされている DB インスタンスクラスの詳細な仕様については、「[Amazon Aurora DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。

**注記**  
T DB インスタンスクラスは、開発サーバーおよびテストサーバー、またはその他の本稼働以外のサーバーにのみ使用することをお勧めします。T インスタンスクラスの詳細については、「[開発やテストのための T インスタンスクラスの使用](AuroraMySQL.BestPractices.Performance.md#AuroraMySQL.BestPractices.T2Medium)」を参照してください。

## Aurora MySQL DB インスタンスへの最大接続数
<a name="AuroraMySQL.Managing.MaxConnections"></a><a name="max_connections"></a>

Aurora MySQL DB インスタンスへの許可されている接続の最大数は、DB インスタンスのインスタンスレベルパラメータグループの `max_connections` パラメータによって決まります。

次の表は、Aurora MySQL で使用できる DB インスタンスクラスごとの `max_connections` のデフォルト値です。Aurora MySQL DB インスタンスへの接続の最大数を増やすには、このインスタンスをメモリ量のより多い DB インスタンスクラスにスケールするか、インスタンスの DB パラメータグループの `max_connections` パラメータの値を最大 16,000 に設定できます。

**ヒント**  
アプリケーションが頻繁に接続を開いたり閉じたりする場合や、長時間の接続を多数開いたままにする場合は、Amazon RDS Proxy の使用を推奨します。RDS Proxy は、接続プーリングを使用してデータベース接続を安全かつ効率的に共有する、フルマネージドの高可用性データベースプロキシです。RDS Proxy の詳細については、[Amazon RDS Proxy for Aurora](rds-proxy.md) を参照してください。

 Aurora Serverless v2 インスタンスによるこのパラメータの処理方法については、「[Aurora Serverless v2 の最大接続数](aurora-serverless-v2.setting-capacity.md#aurora-serverless-v2.max-connections)」を参照してください。


| インスタンスクラス | max\$1connections のデフォルト値 | 
| --- | --- | 
|  db.t2.small  |  45  | 
|  db.t2.medium  |  90  | 
|  db.t3.small  |  45  | 
|  db.t3.medium  |  90  | 
|  db.t3.large  |  135  | 
|  db.t4g.medium  |  90  | 
|  db.t4g.large  |  135  | 
|  db.r3.large  |  1,000  | 
|  db.r3.xlarge  |  2000  | 
|  db.r3.2xlarge  |  3000  | 
|  db.r3.4xlarge  |  4000  | 
|  db.r3.8xlarge  |  5000  | 
|  db.r4.large  |  1,000  | 
|  db.r4.xlarge  |  2000  | 
|  db.r4.2xlarge  |  3000  | 
|  db.r4.4xlarge  |  4000  | 
|  db.r4.8xlarge  |  5000  | 
|  db.r4.16xlarge  |  6000  | 
|  db.r5.large  |  1,000  | 
|  db.r5.xlarge  |  2000  | 
|  db.r5.2xlarge  |  3000  | 
|  db.r5.4xlarge  |  4000  | 
|  db.r5.8xlarge  |  5000  | 
|  db.r5.12xlarge  |  6000  | 
|  db.r5.16xlarge  |  6000  | 
|  db.r5.24xlarge  |  7000  | 
| db.r6g.large | 1000 | 
| db.r6g.xlarge | 2000 | 
| db.r6g.2xlarge | 3000 | 
| db.r6g.4xlarge | 4000 | 
| db.r6g.8xlarge | 5000 | 
| db.r6g.12xlarge | 6000 | 
| db.r6g.16xlarge | 6000 | 
| db.r6i.large | 1,000 | 
| db.r6i.xlarge | 2000 | 
| db.r6i.2xlarge | 3000 | 
| db.r6i.4xlarge | 4000 | 
| db.r6i.8xlarge | 5000 | 
| db.r6i.12xlarge | 6000 | 
| db.r6i.16xlarge | 6000 | 
| db.r6i.24xlarge | 7000 | 
| db.r6i.32xlarge | 7000 | 
| db.r7g.large | 1,000 | 
| db.r7g.xlarge | 2000 | 
| db.r7g.2xlarge | 3000 | 
| db.r7g.4xlarge | 4000 | 
| db.r7g.8xlarge | 5000 | 
| db.r7g.12xlarge | 6000 | 
| db.r7g.16xlarge | 6000 | 
| db.r7i.large | 1,000 | 
| db.r7i.xlarge | 2000 | 
| db.r7i.2xlarge | 3000 | 
| db.r7i.4xlarge | 4000 | 
| db.r7i.8xlarge | 5000 | 
| db.r7i.12xlarge | 6000 | 
| db.r7i.16xlarge | 6000 | 
| db.r7i.24xlarge | 7000 | 
| db.r7i.48xlarge | 8000 | 
| db.r8g.large | 1,000 | 
| db.r8g.xlarge | 2000 | 
| db.r8g.2xlarge | 3000 | 
| db.r8g.4xlarge | 4000 | 
| db.r8g.8xlarge | 5000 | 
| db.r8g.12xlarge | 6000 | 
| db.r8g.16xlarge | 6000 | 
| db.r8g.24xlarge | 7000 | 
| db.r8g.48xlarge | 8000 | 
| db.x2g.large | 2000 | 
| db.x2g.xlarge | 3000 | 
| db.x2g.2xlarge | 4000 | 
| db.x2g.4xlarge | 5000 | 
| db.x2g.8xlarge | 6000 | 
| db.x2g.12xlarge | 7000 | 
| db.x2g.16xlarge | 7000 | 

**ヒント**  
`max_connections` パラメータ計算では、選択した Aurora MySQL インスタンスクラスで 2 を底とする対数 (自然対数とは異なる) とバイト単位の `DBInstanceClassMemory` 値を使用します。パラメータは整数値のみを受け入れ、小数点以下は計算から切り捨てられます。この式は、次のように接続制限を実装します。  
より大きな R3、R4、R5 インスタンスの場合は 1,000 ごとの接続の増分
T2 および T3 インスタンスメモリバリアントの場合は 45 ごとの接続の増分
例: db.r6g.large の場合、式の計算は 1,069.2 となりますが、システムは 1,000 を実装して一貫した増分パターンを維持します。

接続制限のデフォルトをカスタマイズする新しいパラメータグループを作成すると、`DBInstanceClassMemory` 値に基づく式を使用してデフォルトの接続制限が取得されます。前の表で示されているように、式は、メモリが段階的により大きな R3、R4、R5 インスタンスへと倍増すると 1000 ごとに増える接続最大数を、また T2 インスタンス、および T3 インスタンスの異なるメモリサイズでは 45 ごとに増える接続最大数を生成します。

`DBInstanceClassMemory` を計算する方法の詳細については、「[DB パラメータの指定](USER_ParamValuesRef.md)」を参照してください。

Aurora MySQL と RDS for MySQL DB インスタンスには、異なる量のメモリオーバーヘッドがあります。したがって、同じインスタンスクラスを使用する RDS for MySQL DB インスタンスと Aurora MySQL インスタンスでは、`max_connections` 値が異なる場合があります。テーブルの値は Aurora MySQL DB インスタンスにのみ適用されます。

**注記**  
T2 インスタンス、および T3 インスタンスの接続制限がかなり低いのは、Aurora では、これらのインスタンスが本番稼働のワークロードのためではなく、開発やテストシナリオのみを目的としているためです。

デフォルトの接続制限は、バッファプールやクエリのキャッシュといった多くのメモリを消費する他の処理のデフォルト値を使用するシステムに合わせて調整されています。クラスターのこれらの他の設定を変更する場合は、DB インスタンスで使用可能なメモリの増減に応じて接続制限を調整することを検討してください。

## Aurora MySQL 用の一時ストレージの制限
<a name="AuroraMySQL.Managing.TempStorage"></a>

Aurora MySQL は、Aurora ストレージサブシステムにテーブルとインデックスを格納します。Aurora MySQL は、非永続的な一時ファイルや非 InnoDB 一時テーブル用に、別個の一時ストレージまたはローカルストレージを使用します。ローカルストレージには、クエリ処理中の大きなデータセットのソートや、インデックスの作成オペレーションなどの目的に使用するファイルも含まれます。InnoDB 一時テーブルは含まれません。

Aurora MySQL バージョン 3 の一時テーブルの詳細については、「[Aurora MySQL バージョン 3 での新しい一時テーブルの動作](ams3-temptable-behavior.md)」を参照してください。バージョン 2 の一時テーブルの詳細については、「[Aurora MySQL バージョン 2 での一時テーブルスペースの動作](AuroraMySQL.CompareMySQL57.md#AuroraMySQL.TempTables57)」を参照してください。

これらのボリュームのデータと一時ファイルは、DB インスタンスの起動時と停止時、およびホストの交換時に失われます。

これらのローカルストレージボリュームは、Amazon Elastic Block Store (EBS) によってバックアップされ、より大きな DB インスタンスクラスを使用することで拡張できます。ストレージの詳細については、「[Amazon Aurora ストレージ](Aurora.Overview.StorageReliability.md)」を参照してください。

ローカルストレージは、`LOAD DATA FROM S3` や `LOAD XML FROM S3` を使用して Amazon S3 からデータをインポートする場合や、SELECT INTO OUTFILE S3 を使用して S3 にデータをエクスポートする場合にも使用します。S3 からのインポートと S3 へのエクスポートの詳細については、以下を参照してください。
+ [Amazon S3 バケットのテキストファイルから Amazon Aurora MySQL DB クラスターへのデータのロード](AuroraMySQL.Integrating.LoadFromS3.md)
+ [Amazon Aurora MySQL DB クラスターから Amazon S3 バケット内のテキストファイルへのデータの保存](AuroraMySQL.Integrating.SaveIntoS3.md)

Aurora MySQL は、ほとんどの Aurora MySQL DB インスタンスクラス (db.t2、db.t3、db.t4g などのバーストパフォーマンスインスタンスクラスタイプは除く) のエラーログ、一般ログ、スロークエリログ、監査ログに別個の永続ストレージを使用します。このボリュームのデータは、DB インスタンスの起動時や停止時、ホストの交換時に保持されます。

また、この永続的ストレージボリュームは Amazon EBS-backed であり、DB インスタンスクラスに応じた固定サイズを持ちます。より大きな DB インスタンスクラスを使用して拡張することはできません。

次の表は、Aurora MySQL DB インスタンスクラス別に使用可能な一時ストレージと永続的ストレージの最大量を示しています。Aurora の DB インスタンスクラスサポートの詳細については、「[Amazon Aurora DB インスタンスクラス](Concepts.DBInstanceClass.md)」を参照してください。


| DB インスタンスクラス | 使用可能な一時ストレージ/ローカルストレージの最大量 (GiB) | ログファイルに使用可能な追加のストレージの最大量 (GiB) | 
| --- | --- | --- | 
| db.x2g.16xlarge | 1280 | 500 | 
| db.x2g.12xlarge | 960 | 500 | 
| db.x2g.8xlarge | 640 | 500 | 
| db.x2g.4xlarge | 320 | 500 | 
| db.x2g.2xlarge | 160 | 60 | 
| db.x2g.xlarge | 80 | 60 | 
| db.x2g.large | 40 | 60 | 
| db.r8g.48xlarge | 3840 | 500 | 
| db.r8g.24xlarge | 1920 | 500 | 
| db.r8g.16xlarge | 1280 | 500 | 
| db.r8g.12xlarge | 960 | 500 | 
| db.r8g.8xlarge | 640 | 500 | 
| db.r8g.4xlarge | 320 | 500 | 
| db.r8g.2xlarge | 160 | 60 | 
| db.r8g.xlarge | 80 | 60 | 
| db.r8g.large | 32 | 60 | 
| db.r7i.48xlarge | 3840 | 500 | 
| db.r7i.24xlarge | 1920 | 500 | 
| db.r7i.16xlarge | 1280 | 500 | 
| db.r7i.12xlarge | 960 | 500 | 
| db.r7i.8xlarge | 640 | 500 | 
| db.r7i.4xlarge | 320 | 500 | 
| db.r7i.2xlarge | 160 | 60 | 
| db.r7i.xlarge | 80 | 60 | 
| db.r7i.large | 32 | 60 | 
| db.r7g.16xlarge | 1280 | 500 | 
| db.r7g.12xlarge | 960 | 500 | 
| db.r7g.8xlarge | 640 | 500 | 
| db.r7g.4xlarge | 320 | 500 | 
| db.r7g.2xlarge | 160 | 60 | 
| db.r7g.xlarge | 80 | 60 | 
| db.r7g.large | 32 | 60 | 
| db.r6i.32xlarge | 2560 | 500 | 
| db.r6i.24xlarge | 1920 | 500 | 
| db.r6i.16xlarge | 1280 | 500 | 
| db.r6i.12xlarge | 960 | 500 | 
| db.r6i.8xlarge | 640 | 500 | 
| db.r6i.4xlarge | 320 | 500 | 
| db.r6i.2xlarge | 160 | 60 | 
| db.r6i.xlarge | 80 | 60 | 
| db.r6i.large | 32 | 60 | 
| db.r6g.16xlarge | 1280 | 500 | 
| db.r6g.12xlarge | 960 | 500 | 
| db.r6g.8xlarge | 640 | 500 | 
| db.r6g.4xlarge | 320 | 500 | 
| db.r6g.2xlarge | 160 | 60 | 
| db.r6g.xlarge | 80 | 60 | 
| db.r6g.large | 32 | 60 | 
| db.r5.24xlarge | 1920 | 500 | 
| db.r5.16xlarge | 1280 | 500 | 
| db.r5.12xlarge | 960 | 500 | 
| db.r5.8xlarge | 640 | 500 | 
| db.r5.4xlarge | 320 | 500 | 
| db.r5.2xlarge | 160 | 60 | 
| db.r5.xlarge | 80 | 60 | 
| db.r5.large | 32 | 60 | 
| db.r4.16xlarge | 1280 | 500 | 
| db.r4.8xlarge | 640 | 500 | 
| db.r4.4xlarge | 320 | 500 | 
| db.r4.2xlarge | 160 | 60 | 
| db.r4.xlarge | 80 | 60 | 
| db.r4.large | 32 | 60 | 
| db.t4g.large | 32 | – | 
| db.t4g.medium | 32 | – | 
| db.t3.large | 32 | – | 
| db.t3.medium | 32 | – | 
| db.t3.small | 32 | – | 
| db.t2.medium | 32 | – | 
| db.t2.small | 32 | – | 

**重要**  
 これらの値は、各 DB インスタンスの理論上の最大空きストレージ量を表します。実際に使用可能なローカルストレージは、これより小さい場合があります。Aurora は、管理プロセスにローカルストレージを使用します。DB インスタンスでは、データをロードする前でもローカルストレージを使用します。特定の DB インスタンスで使用できる一時ストレージをモニタリングするには、 `FreeLocalStorage` CloudWatch メトリクスを使用できます。詳細については、[Amazon Aurora の Amazon CloudWatch メトリクス](Aurora.AuroraMonitoring.Metrics.md) を参照してください。現時点での空きストレージの量を確認できます。空きストレージの量を時間の経過に合わせてグラフ化することもできます。時間の経過に合わせて空きストレージをモニタリングすると、値が増加または減少しているかどうかを判断したり、最小値、最大値、または平均値を確認したりするのに役立ちます。  
(これは Aurora Serverless v2 には適用されません。)