Slide 1

Slide 1 text

AWSと生成AIで学ぶ! 実行計画の読み解き方とSQLチューニングの実践 八雲 慎之助/Shinnosuke Yakumo 2025/1/10 BuriKaigi 2026

Slide 2

Slide 2 text

本セッションの内容 あれ、データベースが重いゾ… パフォーマンス分析・改善 SQLの実行計画とは Amazon CloudWatch Database Insights AWS DevOps Agent まとめ

Slide 3

Slide 3 text

本セッションの内容 あれ、データベースが重いゾ… パフォーマンス分析・改善 SQLの実行計画とは Amazon CloudWatch Database Insights AWS DevOps Agent まとめ

Slide 4

Slide 4 text

本セッションの内容 あれ、データベースが重いゾ… パフォーマンス分析・改善 SQLの実行計画とは Amazon CloudWatch Database Insights AWS DevOps Agent まとめ

Slide 5

Slide 5 text

本セッションの内容 あれ、データベースが重いゾ… パフォーマンス分析・改善 SQLの実行計画とは Amazon CloudWatch Database Insights AWS DevOps Agent まとめ

Slide 6

Slide 6 text

本セッションの内容 あれ、データベースが重いゾ… パフォーマンス分析・改善 SQLの実行計画とは Amazon CloudWatch Database Insights AWS DevOps Agent – re:Invent 2025 で発表 まとめ

Slide 7

Slide 7 text

八雲 慎之助(やくも しんのすけ) 年次:2年目 選出:2025 Japan AWS Jr.Champions コミュニティ:JAWS-UG 新潟支部 運営 好きなサービス:Amazon Neptune, Amazon Bedrock AgentCore Who am I @yakumo_09 @yakumo_0905

Slide 8

Slide 8 text

こんなことありませんか? なんかさぁ、処理重くない? SQLでめっちゃ時間がかかる データベースが重い? 詳しい人がいない!

Slide 9

Slide 9 text

こんなことありませんか? なんかさぁ、処理重くない? SQLでめっちゃ時間がかかる データベースが重い? 詳しい人がいない!

Slide 10

Slide 10 text

パフォーマンス調査の手順(ざっくり) リソースの確認 さらに内部へ DBを見てみる • DB生きてる? • CPU足りてる? • メモリ足りてる? • 権限は? • レイテンシーは? • 遅いクエリはどこ? • 待ちイベントは? • スロットリングの発生 • ログやメトリクスの 確認 • 実行計画の修正

Slide 11

Slide 11 text

パフォーマンス調査の手順(ざっくり) リソースの確認 さらに内部へ DBを見てみる • DB生きてる? • CPU足りてる? • メモリ足りてる? • 権限は? • レイテンシーは? • 遅いクエリはどこ? • 待ちイベントは? • スロットリングの発生 • ログやメトリクスの 確認 • 実行計画の修正

Slide 12

Slide 12 text

パフォーマンス調査の手順(ざっくり) リソースの確認 さらに内部へ DBを見てみる • DB生きてる? • CPU足りてる? • メモリ足りてる? • 権限は? • レイテンシーは? • 遅いクエリはどこ? • 待ちイベントは? • スロットリングの発生 • ログやメトリクスの 確認 • 実行計画の修正

Slide 13

Slide 13 text

実行計画とは •データベースがどのような手順でクエリを実行し、 どのリソースをどう利用するか示した計画 • 実行計画の例

Slide 14

Slide 14 text

データベース パフォーマンス調査・改善の課題

Slide 15

Slide 15 text

パフォーマンス調査の課題 なんかさぁ、処理重くない? SQLでめっちゃ時間がかかる データベースが重い? 詳しい人がいない!

Slide 16

Slide 16 text

• 「問題の特定→修正→動作確認」まで専門的なスキルが求 められ、長時間の作業が必要になる • 問題の特定のため、専門的なクエリを手動で実行していく 必要がある • パフォーマンス改善のため、実行計画を分析しながらさら にチューニングが必要 パフォーマンス調査の課題

Slide 17

Slide 17 text

専門的な領域のため属人化しがち •配属されたばかりの若手、新人 •DBに知見がないエンジニア •少人数のプロジェクト →解決に時間がかかる、そもそも知見がない →プロジェクト全体にストレス

