RDSインスタンスのmax_connectionsのデフォルト値と、デフォルト値に戻す方法について

2020.12.08

どうも、コンサルティング部の後藤です。

困っていたこと

  1. 対象RDSインスタンスタイプの「max_connections」のデフォルト値を知りたい。
  2. max_connectionsを既に任意の値に指定しており、デフォルトの設定に戻す方法を知りたい。

回答

(1). 対象RDSインスタンスタイプの「max_connections」のデフォルト値を知りたい

RDSのパラメータグループで設定されている「max_conenctions」のデフォルト値は以下の計算式によって設定されております[1]。

{DBInstanceClassMemory/12582880}

DBInstanceClassMemoryはDBインスタンスに割り当てられたメモリ容量になります。

計算式で算出した値と実際の値は異なるため、実値についてはRDSインスタンスに接続した後、以下コマンドでmax_connectionsの値を確認することが出来ます。

MySQL > SHOW GLOBAL VARIABLES LIKE 'max_connections';
+-----------------+-------+
| Variable_name  | Value |
+-----------------+-------+
| max_connections | 640  |
+-----------------+-------+
1 row in set (0.00 sec)

今回は db.t3.large を対象としていたため、max_connectionsのデフォルト値は640となっておりました。


(2). max_connectionsを既に任意の値に指定しており、デフォルトの設定に戻す方法を知りたい。

max_connectionsの値を以下のように任意の値に変更してしまっていた場合、

設定値をデフォルト値で設定されている{DBInstanceClassMemory/12582880}に設定し直すことで、デフォルト値に戻すことが可能です。

max_connectionsの適用タイプはdynamicのため、設定変更後の適用に再起動は不要です。

また補足として、RDSのベストプラクティスではmax_connectionsの値は変更せず、必要であればインスタンスタイプのスケールアップを実施頂くのが推奨となっております。[1]

これらの値を変更することはお勧めできません。もっと接続が必要な場合は、もっと大きい RDS インスタンスサイズにアップグレードすることをお勧めします。

参考情報

[1] Amazon RDS for MySQL のパラメーターを設定するためのベストプラクティス