Posted: 2021-10-10
| Categories:
RDS
| Tags:
PostgreSQL ,
RDS
背景 AWS RDS PostgreSQL の wal_level を logical にする必要が出た
Canvas LMS + AWS RDS の構成でセットアップを行おうとすると、
PostgreSQL の wal_level が logical である事を求められた。
通常、postgres.conf を修正するが、RDS ではできないのでパラメーターグループの設定を行った。
rds.logical_replication = 1 と変更する必要がある。
環境 設定 値 DB エンジン Aurora PostgreSQL エンジンバージョン 10.14 DB クラスターのパラメータグループ default.aurora-postgresql10
手順 パラメーターグループをデフォルトのまま使っていたので、別途新しくパラメーターグループを作った。
DB クラスターパラメータグループに作る。
参考 wal_level のエラー stable/2021-04-14 のリリースを用いての構築では問題なかったが、
stable/2021-08-18 のリリースを用いた構築では
RAILS_ENV=production bundle exec rake db:initial_setup
の段階でエラーがでて先に進まなくなった。
ERROR: wal_level must be set to 'logical'
HINT: WAL control functions cannot be executed when wal_level < logical.
正確には stable/2021-04-14 のリリースでもディスカッション機能で wal_level logical のエラーは出ていた。
Canvas LMS 自体が、この機能を多用するようになったのかもしれない。
Read more... Posted: 2017-08-08
| Categories:
AWS
| Tags:
AWS ,
RDS
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 ) Single-AZ DB インスタンスでこの DB スナップショットを作成すると、I/O が短時間中断します。この時間は、DB インスタンスのサイズやクラスによって異なり、数秒から数分になります。
結構ばらつきがあるのに注意が必要だ。
Read more... Posted: 2017-08-08
| Categories:
cheatsheet
| Tags:
AWS ,
cheatsheet ,
RDS
パラメーターグループ 作る aws rds create-db-cluster-parameter-group \
--db-cluster-parameter-group-name hoge-canvas-postgresql10 \
--db-parameter-group-family aurora-postgresql10 \
--description "for wal_level must be set to logical"
参考 aws rds create-db-cluster-parameter-group help
編集 aws rds modify-db-cluster-parameter-group \
--db-cluster-parameter-group-name hoge-canvas-postgresql10 \
--parameters "ParameterName=rds.logical_replication,ParameterValue=1,ApplyMethod=pending-reboot"
設定するパラメーターによっては即時反映 ApplyMethod=immediate が使えず
An error occurred (InvalidParameterCombination) when calling the ModifyDBClusterParameterGroup operation: cannot use immediate apply method for static parameter
というエラーが出る。この場合、 ApplyMethod=pending-reboot を使う必要がある。
staticかどうか?はWebUIの『タイプの適用』の箇所を見るとわかる。
反映 aws rds modify-db-cluster \
--apply-immediately \
--db-cluster-identifier hoge \
--db-cluster-parameter-group-name hoge-canvas-postgresql10
パラメータグループ作成 パラメータグループ名: test-aurora 説明: utf8mb4 ファミリー: aurora5.6
を指定して、とりあえず設定自体を作る $ aws rds create-db-parameter-group \
--db-parameter-group-name test-aurora \
--description utf8mb4 \
--db-parameter-group-family aurora5.6 \
構築 aws rds create-db-cluster \
--engine aurora-postgresql \
--engine-mode serverless \
--engine-version 10.12 \
--copy-tags-to-snapshot \
--enable-http-endpoint \
--db-subnet-group-name prod \
--vpc-security-group-ids sg-1111111111111111 \
--db-cluster-identifier sample-cluster \
--master-username postgres \
--master-user-password himituno
既存のパラメータグループから情報をコピーする aws rds describe-db-parameters –db-parameter-group-name test-aurora > rds-test-aurora.json
Read more...