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
660
jaws-asa-postgres-parameter
jaws-asa-postgres-parameter
kota
September 07, 2022
Tweet
Share
Other Decks in Technology
See All in Technology
最近読んで良かった本 / Yokohama North Meetup #10
mktakuya
0
260
[Journal club] Thinking in Space: How Multimodal Large Language Models See, Remember, and Recall Spaces
keio_smilab
PRO
0
110
Kotlinで型安全にバイテンポラルデータを扱いたい! ReladomoラッパーをAIと実装してみた話
itohiro73
3
190
書籍『実践 Apache Iceberg』の歩き方
ishikawa_satoru
0
450
今のコンピュータ、AI にも Web にも 向いていないので 作り直そう!!
piacerex
0
500
30分でわかる!!『OCI で学ぶクラウドネイティブ実践 X 理論ガイド』
oracle4engineer
PRO
1
110
CloudComposerによる大規模ETL 「制御と実行の分離」の実践
leveragestech
0
150
新米エンジニアをTech Leadに任命する ー 成長を支える挑戦的な人と組織のマネジメント
naopr
1
340
ストレージエンジニアの仕事と、近年の計算機について / 第58回 情報科学若手の会
pfn
PRO
4
960
AI連携の新常識! 話題のMCPをはじめて学ぶ!
makoakiba
0
180
kotlin-lsp の開発開始に触発されて、Emacs で Kotlin 開発に挑戦した記録 / kotlin‑lsp as a Catalyst: My Journey to Kotlin Development in Emacs
nabeo
2
280
OPENLOGI Company Profile for engineer
hr01
1
46k
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
253
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
2.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Designing Experiences People Love
moore
142
24k
Producing Creativity
orderedlist
PRO
348
40k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Gamification - CAS2011
davidbonilla
81
5.5k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Become a Pro
speakerdeck
PRO
29
5.6k
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相談、社員紹介等なんでもありです