Amazon Aurora MySQL のパフォーマンスとスケーリングの管理
Aurora MySQL DB インスタンスのスケーリング
Aurora MySQL DB インスタンスは、インスタンススケーリングと読み取りスケーリングの 2 つの方法でスケールできます。読み取りスケーリングの詳細については、「読み取りのスケーリング」を参照してください。
DB クラスター内の各 DB インスタンスの DB インスタンスクラスを変更することで、Aurora MySQL DB クラスターをスケーリングできます。Aurora MySQL は、Aurora 用に最適化された複数の DB インスタンスクラスをサポートしています サイズが 40 TB より大きい Aurora クラスターには、db.t2 または db.t3 インスタンスクラスを使用しないでください。Aurora MySQL でサポートされている DB インスタンスクラスの詳細な仕様については、「Aurora DB インスタンスクラス」を参照してください。
Aurora MySQL DB インスタンスへの最大接続数
Aurora MySQL DB インスタンスへの許可されている接続の最大数は、DB インスタンスのインスタンスレベルパラメータグループの max_connections
パラメータによって決まります。
次の表は、Aurora MySQL で使用できる DB インスタンスクラスごとの max_connections
のデフォルト値です。Aurora MySQL DB インスタンスへの接続の最大数を増やすには、このインスタンスをメモリ量のより多い DB インスタンスクラスにスケールするか、インスタンスの DB パラメータグループの max_connections
パラメータの値を最大 16,000 に設定できます。
Aurora Serverless v2 インスタンスによるこのパラメータの処理方法については、「Aurora Serverless v2 の最大容量に基づいて Aurora が計算するパラメータ」を参照してください。
インスタンスクラス | max_connections のデフォルト値 |
---|---|
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.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 |
接続制限のデフォルトをカスタマイズする新しいパラメータグループを作成すると、DBInstanceClassMemory
値に基づく式を使用してデフォルトの接続制限が取得されます。前の表で示されているように、式は、メモリが段階的により大きな R3、R4、R5 インスタンスへと倍増すると 1000 ごとに増える接続最大数を、また T2 インスタンス、および T3 インスタンスの異なるメモリサイズでは 45 ごとに増える接続最大数を生成します。
DBInstanceClassMemory
を計算する方法の詳細については、「DB パラメータの指定」を参照してください。
Aurora MySQL と RDS for MySQL DB インスタンスには、異なる量のメモリオーバーヘッドがあります。したがって、同じインスタンスクラスを使用する RDS for MySQL DB インスタンスと Aurora MySQL インスタンスでは、max_connections
値が異なる場合があります。テーブルの値は Aurora MySQL DB インスタンスにのみ適用されます。
T2 インスタンス、および T3 インスタンスの接続制限がかなり低いのは、Aurora では、これらのインスタンスが本番稼働のワークロードのためではなく、開発やテストシナリオのみを目的としているためです。
デフォルトの接続制限は、バッファープールやクエリのキャッシュといった多くのメモリを消費する他の処理のデフォルト値を使用するシステムに合わせて調整されています。クラスターのこれらの他の設定を変更する場合は、DB インスタンスで使用可能なメモリの増減に応じて接続制限を調整することを検討してください。
Aurora MySQL 用のテンポラリストレージの制限
Aurora MySQL は、Aurora ストレージサブシステムにテーブルとインデックスを格納します。Aurora MySQL は、非永続的なテンポラリファイル用に、分離したテンポラリストレージを使用します。これには、クエリ処理中の大きなデータセットのソートや、インデックスの作成オペレーションなどの目的に使用するファイルが含まれます。ストレージの詳細については、「Amazon Aurora ストレージと信頼性」を参照してください。
次の表は、Aurora MySQL DB インスタンスクラス別に使用可能なテンポラリストレージの最大量を示しています。
DB インスタンスクラス | 使用可能なテンポラリストレージの最大量 (GiB) |
---|---|
db.x2g.16xlarge | 1280 |
db.x2g.12xlarge | 960 |
db.x2g.8xlarge | 640 |
db.x2g.4xlarge | 320 |
db.x2g.2xlarge | 160 |
db.x2g.xlarge | 80 |
db.x2g.large | 40 |
db.r6g.16xlarge | 1280 |
db.r6g.12xlarge | 960 |
db.r6g.8xlarge | 640 |
db.r6g.4xlarge | 320 |
db.r6g.2xlarge | 160 |
db.r6g.xlarge | 80 |
db.r6g.large | 32 |
db.r5.24xlarge | 1920 |
db.r5.16xlarge | 1280 |
db.r5.12xlarge | 960 |
db.r5.8xlarge | 640 |
db.r5.4xlarge | 320 |
db.r5.2xlarge | 160 |
db.r5.xlarge | 80 |
db.r5.large | 32 |
db.r4.16xlarge | 1280 |
db.r4.8xlarge | 640 |
db.r4.4xlarge | 320 |
db.r4.2xlarge | 160 |
db.r4.xlarge | 80 |
db.r4.large | 32 |
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 Serverless v2 には適用されません。)