AWS Compute Optimizer が Amazon RDS MySQL および PostgreSQL のリサイズ推奨機能をサポートしました！

Compute Optimizerの機能追加で「RDS MySQL」および「PostgreSQL」のリサイズ推奨機能をサポートするというニュースを見かけました。
少し調べてみたので書いてみます。

「AWS Compute Optimizer supports rightsizing recommendations for Amazon RDS MySQL and RDS PostgreSQL」

https://aws.amazon.com/about-aws/whats-new/2024/06/aws-compute-optimizer-amazon-rds-rightsizing-recommendations-mysql-postgresql/

## ■AWS Compute Optimizerとは？

ご存知の方も多いと思いますが、Compute Optimizerというサービスの概要についてです。

AWS Compute Optimizerは、AWSリソースの利用状況を分析し、最適なリソース配置を推奨してくれるというサービスです。
具体的には以下のリソースの最適化についてアドバイスをくれます

:::note info
- EC2インスタンス
- EBSボリューム
- Lambda関数
- RDSインスタンス
:::

あくまで「推奨してくれる」という所までなので、
推奨に従って変更を行う事で、コスト削減とパフォーマンス向上を達成できます。

↓

EC2インスタンスなんかでは、インスタンスの概要の所に「Compute Optimizer」と出てきたのを見た事がある方も多いかもしれませんが、あれです。

![1_Compute Optimizer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/5df68ad4-4c0a-755e-9e8e-4c111c19baba.png)

## ■今回公開された新機能について

今回公開されたのは、RDS MySQLおよびPostgreSQLのリサイズ推奨機能になります。
つまりEC2インスタンスと同様にRDSの一部でも推奨クラスの案内などをしてくれますよという所です。

最適なクラスとプロビジョニングされたIOPSの設定を推奨してくれる結果、以下のようなメリットを期待できます。


:::note info
**コスト削減について**: 
アイドル状態のデータベースを特定し、リソースを適切に調整することでコストを削減します。
特に、過剰プロビジョニングされたインスタンスに対して適切なサイズを推奨するため、無駄なコストを削減できます。
:::

:::note info
**パフォーマンス向上について**: 
過小プロビジョニングされたワークロードに対して、適切なリソースを提案し、パフォーマンスを向上させます。
これにより、アプリケーションのレスポンス時間が改善され、ユーザー体験が向上します。
:::

## ■実際に見てみる

とりあえずサービスページへ入りましょう。

![2_Compute Optimizer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/f6cbf777-8b87-a92f-3e2b-a470fc534f4e.png)

確かに増えてますね

![3_Compute Optimizer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/c5176ff8-c647-89d7-3a25-d0506caddb25.png)

開くと下記のようになっていました。
最適なDB、過剰なDB、不足しているDBが揃い踏みです。

![4_Compute Optimizer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954355/97733503-dbf2-44de-76b5-256dcb56e882.png)

## ■各項目について

以下の表は、AWS Compute Optimizer が提供するリサイズ推奨機能に関する各項目の説明です。

| 項目 | 説明 |
|---|---|
| データベース識別子 | データベースの一意の識別子 |
| エンジン | データベースエンジンの種類（例：MySQL コミュニティ） |
| アイドル | データベースがアイドル状態かどうか |
| インスタンスの検出結果 | 現在のインスタンスの状態（過剰プロビジョニング、最適化済み、プロビジョニング不足） |
| インスタンスの検出結果の理由 | 検出結果の詳細な理由（例：CPU、EBS IOPS、ネットワーク帯域幅の過剰プロビジョニング） |
| 推定月間節約額 (割引後) | 割引後の推定月間節約額 |
| 推定月間節約額 (オンデマンド) | オンデマンド料金ベースの推定月間節約額 |
| 節約の機会 (%) | 節約可能な割合 |
| 現在のインスタンスタイプ | 現在使用中のインスタンスタイプ |
| 現在の料金 | 現在の使用料金（時間あたり） |
| 現在のオンデマンド料金 | 現在のオンデマンド使用料金（時間あたり） |
| 推奨インスタンスタイプ | 推奨されるインスタンスタイプ |
| 推奨料金 | 推奨されるインスタンスの使用料金（時間あたり） |
| 推奨されるオンデマンド料金 | 推奨されるオンデマンド使用料金（時間あたり） |
| 価格差 | 現在と推奨インスタンスの料金差 |
| マルチ AZ DB インスタンス | インスタンスがマルチAZかどうか |
| タグ | インスタンスに付与されているタグ |
| リージョン | インスタンスが存在するリージョン |
| アカウント ID | インスタンスが属するAWSアカウントのID |


## ■着目する点

### 「インスタンスの検出結果」とその「理由」

AWS Compute Optimizer のリサイズ推奨機能を利用する際に着目すべき点は、まず「インスタンスの検出結果」とその「理由」です。
ここは稼働状況を考える上で納得ですよね

### 「推定月間節約額」

次に「推定月間節約額」はリサイズによるコスト削減の具体的な金額を示しており、割引後とオンデマンドの両方を確認すると良いでしょう。
また、「現在のインスタンスタイプ」と「推奨インスタンスタイプ」を比較することで、適切なリソース配置が把握できます。

### 「可用性」

さらに、インスタンスがマルチAZ対応かどうかや、配置されているリージョンも考慮する必要があります。

これらのポイントを総合的に評価することで、リソースの最適化とコスト削減を効果的に進めることが可能です。
この辺りで書いてある推奨事項は、機械学習を用いた詳細な分析に基づいており、高い精度を持っています。

## ■まとめ

AWS Compute Optimizerの新機能により、RDS MySQLおよびPostgreSQLのリソース最適化がより簡単になりました。
これにより、コスト削減とパフォーマンス向上が実現しやすくなります。

ぜひ一度試してみて、最適なリソース配置を実現してください！

詳しくは[こちら](https://aws.amazon.com/about-aws/whats-new/2024/06/aws-compute-optimizer-amazon-rds-rightsizing-recommendations-mysql-postgresql/)をチェック