Slide 1

Slide 1 text

Aurora PostgreSQLがCloudWatch Logsに 出力するログの課金を削減してみる ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c のんピ Track C-6 DevelopersIO流!アマゾンの奥地で技術の限界に挑戦:LT7人衆、熱き戦い

Slide 2

Slide 2 text

● 所属 ○ クラウド事業本部コンサルティング部 ● 名前(ニックネーム) ○ ⼭本涼太 (のんピ) ● 出⾝ ○ 島根県 ● 好きなAWSサービス ○ Amazon FSx for NetApp ONTAP ○ AWS Transit Gateway ○ AWS CDK ● 最近の趣味 ○ パケットキャプチャ 自己紹介 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c @non-97 @non____97 @non____97

Slide 3

Slide 3 text

こんなことありませんか? ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 4

Slide 4 text

CloudWatch Logsに流しているDBの ログに対する課金が高すぎる!!!! ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 5

Slide 5 text

この悩みを聞いてよく挙げられる構成 Logsに出力したログをData Firehoseを介してS3バケットにPUTする形

Slide 6

Slide 6 text

ここでCloudWatch Logsの料金体系を見てみよう ● データ取り込み料金が比較的高い ● 保存料金はログが自動圧縮されることも後押しして比較的安い 項目 コスト 1 USD = 150円換算 データ取り込みサイズ (Standard) 0.76 USD/GB 114円/GB データ取り込みサイズ (IA) 0.38 USD/GB 57円/GB 保存 (圧縮後のデータサイズ) 0.033 USD/GB 4.95円/GB (圧縮率15%の場合は0.74円) Logs Insights (スキャン量) 0.0076 USD/GB 1.14円/GB ※ 2025/2/29時点の東京リージョンの料金

Slide 7

Slide 7 text

CloudWatch LogsとS3のストレージ料金を見てみよう Logsのデータ取り込みサイズほどの差はない 項目 コスト 1 USD = 150円換算 Logs 保存 (圧縮後のデータサイズ) 0.033 USD/GB 4.95円/GB (圧縮率15%の場合は0.74円) S3 Standard 保存 0.023 USD/GB 3.45円/GB S3 Standard IA 保存 0.0125 USD/GB 1.86円/GB S3 Glacier Instant Retrieval 保存 0.004 USD/GB 0.6円/GB S3 Glacier Deep Archive 保存 0.00099 USD/GB 0.15円/GB ※ 2025/2/28時点の東京リージョンの料金 ※ ストレージサイズに応じて料金が階層的に変動する場合最 初の階層の料金を記載

Slide 8

Slide 8 text

先ほどのアーキテクチャだと 5KB単位のデータ取り込み : 0.036 USD/GB (5.4円/GB) ログの保存料金が若干安くなるが、Data Firehoseの料金がプラスでかかる = 4円安くするために5円払うイメージ Logsのデータ取り込みサイズにかかる課金の逆転は難しい

Slide 9

Slide 9 text

つまりはコスト削減のためには CloudWatch Logsの取り込み料金に対するフォローが必要

Slide 10

Slide 10 text

私の経験 監査ログ取得の関係でログを月10TBペースで出力 + Logs Insightを実行すると数TBに対してスキャンが実行され、一回の実行で 数千円から1万円程度の課金が発生することも (当時はLogsのフィールドインデックス機能GA前)

Slide 11

Slide 11 text

アプローチの整理 ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 12

Slide 12 text

考えられる方法 1. CloudWatch Logs Infrequent Access (Logs IA)に流す 2. DBインスタンスのログファイルをS3に流す仕組みの自作

Slide 13

Slide 13 text

Pros/Cons パターン Pros Cons Logs IAに流す ● 手間がかからない ● ログ欠損のリスクが少ない ● メトリクスフィルターやサブスクリプション フィルターを使用できない ● ログの取り込み料金は Logs Standard と比較して半額程度しか削減できない S3に流す仕組みの自作 ● ログ取り込みコストの大幅削減が可能 ● Athenaのパーティション分割による ログ分析時のコストの減少 ● 処理の中でログの種別ごとに出力先を 変更することも可能 ● PostgreSQLの場合有効 ● ログ欠損の可能性がある ● ログをリアルタイムで確認できない ● 特定の文字列が含まれるログが出力さ れた場合の通知実装のハードルが高い ● 仕組みのメンテナンスが必要

Slide 14

Slide 14 text

ロマンを追い求めるなら DBインスタンスのログファイルを S3に流す仕組みの自作

Slide 15

Slide 15 text

DBインスタンスのログファイルをS3に流す 仕組み ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 16

Slide 16 text

前提 ● 紹介するアーキテクチャの導入を積極的にお勧めするものではない ● Consに挙げた内容はよく理解した上で導入すること ○ 特にAurora MySQLはローカルストレージ使用率が15%以上 or 24時間経過後にログを削除し始めるため、ログ欠損のリスクが高い ● ログを見た上でアクションする運用が全くイメージ着いていないなら 「ログを取得しない」選択肢もある ○ 「ログの見方が分からない」は勉強すれば良いだけ ○ 「このログを取る意味が全く分からない」は特に再考の余地あり コストとログ運用のバランスを考えて導入しよう

Slide 17

Slide 17 text

アーキテクチャ

Slide 18

Slide 18 text

ポイント1 : LastWrittenによる絞り込みと重複ログファイルの抽出 S3バケット上に存在しないものをのみをPUTして、Lambdaのコストを削減

Slide 19

Slide 19 text

ポイント2 : S3オブジェクトの圧縮 S3は自動で圧縮を行わないため Lambda関数内でgzip level 6で圧縮 圧縮率は1.5%ほどになることも

Slide 20

Slide 20 text

コスト試算 SFnやLogsの料金合わせても理論上は30 USD/month ほどで運用可能 117万円/月が4,500円/月になるなら検討の価値を感じる 項目 値 アーキテクチャ Arm リクエスト数 6 / hour 10分に一回起動 各リクエストの実行時間 10,000 msec 平均10秒想定 メモリサイズ 128 MB デフォルト エフェメラルストレージサイズ 512 MB デフォルト ログファイルのフィルタリング用 Lambdaのコスト = 0.07 USD / month 項目 値 アーキテクチャ Arm リクエスト数 60 / hour 1分に1ログファイル出力される想定 各リクエストの実行時間 40,000 msec 平均40秒想定 メモリサイズ 1,024 MB 圧縮処理の高速化のために増強 エフェメラルストレージサイズ 2,048 MB 最大の1GiBのログファイルに対応 RDSログのS3バケットへの PUT用Lambdaのコスト = 23.47 USD / month

Slide 21

Slide 21 text

細かいところは以下ブログを見て!!!

Slide 22

Slide 22 text

最後にお願い ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 23

Slide 23 text

● RDSやAuroraのログをS3やData Firehoseに流せるように して欲しい ○ CloudFrontの標準ログV2ができたならできるはず!! ○ 標準ログV2と同じくVended Logsを使うような場合はLogs IAと同じ ログ取り込み料金 ● CloudWatch Logs IAでメトリクスフィルターと サブスクリプションフィルターを使えるようにして欲しい ○ Logs Standardの立ち位置を考えると難しいような気もする... みんなでフィードバックしよう! ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c

Slide 24

Slide 24 text

フィードバックしてユーザーの声を届けよう ハッシュタグ:#jawsdays2025 #jawsug #jawsdays2025_c