Performance Insights から Database Insights への移行ガイド:どのモードを選ぶべきか?
こんにちは。クラウド事業本部トクヤマシュンです。
先日、Amazon RDS / Auroraの Performance Insights が2025年11月30日に EOL を迎えることが発表されました。
AWS 公式としては、期限までに Database Insights の利用に移行することを推奨しています。
移行方法などの詳細は下記のブログをご参照ください。
Database Insightsにはスタンダードモードとアドバンストモードがあり、
下記公式ドキュメントにそれぞれのモードでどの機能をサポートしているか記載されています。
ただ、Performance Insights から Database Insights への移行にあたって、どちらのモードを選択するべきかのイメージがつかないという方も多いのではないでしょうか?
ご多分に漏れず私もその一人で、とくに下記が気になるポイントでした。
- Performance Insights と Database Insights の機能差分は?
- Performance Insights から Database Insights への移行によって、利用できなくなる機能は?
- どのような場合に Database Insights スタンダードモードを利用するとよいか?
- どのような場合に Database Insights アドバンストモードを利用するとよいか?
本ブログではこれらの疑問を解消し、移行時に適切な Database Insights のモード選択ができるよう解説します。
前提情報
前提として下記をご認識ください。
- 対象読者
- Performance Insights を利用しているが、Database Insights には馴染みがない方
- Database Insightsのスタンダードモードとアドバンストモードの違いを知りたい方
- Performance Insights について
- 7日間のパフォーマンス履歴保存までは無料
- 7日より長い期間の保存は有料で、最大24か月まで1か月単位で保存期間を選択可能
- 1か月以上履歴保存したときのみ利用可能となる Performance Insights の機能あり
- Database Insights について
- スタンダードモードとアドバンストモードのどちらかを、インスタンス / クラスター単位で選択して利用
- スタンダードモード:無料
- アドバンストモード:有料で、スタンダードモードに加えていくつかの機能が追加で利用可能
機能差分表
Performance Insights、Database Insights スタンダードモード、Database Insights アドバンストモードで機能に差分があるものを表にまとめました。
まずはこちらでおおまかな機能差分をご確認ください。
機能※ | Performance Insights | Database Insights スタンダードモード |
Database Insights アドバンストモード |
備考 |
---|---|---|---|---|
パフォーマンス履歴保存期間の選択 | 7日〜24か月から選択 | 7日で固定 | 15か月で固定 | Performance Insightsでは7日より長い保持期間は有料 |
プロアクティブ推奨事項の表示 | △ | × | × | Performance Insightsでは有料階層(1か月以上の保持期間を有効化)でのみ利用可 |
オンデマンド分析を使用し、選択した期間のデータベースのパフォーマンスを分析する | △ | × | ○ | 対象エンジンは Aurora PostgreSQL、Aurora MySQL、RDS for PostgreSQL、RDS for MySQL、および RDS for MariaDB。 Performance Insightsでは有料階層(1か月以上の保持期間を有効化)でのみ利用可 |
15 か月間の保持とガイド付き UX の環境で SQL 実行プランを分析する | △ | × | ○ | 対象エンジンが Performance Insights と Database Insights で異なる。 Performance Insights は、RDS for Oracle、および RDS for SQL Server のみ分析可能。 Database Insights では上記に加えて Aurora PostgreSQL も分析可能。 |
15 ヶ月の保持期間とガイド付き UX の環境で SQL ロックを分析する | × | × | ○ | 対象エンジンは Aurora PostgreSQL のみ。 |
実行中のプロセスごとに詳細なメトリクスを使用して、データベースで発生しているオペレーティングシステムのプロセスを分析する | × | × | ○ | この機能を使用するには、Amazon RDS 拡張モニタリング が有効になっている必要あり。 |
フリート全体のモニタリングビューを作成して保存し、何百ものデータベースの健全性を評価する | × | × | ○ | |
クエリごとの統計を視覚化する | × | × | ○ | |
遅い SQL クエリを分析する | × | × | ○ | |
CloudWatch Application Signals を使用して通話サービスを表示する | × | × | ○ | |
メトリクス、ログ、イベント、アプリケーションを含め、すべてのデータベーステレメトリの統合ダッシュボードを表示する | × | × | ○ | |
Performance Insights のカウンターメトリクスを CloudWatch に自動的にインポートする | × | × | ○ | |
CloudWatch で Amazon RDS イベントを表示する | × | ×(?) | ○ | 公式ドキュメントではスタンダードモードではイベント表示不可となっていますが、実環境では表示可能なことを確認できています。 |
※機能は直訳感満載でわかりにくいですが、AWS公式ドキュメント:CloudWatch Database Insights / Database Insights のモードの記述にあわせています。
Performance Insights から Database Insights への移行によって、利用できなくなる機能は?
下記2つの機能が対象です。
これらは Database Insights に移行すると利用できなくなりますので、ご注意ください。
- パフォーマンス履歴保持期間の選択
- Performance Insights は保持期間を最大24か月まで選択できましたが、Database Insights では下記いずれかで固定となります
- スタンダードモード:7日
- アドバンストモード:15か月
- Performance Insights は保持期間を最大24か月まで選択できましたが、Database Insights では下記いずれかで固定となります
- プロアクティブ推奨事項の表示
- 特定のメトリクスを監視して自動でしきい値を設定し、一定期間超えた場合に将来のパフォーマンス影響を防ぐための推奨事項を表示する機能
- Database Insights には機能として存在しません
- Performance Insights メトリクスからプロアクティブな推奨事項を生成する他サービスとしては Amazon DevOps Guru for Amazon RDS がありますので、こちらへの移行をご検討ください
- ただし、内部仕様が不明であるため、完全に同じ推奨事項を生成できるかは分かりません。
- 機能的に十分であるか検証の上、移行の判断をすることを推奨します
- 詳細は下記ご確認ください
どのような場合に Database Insights スタンダードモードを利用するとよいか?
スタンダードモードの機能で RDS・Aurora の運用が十分可能である場合は、スタンダードモードの利用で良いと考えます。ワークロードがある程度決まっていて、負荷が一定であるケースなどはこちらに相当するかと思います。
とくに、これまで無料の範囲で Performance Insights を利用してきて不自由を感じていなかった場合は、スタンダードモードから利用いただくのが良いかと思います。
先述の Database Insights で利用できなくなる機能を除いたPerformance Insights の無料機能は、そのまま Database Insights スタンダードモードで利用することが可能です。
どのような場合に Database Insights アドバンストモードを利用するか?
これまで Performance Insights の有料階層機能を利用していた方や、これを機により高度な運用を取り入れたいといった方はアドバンストモードの利用検討を推奨します。
検討にあたっては、①コスト面、②機能面を評価して採用要否を判断いただくのが良いかと思います。
①コスト面でのアドバンストモード検討
Performance Insights の有料階層からアドバンストモードに移行した場合、基本的にはコスト増となるとお考えください。
たとえば東京リージョンで PostgreSQL Aurora インスタンス1つに対して、15か月のパフォーマンス履歴保存をした場合の保存料金は下記で、3倍以上のコストが必要となります。
- Performance Insights
- 1vCPU あたり、約$2.79/月
- Database Insights アドバンストモード
- 1vCPU あたり、$9/月
Performance Insights の課金要素はコスト保存期間の他に API リクエストなどもあるため絶対ではありませんが、
上記のように多くのケースでコスト増となるかと思います。
以降の章では Database Insights のアドバンストモードで利用可能となる機能を説明します。
これらの機能がコスト増を許容できるものなのか、よくご検討ください。
②機能面でのアドバンストモード検討
ここからは Database Insights においてスタンダードモードにはない、アドバンストモードで利用できる機能について紹介します。
オンデマンド分析を使用し、選択した期間のデータベースのパフォーマンスを分析する
特定した期間のパフォーマンス分析レポートを作成する機能です。
分析期間は5分〜6日間が選択可能です。
Performance Insights の有料階層でも使えていた機能です。
下記のDBエンジンで利用可能です。
- Aurora PostgreSQL
- Aurora MySQL
- RDS for PostgreSQL
- RDS for MySQL
- RDS for MariaDB
分析レポートにはデータベース負荷についてだけではなく、その負荷についてのインサイト、関連メトリクス、そして分析とレコメンデーションを表示してくれます。
自分で一から分析する手間が省けるので、データベースを運用する上でとても有用な機能です。
レポートは Database Insights のコンソール画面から発行することが可能です。
API 経由で発行することもできます。
試しに pg_bench で負荷をかけてみた時のレポートは次のようになりました。
インサイトには通常時に比べてどれくらい負荷が高いのかが記載され、関連するメトリクスや推奨あれるアクションまで表示されていることがわかります。
詳細については下記もご参照ください。
- [アップデート] RDS Performance Insights で指定した期間のパフォーマンス分析レポートを作成できるようになりました
- CloudWatch Database Insights を使用してデータベースのパフォーマンスをオンデマンドで分析する
15 か月間の保持とガイド付き UX の環境で SQL 実行プランを分析する
SQL クエリの実行プランを確認する機能です。インデックスが使われているのか、といったクエリの効率性を調べるのに役立つ機能です。
Performance Insights の有料階層でも使えていた機能ですが、利用可能なエンジンに差異があります。
エンジン | Performance Insights | Database Insights アドバンストモード |
---|---|---|
RDS for Oracle | ○ | ○ |
RDS for SQL Server | ○ | ○ |
Aurora PostgreSQL | × | ○ |
負荷が高い分析対象の SQL を選択すると、下のタブからクエリプランを選択できます。
クエリプランが複数生成されている場合は、最大2つを選択してプラン比較をすることも可能です。
下図にAurora PostgreSQL での例を示します。
より詳細に知りたい方は下記も併せてご確認ください。
- Amazon RDS の Performance Insights にて、Oracle データベースの実行計画を確認できるようになりました
- [アップデート] RDS for SQL Server でも Performance Insights 上で実行計画を確認できるようになりました
- [アップデート] Amazon CloudWatch Database Insights で Aurora PostgreSQL のクエリ実行計画を確認できるようになりました
- CloudWatch Database Insights を使用した実行プランの分析
15 ヶ月の保持期間とガイド付き UX の環境で SQL ロックを分析する
これ以降は Performance Insights にはない、Database Insights アドバンストモードだけに存在する機能の紹介です。
本機能はデータベースのロック競合に関する情報を表示する機能です。
異なるセッションからのロックリクエスト間の依存関係を視覚的に確認できます。
Aurora PostgreSQL のみ対応の機能です。
下図に一例を示します。
ロックがかかっている SQL 文を確認すると、UPDATE しようとしている行が同一であり、排他ロックがかかっていることがわかります。
このようにどのようにロックがかかっているかを知ることで、データベースのパフォーマンス改善を効率的に進めることができます。
本機能についてより詳細に知りたい方は下記も併せてご確認ください。
実行中のプロセスごとに詳細なメトリクスを使用して、データベースで発生しているオペレーティングシステムのプロセスを分析する
本機能を使用すると、データベースインスタンスの OS レベルでの動作を詳細に確認できます。この機能では以下のことが可能です。
- 特定の時点でデータベースサーバー上で実行されている OS プロセスの一覧を確認
- 各プロセスごの CPU 使用率やメモリ消費量などの重要なメトリクスを可視化
この情報は拡張メトリクスを有効にした際にできる、RDSOSMetrics CloudWatch Logs Group の情報を元にしています。
ロググループの保持期間に応じて、プロセスのメトリクスを表示できる時間範囲が決まります。
これはパフォーマンス履歴の保持期間とは別物なのでご注意ください。
次の画像は Aurora PostgreSQL での出力例です。
プロセスごとのリソース使用量を調査することで、プロセスのパラメータ変更やインスタンスのスペック変更の検討などに役立てることができます。
より詳細に知りたい方は下記も併せてご確認ください。
- [アップデート]CloudWatch Database Insightsで過去のOSプロセス情報が確認できるようになりました
- [データベーステレメトリ] タブ / OS がデータベーステレメトリのデータを処理する
フリート全体のモニタリングビューを作成して保存し、何百ものデータベースの健全性を評価する
Database Insights のデータベースフリートは、モニタリングするデータベースのグループです。
アドバンストモードが有効になっているインスタンスやクラスターをグループ化して確認できます。
Performance Insights や Database Insights スタンダードモードではインスタンスを個別に確認することはできますが、クラスターなどのように複数のインスタンスをまとめて確認することはできません。
アドバンストモードの本機能を使えば大量のクラスター、インスタンスをデータベースフリートとしてグループ化して、総合的にモニタリングできるようになります。
とくに多くのデータベースインスタンスが存在する環境では有用で、地味ですがとても使える機能だと思います。
フリートは自由に選択して複数保存もできるため、アプリケーション単位やエンジン単位など、さまざまな切り口で作成しておいて、必要な時にすぐ参照することが可能です。
次の画像は 複数のAurora PostgreSQL クラスターでフリートグループを作成した時の出力例です。
複数のインスタンスの中で、どのインスタンスで問題が起こっていそうかを直感的に把握できます。
イベントのフィールドは1週間前までしか参照できないようで、エラーが出ています。1週間以内の期間を選択すればこのエラーは表示されません。
また、アドバンストモードとスタンダードモードのインスタンスが混在する環境ではアドバンストモードのインスタンスのみがモニタリングビューに表示されます。
より詳細に知りたい方は下記も併せてご確認ください。
クエリごとの統計を視覚化する
Performance Insights では負荷が高いクエリに対する多くの統計情報は数値情報のみ見えていました。
それを、メトリクスグラフの形で確認することで、各種統計情報をより直感的かつ詳細に確認することが可能になります。
次の画像は Aurora PostgreSQL であるクエリを選択した時のメトリクスグラフの出力例です。
キャプチャの都合上途中で切れていますが、実際は39個のグラフが表示されます。
グラフ表示可能なメトリクスは calls/sec や rows/sec などエンジンごとに多くのものがあります。
より詳細に知りたい方は下記も併せてご確認ください。
- CloudWatch Database Insights の Fleet Health Dashboard の表示 / クエリの統計を分析する
- Performance Insights の SQL 統計
遅い SQL クエリを分析する
スロークエリは CloudWatch Logs に出力されるので、従来は CloudWatch Logs を確認する必要がありました。
本機能によって、Database Insights の画面で確認することができるようになります。
もう複数のタブを行き来してメトリクスとスロークエリを関連づけて調査する必要はありません。
Database Insights ではスロークエリはどのようなクエリがあるのかパターン別に確認でき、
さらに個別のクエリにどれくらいの時間がかかっているのか、各種統計値を確認することができます。
次の画像は Aurora PostgreSQL であるスロークエリを選択した時の出力例です。
スロークエリを把握し、適切なインデックスを設定するなどでパフォーマンス改善に役立ちます。
なおこの機能を利用するには、各種エンジンでスロークエリログの出力を有効化している必要がありますのでご注意ください。
より詳細に知りたい方は下記も併せてご確認ください。
CloudWatch Application Signals を使用して通話サービスを表示する
「通話サービス」は「calling services」の直訳です。
Application Signals を有効化したアプリケーションからのデータベースアクセスを、アプリケーションごとに確認できます。
複数のアプリケーションで共通の DB を利用している場合に、どのアプリケーションからのどういった DB 操作がどれくらいのパフォーマンスを出しているのかを確認することができます。
Application Signals 側で SLO を設定していると、SLO 違反となっているオペレーションを知ることもできます。
次の画像は あるJavaアプリケーションに Application Signals を設定して DB アクセスをした時の結果です。
test-app-signals-java
が今回設定したアプリで、他にはaurora-postgres-access-1.0-SNAPSHOT
というAuroraのスナップショット関連のアプリケーションが記録されていました。
それぞれにINSERTやSELECTといった命令ごとにどれくらいのパフォーマンスが出せているかが表示されていることがわかるので、どのアプリケーション機能に負荷の影響が出ていそうかが直感的に判別できます。
なお、本機能の利用にあたってはアプリ側で Application Signals を有効化することが必要ですので、ただ Database Insights をアドバンストモードにするだけでは利用できないことにご注意ください。
より詳細に知りたい方は下記も併せてご確認ください。
メトリクス、ログ、イベント、アプリケーションを含め、すべてのデータベーステレメトリの統合ダッシュボードを表示する
スタンダードモードではメトリクス、イベントのみ確認できます。
それに加えて、アドバンストモードでは同じダッシュボードで多くの追加情報を確認することが可能です。
これまで触れてこなかった内容だと、たとえばDBのログ情報を確認することが可能です。
これも元々CloudWatch Logsに出力されているものなので、スロークエリ同様画面を行ったり来たりしなくて良くなるのが嬉しいですね。
なお、このログを見る場合にもDB側のログ出力設定が必要ですのでご注意ください。
Performance Insights のカウンターメトリクスを CloudWatch に自動的にインポートする
Performance Insights では OS レベルや DB エンジンレベルのメトリクス情報をカウンターメトリクスとして保持しています。
この Performance Insights のカウンターメトリクスを CloudWatch で確認するにはDB_PERF_INSIGHTS
関数を使う必要がありました。
本機能では CloudWatch のメトリクスとして自動でインポートしてくれる機能です。
メトリクスを確認したり、アラームを設定したりなどを簡単に行うことができます。
なお、OS レベルのメトリクス確認には拡張メトリクスを有効化する必要があります。
より詳細に知りたい方は下記も併せてご確認ください。
- Performance Insights カウンターメトリクス
- [アップデート] Amazon CloudWatch に Performance Insights のカウンターメトリクスが参照出来る DB_PERF_INSIGHTS 関数が追加されました
CloudWatch で Amazon RDS イベントを表示する
RDS イベントを Database Insights で表示する機能です。
ここではインスタンスイベントを表示することが可能です。
クラスターイベントではないことに注意してください。
なお、公式ドキュメント上はアドバンストモードだけの機能と記載されていましたが、実際にはスタンダードモードでもイベント表示は可能なようでした。
次の画像はスタンダードモードのインスタンスでイベント表示ができている例です。
この辺りはドキュメントの情報が更新されていないだけかもしれないので、引き続きウォッチしていきたいと思います。
まとめ
Performance Insights から Database Insights への移行にあたって、どのモードを選択すべきか検討する際のポイントをまとめました。
Database Insights アドバンストモードは Performance Insights よりも多くの機能を提供していますが、コストも高くなる傾向があります。
自社の運用要件や予算に合わせて最適なモードを選択しましょう。
なおDatabase Insights のモード変更は、スタンダードからアドバンストへの切り替え、アドバンストからスタンダードへの切り替え、どちらにも対応しています。
アドバンストモードの機能に興味がある方は、ぜひ一度有効化してみて、ご自身の環境でどのように見えるのかお試しください。
以上、Performance Insights から Database Insights への移行ガイドでした。