Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jaws-asa-postgres-parameter
Search
kota
September 07, 2022
Technology
1
650
jaws-asa-postgres-parameter
jaws-asa-postgres-parameter
kota
September 07, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.5k
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
150
rubygem開発で鍛える設計力
joker1007
1
170
Snowflake Summit 2025全体振り返り / Snowflake Summit 2025 Overall Review
mtpooh
2
370
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
820
Definition of Done
kawaguti
PRO
6
470
Create a Rails8 responsive app with Gemini and RubyLLM
palladius
0
140
AIのAIによるAIのための出力評価と改善
chocoyama
2
530
OpenHands🤲にContributeしてみた
kotauchisunsun
1
340
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
420
あなたの声を届けよう! 女性エンジニア登壇の意義とアウトプット実践ガイド #wttjp / Call for Your Voice
kondoyuko
3
280
Oracle Audit Vault and Database Firewall 20 概要
oracle4engineer
PRO
3
1.7k
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Bash Introduction
62gerente
614
210k
Building Applications with DynamoDB
mza
95
6.5k
Writing Fast Ruby
sferik
628
61k
It's Worth the Effort
3n
184
28k
Music & Morning Musume
bryan
46
6.6k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Done Done
chrislema
184
16k
Code Reviewing Like a Champion
maltzj
524
40k
Thoughts on Productivity
jonyablonski
69
4.7k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3k
RailsConf 2023
tenderlove
30
1.1k
Transcript
Aurora Postgresの Parameter Group (監査・ログ系)を 調べてみた
自己紹介 名前:富松 広太(とみまつ こうた) 所属:justInCase Technologies Blog:https://cloud-aws-gcp.hateblo.jp/ twitter:@kotamemento (前職)2020~22
APN Ambassador、Top Engineers
はじめに 私の親はOracleです。 今日はPostgresの話です。 極力調べて来ましたが用語を Oracleと間違えていたら指定頂けますと幸いです 今日はDatabaseの話をします
会社紹介 & 背景 ・取引先に大手保険会社様が多い ・セキュリティ基準がいっぱい
要件 ・DBアクセスログ取得したい ・SQL実行ログを取得したい(パラメタ含む)
要件 ・DBアクセスログ取得したい ・SQL実行ログを取得したい(パラメタ含む) Parameter Groupがdefault値だった(現在開発中)
要件 ・DBアクセスログ取得したい ・SQL実行ログを取得したい(パラメタ含む) Parameter Groupがdefault値だった(現在開発中) 設定値を全部調べてしまおう!
要件 ・DBアクセスログ取得したい ・SQL実行ログを取得したい(パラメタ含む) ・ログ設定全般を見直したい ・その他必要な設定があれば追加したい
アクセスログ 設定項目 意味 変更後の値 log_connections 接続ログを取得するか 1(取得する) log_disconnections 接続ログ(切断時)を取得するか
1(取得する) 設定値 出力例 接続時 接続断時 接続のソース(IP)、ユーザー名、時間が出力される
SQL実行履歴を取得(パラメタ含む) 設定項目 意味 変更後の値 pgaudit.role pgauditで利用するrole名 rds_pgaudit(固定) pgaudit.log pgauditの記録対象
all -misc (checkpoint,vacuum,set等のその他扱 いの構文以外全て ) pgaudit.log_statement_once 同じSQLを複数回出力される際に省略して出力する 1(有効化) pgaudit.log_relation 関連するtable名等の情報を付与する 1(有効化) pgaudit.log_parameter SQL中のパラメータ情報を付与する 1(有効化) shared_preload_libraries pgAudit(ログに操作種別等の情報を付与し、追いやすくする設定) pgAudit(追加) 設定値 出力例 xx xx xx 実行sqlがパラメタ内容含めてログ出力される
SQL実行履歴で変更しなかった値 設定項目 意味 値(defaultのまま) log_statement sqlログを出力するか none log_min_duration_statement
SQLの実行に指定したミリ秒以上の時間がかかった場合に、 そのSQLと所要時間をログファイルに記録します - 出力例(log_statement利用時) 設定値 pgaudit利用時は適度にマスキングしてくれる log_statementがnoneでもpgauditを設定しておけば出力される パスワードが 出力されてしまう パスワードは マスキングされる
その他変更しなかった値 設定項目 意味 値(defaultのまま) log_temp_files 割り当てられたメモリよりも多くの一時領域を 必要とする処理があった場合に logするか default値 log_lock_waits
ロックにより待ちが発生した場合に logするか (default1秒以上) default値 log_autovacuum_min_duration 指定時間よりも長い vacumeをログ ※documentより初期値が推奨値でない default値 log_temp_files 割り当てられたメモリよりも多くの一時領域を 必要とする処理があった場合に logするか default値 結論 設定値 Perfomance Insightで良さそうなため出力しない
ログ設定全般 設定項目 意味 変更後の値 log_destination サーバーログの出力形式 csvlog(csv形式) force_admin_logging_level rdsadminでの操作ログ AWSからの操作(パスワード変更等)
log(取得する) 設定値 出力例(log_destination) 出力例(force_admin_logging_level) xx xx xx CSVで出力される rdsadminのログが出力される
設定項目 意味 設定値 rds.enable_plan_management query pran mangermentを有効化 db側でquery実行の必要あり 1(有効化) apg_plan_mgmt.capture_plan_baselines
実行計画を自動で収集する automatic apg_plan_mgmt.use_plan_baselines approvedまたはpreffedとして 登録した実行計画のみを利用対象とするか FALSE(default値) その他ログ以外の設定(QPM:Query Plan Management) 設定値
Query Plan Management(背景) 通常時 SQL 実行計画作成 (最適なアクセス方法を導く) DB ある時
SQL 実行計画作成 経年によりデータが変化し、 実行計画も変化する DB 定期的に統計情報収集 (データ特性を分析) 実行計画がデータに適さない時がある (性能問題となり表面化) 実行計画の適応タイミングを管理したい → Query Plan Management
Query Plan Management(利用後) 通常時 SQL 実行計画作成 DB 事前に利用可能な実行計画を選択 選択したもののみ利用可能にするか
apg_plan_mgmt.use_plan_baselines 実行計画の 候補 実行計画を自動で保持 apg_plan_mgmt.capture_plan_baselines 設定項目 意味 設定値 rds.enable_plan_management query pran mangermentを有効化 db側でquery実行の必要あり 1(有効化) apg_plan_mgmt.capture_plan_baselines 実行計画を自動で収集する automatic apg_plan_mgmt.use_plan_baselines approvedまたはpreffedとして 登録した実行計画のみを利用対象とするか FALSE(default値) 性能問題の発生想定と運用増のバランスから実行計画の収集のみ有効化
defaultから変更した値まとめ 設定項目 意味 変更後の値 log_destination サーバーログの出力形式 csvlog log_connections 接続ログを取得するか 1(取得する)
log_disconnections 接続ログ(切断時)を取得するか 1(取得する) force_admin_logging_level rdsadminでの操作ログ log pgaudit.role pgauditで利用するrole名 rds_pgaudit pgaudit.log pgauditの記録対象 all -misc pgaudit.log_statement_once 同じSQLを複数回出力される際に省略して出力する 1(有効化) pgaudit.log_relation 関連するtable名等の情報を付与する 1(有効化) pgaudit.log_parameter SQL中のパラメータ情報を付与する 1(有効化) rds.enable_plan_management query pran mangermentを有効化 db側でquery実行の必要あり 1(有効化) apg_plan_mgmt.capture_plan_baselines 実行計画を自動で収集する automatic apg_plan_mgmt.use_plan_baselines approvedまたはpreffedとして 登録した実行計画のみを利用対象とするか FALSE shared_preload_libraries pgAudit(ログに操作種別等の情報を付与し、追いやすくする設定 ) auto_explain(実行計画を自動的にログに残す設定) (追加)pgAudit pgauditとqpmはパラメタ以外も設定が必要(次ページ参考)
RDS および Aurora PostgreSQL ログの操作 https://aws.amazon.com/jp/blogs/news/working-with-rds-and-aurora-postgresql-logs-part-1/ pgaudit(有効化手順)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-postgresql-pgaudit Query Plan Management(有効化手順) https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Optimize.html postgres document https://www.postgresql.jp/document/14/html/runtime-config.html 分かりやすかったブログ https://www.sraoss.co.jp/tech-blog/category/pgsql/ 参考リンク
さいごに エンジニア採用中です。カジュアル面談、twitter相談、社員紹介等なんでもありです