Slide 18

Slide 18 text

Amazon CloudWatch Database Insights

Slide 19

Slide 19 text

Amazon CloudWatch Database Insights とは? • データベース関連の様々なイベン トを集中管理 • データベースの健全性を視覚的に 確認可能 • 実行計画や遅いクエリの分析など、 追加の分析項目も Database Insights Performance Insights メトリクス 実行計画 クエリ分析 イベント

Slide 20

Slide 20 text

選べる2種類のプランについて スタンダードモード • 料金:無料 • 日常的な監視や分析向け アドバンスドモード • 料金:使用されたCPU、ACUに基づく課金 • 複数の可視化/分析が可能 • 実践的なパフォーマンス分析向け

Slide 21

Slide 21 text

選べる2種類のプランについて スタンダードモード • 料金:無料 • 日常的な監視や分析向け アドバンスドモード • 料金:使用されたCPU、ACUに基づく課金 • 複数の可視化/分析が可能 • 実践的なパフォーマンス分析向け

Slide 22

Slide 22 text

Amazon CloudWatch Database Insights パフォーマンスメトリクス 「データベースロード」

Slide 23

Slide 23 text

データベースロード Average Active Sessions (AAS) データベースロード 時間 4 2

Slide 24

Slide 24 text

データベースロード • DBのパフォーマンスを評価するための指標 アクティブなセッション数(Active Sessions) • アクティブなセッションとは データベースのセッションは’アクティブ/アイドル’ アクティブセッションはCPU使用中、他処理待機中 • データベースロードとは 1秒ごとにアクティブなセッションをサンプリング

Slide 25

Slide 25 text

データベースロード Average Active Sessions (AAS) データベースロード 時間 4 2

Slide 26

Slide 26 text

データベースロード Average Active Sessions (AAS) データベースロード 時間 4 2 CPU使用中 待機中

Slide 27

Slide 27 text

データベースロード Average Active Sessions (AAS) データベースロード 時間 4 2 CPU使用中 書き待ち 読み待ち

Slide 28

Slide 28 text

データベースロード Average Active Sessions (AAS) データベースロード 時間 4 2 CPU使用中 書き待ち 読み待ち 最大vCPU AAS < 最大vCPU パフォーマンス問題なし AAS >= 最大vCPU パフォーマンス問題の可能性あり AAS > 最大vCPU パフォーマンス問題あり

Slide 29

Slide 29 text

AWS発の新しいAgentic IDE、Kiro https://aws.amazon.com/jp/blogs/news/introducing-kiro/ https://aws.amazon.com/jp/blogs/news/introducing-kiro-autonomous-agent/ • Kiro IDE, Kiro CLI(Amazon Q Developerとの統合) • Kiro Autonomous Agent(2025年冬登場) • リモートのコーディングエージェ ント • MCP、アクセス制御など

Slide 30

Slide 30 text

インデックスの作成 ## 提案されたインデックスの追加 CREATE INDEX idx_pgbench_accounts_bid ON pgbench_accounts(bid);

Slide 31

Slide 31 text

あれ、更新できないんですけど

Slide 32

Slide 32 text

いわゆるデッドロック状態 専有ロック 専有ロック お互いに ロック解除待ち

Slide 33

Slide 33 text

ロックツリー分析 • 誰が、どのセッションIDで、どのクエリを流してロックが 発生しているかすぐにわかる • セッションIDをロールバックするだけ!

Slide 34

Slide 34 text

おまけで紹介

Slide 35

Slide 35 text

AWS DevOps Agent

Slide 36

Slide 36 text

•常時稼働してリソースや環境を監視 常時稼働のAI Agent(いわゆる初手AIとかAmbient Agent) アラートを機に調査、復旧まで •将来の再発防止に努める インシデント全体のパターンを分析、今後のインシデント予防への対 策事項を提案 AWS DevOps Agent とは

Slide 37

Slide 37 text

• データベースが重い • Amazon CloudWatch Database Insights • パフォーマンス分析の属人化からの脱却 • 生成AI、AI Agentをどんどん活用していきましょう! まとめ