この記事は株式会社ナレッジコミュニケーションが運営する Amazon AI by ナレコム Advent Calendar 2021 の 22日目にあたる記事になります。
今回はRDSデータベースパフォーマンスのボトルネックとオペレーション問題を検出、診断する事ができるAmazon DevOps Guru for RDSについて調べてみました。
Amazon DevOps Guru for RDSとは
Amazon DevOps Guru は機械学習 (ML) を活用したサービスで、すべてのAmazon Relational Database Service(RDS)エンジンで利用でき、アプリケーションのオペレーションパフォーマンスと可用性の改善を容易に実現できます。
具体的には、ホストリソースの過剰使用、データベースのボトルネック、SQL クエリの誤動作など、パフォーマンスに関連するさまざまなデータベースの問題を自動的に特定して分析します。
そして問題が検出されると、DevOps Guru for RDS はその結果を DevOps Guru コンソールに表示し、Amazon EventBridge またはAmazon Simple Notification Service (SNS) を使用して通知を送信します。これにより、デベロッパーは課題を自動的に管理し、リアルタイムでアクションを取ることができるというものになります。
料金は1インスタンスにつき $0.0042/h
DevOps Guruを使うには
DevOps Guruの新機能を使うにはAmazon Aurora DB インスタンスで Performance Insights が有効になっていることが条件となります。
ちなみに東京リージョンでも利用可能です!
実際にさわってみる
今回はAmazon DevOps Guruの設定まで行ってみたいと思います。
使ってみるにあたり、もちろんRDSが必要になります。
現在DevOps GuruではAurora(MySQL / PostgreSQL)のみ対応しているのでテスト用を作成する場合はAuroraで作成しましょう。
(2021/12/15時点)
ダッシュボードに入りたての状態だと以下の画面のような状態でした。
分析されているリソースがない事がわかります。
ここで分析するリソースを指定する必要がありますが、方法はいくつかありそうです。
今回はタグをつける事でリソースを指定しようと思います。
RDSに「Devops-Guru-RDS」の名称でタグをつけました。
(「Devops-Guru-」の文字が含まれている必要がある)
次にDevOps GuruのAnalyzed resourcesのページへ移行し、Tagsを設定し、保存します。
これで準備は完了です。
データ収集を待ちましたが、大体15分ほどかかった気がします!
正常に認識されたようです!
■最後に
DevOps Guru for RDSの設定について記載してみました。
今回は実証できませんでしたが、DevOps Guru for RDSでは定期的な負荷上昇ではなく異常値を検出することができます。
異常値検出に関してはAWSの膨大な内部運用データでトレーニングされている機械学習モデルとなる為とても心強いですね。
次は負荷をかけてみて実際の動作も確認したい所です。