[登壇レポート] コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
コスト重視でログ運用したい
こんにちは、のんピ(@non____97)です。
皆さんはコスト重視でログ運用したいと思ったことはありますか? 私はあります。
そちらの問題解決アプローチの整理として、2025/4/23のJAWS-UG東京 Presents 400にて、「コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた」というタイトルで登壇をしてきました。
登壇資料
使用したコード
Aurora PostgreSQLのログをS3バケットに出力する処理
S3バケットに出力されたAurora PostgreSQLのログをパースし、Parquet形式に変換する処理
ログ取得の目的と、重要視する評価軸を定めよう
コスト最優先でAurora PostgreSQLのログ分析基盤を作ってみました。
ちなみに今回は行いませんでしたが、特定のログメッセージで通知させたい場合は*/error/*/postgresql.log.*.parquet
など特定のログ種別に対してトリガーするようなEventBridge Ruleを用意し、DuckDBでそのログメッセージを検索するLambda関数をキックするようにすれば簡単に実装できると思います。
ログを出力させる場合は、ログ取得の目的と、重要視する評価軸を定め、合意することが重要です。これが定まっていないとやるべきタスクの方向性の整理やメンバーや意思決定者間の調整難易度が上がってしまいます。
ログ出力は具体的な運用を考えずに「とりあえず」で決めてしまいがちです。そして、「とりあえず」で決めたことは結局その後そのままになってしまうものです。どうしても「とりあえず」で始めるなら、せめて、いつ正式な判断をするのかを合意しておきましょう。
また、Auroraから直接S3やData Firehoseに出力する処理はマネージドでできるに越したことはないですよね。、同じ課題を抱えている方は、ぜひAWSにフィードバックをしてユーザーの声を届けましょう。
この記事が誰かの助けになれば幸いです。
以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!
参考情報
Aurora
- Aurora PostreSQLのログをCloudWatch Logsを経由せずに直接S3バケットにPUTしてみた | DevelopersIO
- Lambda関数でメモリサイズよりも大きいファイルを圧縮してみた | DevelopersIO
- [Tips] Amazon RDSのログファイルから全てのメッセージを取得する方法 | DevelopersIO
- RDS for PostgreSQLのログ設定まとめ | DevelopersIO
- Amazon Aurora アーキテクチャ概要
- Deep dive on Amazon Aurora and Amazon RDS for PostgreSQL architecture and features | AWS Database Blog
- RDS および Aurora PostgreSQL ログの操作: パート 1 | Amazon Web Services ブログ
- RDS および Aurora PostgreSQL ログの操作: パート 2 | Amazon Web Services ブログ
- Aurora PostgreSQL でのログ記録のパラメータ - Amazon Aurora
- Amazon Aurora PostgreSQL のパラメータ - Amazon Aurora
- Aurora MySQL データベースログの概要 - Amazon Aurora
- Aurora Serverless v2 でのパフォーマンスとスケーリング - Amazon Aurora
- download_db_log_file_portion — Boto3 Docs 1.26.91 documentation
PostgreSQL
- postgres/postgres
- PostgreSQL 16.4文書 第20章 サーバ設定 20.8. エラー報告とログ取得
- PostgreSQL 16.4文書 第20章 20.5. ログ先行書き込み(WAL)
Athena
- AWS入門ブログリレー2024〜 Amazon Athena 編〜 | DevelopersIO
- [コスト大事] Amazon Athena で S3 の大量オブジェクトをクエリする場合はスキャン量だけでなくリクエスト量も意識しよう | DevelopersIO
- Amazon Athena RegexSerdeを利用してアプリケーションログを探索する | DevelopersIO
- Amazon Athena のパフォーマンスチューニング Tips トップ 10 | Amazon Web Services ブログ
- Choose a SerDe for your data - Amazon Athena
- RegexSerDe (Hive 1.2.2 API)
- Apache Hive : SerDe
- hadoop/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TextInputFormat.java at trunk · apache/hadoop
ETL全般
DuckDB
- DuckDB – An in-process SQL OLAP database management system
- MotherDuck社の公式ブログのチュートリアル「DuckDB Tutorial For Beginners」をやってみた | DevelopersIO
- DuckDBとAWS Lambda PythonでS3にSQLを投げる環境をAWS SAMで構築してみた | DevelopersIO
- AWS LambdaでDuckDBとAWS Data Wrangler、Polarsの処理性能を比較してみた | DevelopersIO
ログストレージの料金
- CloudWatch Logs と S3 にかかる料金比較 | DevelopersIO
- Amazon S3とCloudWatch Logsのログ保存料金とサイズを見てみた | DevelopersIO
- CloudWatch Logsの新機能フィールドインデックスでクエリのスキャン量が減ることを確認してみた | DevelopersIO
- [アップデート]Cloudwatch Logsに低頻度アクセス用のログクラスが追加されました。#AWSreInvent | DevelopersIO
- 料金 - Amazon CloudWatch | AWS
- 料金 - Amazon S3 |AWS
- Amazon Data Firehose の料金 - ストリーミングデータパイプライン - Amazon Web Services