2017/07/18 replicaが高負荷になった
replica1のmax_connectionsを確認したところ上限値1000でした
mysql> show global variables like 'max_connections';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1000 |
+-----------------+-------+
1 row in set (0.01 sec)この障害はreplicaがボトルネックと断定できます。
AWS_RDS_Aurora_監査ログ取得のための変更
大体、ClassmethodのページのようにIAMを作成し付与します。
Classmethodのサンプルだと、全てのクエリをロギングする設定なので絞ります。 クラスターパラメータグループを変えます。
[ RDS ]->[ クラスター ]->[ aurora ]->[ DB クラスターのパラメータグループ ]のリンクをクリック->[ フィルタ パラメータ ]のテキストフィールドに[ audit ]を入力 下記の要素がリストアップするので変更します。都度、[ 変更の保存 ]をする必要があります。
- server_audit_events -> QUERY_DCL, QUERY_DDL, TABLE
ここで、ロギング対象を絞ります。パラメータの詳細についてはここを参照
- server_audit_excl_users -> 空欄 ( [If not empty, it contains the list of users whose activity will NOT be logged] 全てのユーザの変更を取りたいため空欄 )
- server_audit_incl_users -> 空欄 ( [If not empty, it contains a comma-delimited list of users whose activity will be logged] )
- server_audit_logging -> 1 ( ロギングを有効にする場合は 1 )
- server_audit_logs_upload -> 1 (CloudWatch logsへログのアップロードを行う場合は 1 )
DBスナップショットの作成時のダウンタイム
Single-AZ DB インスタンスでこの DB スナップショットを作成すると、I/O が短時間中断します。この時間は、DB インスタンスのサイズやクラスによって異なり、数秒から数分になります。結構ばらつきがあるのに注意が必要だ。
参考
Amazon Aurora を使用する際のメモ - Qiita
- 最大 15 個の Aurora レプリカ
max_connectionはいくつか? コネクションのエラーが出たら、調査してみよう
- too many connectionsが出たらmax_connections、wait_timeoutを確認してみよう
- AWSのRDSでmax_connections、wait_timeoutを変更する
私はやったことないけど、 wait_timeoutを短くする、というアプローチもあるか
実測値は理論値より少なく設定されている。
RDS(Mysql)のMaxConnection数 - Qiita
Amazon RDS で max_connections が変わらなかった - Qiita
このページは理論値を列挙してあるぽい max_connections at AWS RDS MySQL Instance Sizes | Tritone Consultants
Auroraのクラスターについて
Auroraの各種エンドポイントとダウンタイムの検証 | 外道父の匠
RDSのメンテナンスについて
Amazon RDSのメンテナンスについて調べてみた 体験談と調査が参考になる
手順
RDS管理画面の[ Recommendations ]->[ アクティブ ]->[ 保留中のメンテナンスが利用可能です ]->インスタンスのチェックボックスをオン->[ 今すぐ適用 ]->[ 適用を今すぐ確認する ]