[アップデート] RDS Performance Insights で指定した期間のパフォーマンス分析レポートを作成できるようになりました

RDS Performance Insights で指定した期間のパフォーマンス分析レポートを作成できるようになりました。
2023.08.19

1. はじめに

お疲れさまです。とーちです。

RDS Performance Insights で指定した期間のパフォーマンス分析レポートを作成できるようになったというアップデートがあったので、早速試してみました。

2. いきなりまとめ

  • 5 分〜6 日間の範囲で分析期間を指定して、パフォーマンス分析レポートを出力
  • パフォーマンス分析レポートを作成するには、Performance Insights の保持期間設定を有料の保持期間(1ヶ月以上)に設定する必要がある(他にも色々前提条件あり)
  • パフォーマンス分析レポートには、期間内の主なパフォーマンスの問題とそれを解決するための参考情報へのリンク、どの SQL が負荷に影響を与えているか等の情報が含まれている

3. 前提条件

パフォーマンス分析レポートを作成するためにいくつか前提条件が必要です(2023/8/19 現時点)
私の場合は、Performance Insights の保持期間設定を見落としていたため、分析を行うための「Analyze performance」ボタンが画面上に表示されず少し詰まったので、使用する場合は以下の前提条件を満たしているか確認するようにしましょう。

  • Performance Insights が有効になっている
  • DB エンジンが「RDS for PostgreSQL」 or 「Aurora MySQL」 or 「Aurora PostgreSQL」であること
  • インスタンスクラスが「Aurora Serverless v2」ではないこと(※なお Aurora Serverless v1 ではそもそも Performance Insights がサポートされてません)
  • サポート対象リージョンであること
  • Performance Insights の保持期間設定が有料の保持期間(1ヶ月以上)になっていること
  • 少なくとも 24 時間の Performance Insights のデータが蓄積されていること

条件を満たしている場合、以下の画面のように Performance Insights に「Analyze performance」ボタンが出てきます。

4. やってみた

早速、分析レポートを出力してみようと思います。なお、事前に pgbench コマンドを使って対象 DB に対して負荷を与えています。

  1. RDS の画面から「Performance insights」を選択します。
  2. 対象の DB インスタンスを選択します。
  3. 「データベース負荷」の項目で、分析したい期間が含まれる時間範囲を指定します。この後、分析期間を指定しますが、ここで指定した時間範囲外の時間を指定するとエラーになるので注意です。
  4. 「Analyze performance」ボタンを押します。
  5. 分析したい期間を指定します。5 分〜6 日間の範囲で指定出来ます。レポートにタグをつけることもできるので、Name タグでレポート名をつけるといったことも可能です。指定をしたら「Analyze performance」ボタンを押します。
  6. しばらくすると画面上部に「Successfully completed performance analysis report 〜」というメッセージが出るので、そのメッセージが出たらレポート作成完了です。
  7. レポートは「データベース負荷」項目の下にある「Performance analysis reports」のタブから確認できます。レポート ID のリンクをクリックすると対象のリポートが表示されます。
  8. レポート画面は以下の項目で構成されています。
    1. Overview:レポート期間や検出されたインサイト期間の DB 負荷を3段階で評価したものが表示されます
    2. Database load insights:期間内の DB の平均アクティブセッション(AAS)が表示されます。インサイトが複数検出された場合は上部のボックスから選択できます。インサイトとして検出された期間で、通常の何倍程度の負荷がかかっていたのかというメッセージも表示されます。
    3. Analysis and Recommendations:選択されたインサイトについて、イベントの概要(Detection)、負荷状況の分析結果(Analysis)、発生事象に対する推奨事項(Recommendations)、関連する指標(Related Metrics)が記載されます。Recommendations では、SQL ダイジェスト ID にカーソルをあわせることで負荷に影響を与えた SQL 文を確認することも出来ます。
    4. Tags:レポートにつけたタグの参照、変更等が出来ます。

インサイトとして検出される範囲について

Amazon RDS User Guideにもレポートとして指定した期間中のどういったワークロードがパフォーマンス上の問題として検出されるのか明に記載がないので、詳細は不明なのですが、自分が検証した範囲では、必ずしも最も高い AAS 期間をインサイト範囲として検出しているわけではなさそうでした。
レポート期間は最小5分から指定できるので、特に気になるワークロードがあればそのワークロードが発生していた期間だけを指定してレポート出力するのがいいかもしれません。

まとめ

RDS Performance Insights の新機能のご紹介でした。

対象期間の DB ワークロードについて、どういった問題が発生していたか、推奨する対処方法はなにかといったことまで、教えてくれるので、システム影響が発生していた時間帯などを対象にこの機能を使うと調査が捗りそうだなと感じました。

この記事が誰かのお役に立てばなによりです。
以上、とーちでした。

参考