このページについて

DevOps Guru for RDSを有効にする際、有効化の通知バナーで進めていけると簡単に設定できますが、通知バナーが出ない場合があります。

私は今回初めてDevOps Guruを触ることになったのですが、AWSドキュメントだけ読むと、有効化自体は簡単かと思いました。しかし、なぜDevOps Guruの通知バナーがPerformance Insights側に出ないんだ!!と思い手を動かし始めました。

その違いについてまとめておきます。

DevOps Guruの通知バナー

こちらのAWSドキュメントに「通知バナーから DevOps Guru をオンにする」手順はあります。
ただし、単純に通知バナーは出てくれません。。

RDS 用の DevOps Guru のセットアップ
Amazon RDS コンソール内から Amazon DevOps Guru for RDS を有効化

結論

先に結論としては、以下のような設定の違いによって、通知バナーが表示される/されないが変わります。

DevOps Guruの
分析対象の選択
Performance Insightsの
DevOps Guru通知バナー
「タグ」を対象 表示される
「CloudFormationスタック」を対象、または、
まだ対象を選択していない(なしを選択する)場合
表示されない

分析対象による違い

CloudFormationスタックを選んでも、タグを選んでも、DevOps Guruの挙動としては変わらないかと思います。ただ、Performance Insights側の表示差異があることは認識しておきたいところとなります。

DevOps Guru for RDSとは

Amazon DevOps Guru は機械学習 (ML) を活用したサービスで、すべての Amazon Relational Database Service (RDS) エンジンで利用でき、アプリケーションのオペレーションパフォーマンスと可用性の改善を容易に実現できます。
https://aws.amazon.com/jp/devops-guru/features/devops-guru-for-rds/

DevOps Guru for RDSは、パフォーマンスのボトルネックを検出して診断し、推奨事項を提案してくれるようなサービスです。

前提

対象RDS

こちらがサポートされています。

  • Amazon Aurora MySQL 互換エディション
  • Amazon Aurora PostgreSQL 互換エディション
  • Amazon RDS for PostgreSQL

後日、Amazon RDS データベースエンジンの追加サポートも予定ともあります。

Performance Insightsの有効化

DevOps Guru for RDSの有効化には、Performance Insightsの有効化が必要となります。
こちらの設定方法は今回は割愛します。

検証するリソース

以下をCloudFormationで作成します。

  • Amazon Aurora MySQLクラスター
    • インスタンスは2台 (ライター1, リーダー1)
    • 5.7.mysql_aurora.2.11.1

分析対象なしの場合

DevOps Guruで分析するリソースを「なし」としている状態。

分析済みリソースにも存在しないことを確認。

Performance InsightsのDevOps Guru通知バナー

Performance Insightsコンソールで、DevOps Guru通知バナーは表示されていないことを確認しました。

分析対象がCloudFormationスタックの場合

DevOps Guruで分析するリソースをCloudFormation(CFn)スタックとし、Auroraのスタックのみを選択します。

ダッシュボードにCFnスタック名は表示されましたが、分析されたリソースは0となっています。

しばらく分析に時間がかかっていそうだったので、AWSドキュメント上のAmazon Qに聞いてみたところ、1~2時間かかりそうでした。
実際この検証時も1時間半かかっていました。(新規作成したばかりのAuroraですが)

It depends on the number and type of resources being analyzed. Here are some key points:

  • For a few resources, it can take 1-2 hours to analyze. For many resources, it may take up to 4 hours.
  • Once coverage is set up, DevOps Guru will begin baselining the resources. This can range from minutes to an hour depending on the number of resources.
  • After baselining, analysis is continuous as DevOps Guru monitors metrics, logs and events. It will produce insights when anomalous behavior is detected.
  • You can use the DevOps Guru cost estimator to get an estimate of how long it may take to analyze your specific resources and the associated monthly cost. The estimator scans your resources and extrapolates the analysis time based on defaults it assumes.
  • Factors like number of resources, resource types and their production usage patterns can impact the time taken. So the estimator may provide only an approximation.

I would recommend referring to the AWS DevOps Guru documentation for more accurate and up-to-date details on pricing, features, availability and usage guidelines. The information can vary over time.
Sources
[1] How does DevOps Guru work? – Amazon DevOps Guru
[2] Estimating Amazon DevOps Guru resource analysis costs – Amazon DevOps Guru

分析が完了すると、ダッシュボードの「分析されたリソース」の数が増えています。

詳細を確認すると、Auroraのクラスターとインスタンス2台が登録されていました。

Performance InsightsのDevOps Guru通知バナー

Performance Insightsコンソールで、DevOps Guru通知バナーは表示されていないことを確認しました。
分析対象をCFnスタックとしていると、DevOps Guru通知バナーやオンオフメニューは出ないんです。

分析対象がタグの場合

事前にAuroraのインスタンスには「devops-guru-rds」タグを付与しておきます。
ここでは、以下のようにタグを付与しました。

Key Value
devops-guru-rds {AuroraのインスタンスのDB識別子}

DevOps Guruで分析するリソースをタグとし、タグキーを「devops-guru-rds」とすると、特定のAuroraを選択することができます。
ここでは、1号機だけ有効にし、2号機は無効のままにしてみます。

Performance InsightsのDevOps Guru通知バナー

1号機の方はDevOps Guruのオンオフメニューが追加されていることを確認できました!

2号機の方では、DevOps Guru通知バナーとオンオフメニューが追加されていることを確認できました!

DevOps Guru通知バナーから有効にしてみる

DevOps Guruの設定画面の方で、タグキー「devops-guru-rds」を指定しているため、ここではグレーアウトになっています。
タグ値に2号機のDB識別子を入力して有効にします。

DevOps Guruが有効化されました!

DevOps Guruの設定画面でも、2号機が選択されていることを確認できます。

タグの場合、ダッシュボードのアプリケーションの単位が、タグのグルーピング単位になります。(CFnスタックだとそのスタック単位)

再び分析対象なしに変更すると

Performance Insights側のDevOps Guruのオンオフメニューの表示が消えました。

おわりに

分析対象の設定の違いによるPerformance Insights側の表示差分は、AWSドキュメントを読んでも記載がなかった(?)と思いますので、誰か同様に困っている方がいれば参考にしてください。