問題
pumaでthreadを16、workerを4、それをインスタンス2台とかで立てるとする。
ActiveRecordのconnection poolはpumaのスレッド数に合わせて16とする。
負荷をかけると 16 * 4 * 2 = 128 のコネクションが発生する。
Aurora serverlessでキャパシティを2に設定したとき、デフォルトのパラメータグループで
max_connectionsは90
超えるとToo Many Connectionsが発生する。
キャパシティ4だとmax_connections 135。
解決
Appサーバーをオートスケールするか、
オートスケールがいらないとき(Aurora serverlessは普段休眠させておきたいケース。イベント本番のときだけ強くするとか。)は手動スケールしてpumaのthreadとworkerを調整する