はじめに
2021年のAWS re:Inventでも魅力的な新しいサービスが発表されたり、サービスのアップデートが発表されたりと、日々興奮しつつ寝不足の日々を過ごしておりました。
数ある発表の中でも個人的に気になったのが、Amazon DevOps Guruが、Amazon DevOps Guru for RDSとして、Amazon Auroraに対応してくれたこと。ここのところお仕事で、WordPressをホストしているAmazon Auroraのパフォーマンス問題に悩まされており、それを一発で解決する手段として、これは使えるんじゃないかとピンときて、早速設定の仕方だけでもハンズオンしておこうとなったわけです。
Amazon DevOps Guru for RDSで何ができるのかを平たく書くと、機械学習(Machine Learning)を使用してAmazon Auroraクラスタを構成するrdsインスタンスに関する各種メトリクスを分析し、ホストリソースの過剰使用、データベースのボトルネック、SQL クエリの誤動作といった、パフォーマンスに関連するさまざまなデータベースの問題を自動的に特定して分析してくれること。
特にWordPressをAWS上でホストしている場合、コンテンツの生成はほとんどの場合SQLクエリによって動的に生成しているので自ずとAmazon Auroraに対するパフォーマンスをチューニングすることが不可欠になってきますし、単純にAmazon Auroraクラスタを構成するrdsインスタンスだけでなく、SQLクエリの改善も必要になってきます。そのためにも有効な手段なのではないかということで、ちょっと試してみようかということになりました。
設定方法
設定方法は至って簡単だったりします。ここではサンプルのAmazon Auroraを使用して設定方法をハンズオンしてみます。
分析対象のrdsインスタンスにタグをつける
ここではテスト用のAuroraクラスタと、シンプルなrdsインスタンスを作成していますが、本番のワークロードでもやることは同じです。
以下の通り、”key: Devops-Guru-*”, “value: True”というタグの設定を、分析したい対象となるrdsインスタンスにまずは仕込んであげます。なぜかというと、本番ワークロードでは多数のAWSリソースが動いているため、Amazon Auroraのみにスコープを絞り込んで分析を行いたいためです。
分析対象のrdsインスタンスにタグをつける
先に分析対象のリソースを絞り込んでおく
次に、Amazon DevOps Guru上で、分析に必要なコストを圧縮するために、[設定]-[Analysed resource]で分析対象のリソースを絞り込みます。
- Choose resources to analyzeから、[Tags]のラジオボタンを選択。
- [Tag key]のプルダウンリストの中に、先ほど指定した”Devops-Guru-RDS”が選択できるようになっているため、これを選択。
分析対象のAWSリソースのタグを選択
- Choose tag valuesから、[Choose specific tag values]のラジオボタンを選択。
- [Select tag values]のリストの中から、先ほど指定した”true”のチェックボックスを選択。
- [保存]ボタンをクリック
分析対象のAWSリソースのタグからkeyを絞り込み
これで設定完了です。あとはダッシュボードから有効化するだけ。ちなみに、分析対象のリソースは、リソースが削除されるまで有効化されっぱなしになるので十分にご注意ください。
一応念のためコスト算出もしておく
それでもコストが気になるなっていう人は、コスト見積りツールからコストを算出しておきましょう。やり方はほとんど似ていて、
- リソース分析の見積りカバレッジから、[Tags on AWS resources in the current Region]ラジオボタンを選択。
- [Tag key]プルダウンリストの中に、先ほど指定した”Devops-Guru-RDS”が選択できるようになっているため、これを選択。
- [Tag value]プルダウンリストの中に、先ほど指定した”true”が選択できるようになっているため、これを選択。
- [月額コストの見積り]ボタンをクリック。
コスト見積りツールの設定
これでコストの算出が開始されます。
ここまでできたら、レポートが出力されるまで気長に待ちましょう。初回レポートの出力には、ワークロードにもよりますが数時間かかることがあります。
終わりに
今回はサンプルのAmazon Auroraで試してみたため、全然問題が発生しなかったのですが、ある程度のトランザクションのあるAmazon Auroraクラスタ上のrdsインスタンスでは、パフォーマンスに関するなんらかのレポートが出力されます。もちろん出力されたタイミングでSNSトピックによって通知を出力することも可能です。
お仕事で絶賛お試し中なところでもあるのですが、この存在が特にWordPressをAWSを用いて運用改善していく際の大きな助けになればいいなと思っています。