こんばんは、小寺です。AWS Compute OptimizerでEC2のメモリー使用率に基づく推奨事項が確認できるようになりました。
https://aws.amazon.com/about-aws/whats-new/2024/03/aws-compute-optimizer-ec2-rightsizing-recommendations/

Compute Optimizerとは

Compute Optimizerは、機械学習を利用し、メトリクスを分析して最適なEC2インスタンスタイプを推奨してくれます。
EC2インスタンス以外のリソースは、Auto Scallingグループ、EBS、Lambda関数、FargateでのECS、ライセンスが対象です。

アップデート内容

メモリ使用率に基づき、推奨事項が提供される機能アップデートがありました。
AWS CloudWatch Agentもしくは、AWSがサポートするサードパーティー製のオブザーバビリティ製品を通じてメモリ使用率の監視を行うことで、メモリ使用率メト​​リクスを考慮して EC2 インスタンスの適切なサイズの推奨事項が作られます。
AWS以外の製品でのメモリ使用率の分析には連続して30時間以上のデータがあることが前提条件になっています。30時間未満の場合、Compute Optimizer側では外部メモリ メトリクス要件に達するまで、CloudWatch メトリクスを分析して推奨事項を提供します。
また、外部メトリクスの取り込みを有効化すると、Compute Optimizer は CloudWatch メモリ データよりも外部メモリ使用率メト​​リクスを優先します。
外部メトリクスの取り込みをオプトアウトすると、Compute Optimizer はデフォルトで CloudWatch メトリクスに基づいて分析します。

オプトイン・オプトアウトについては、一般設定の「外部メトリクスの取り込み」から確認ができます。

「編集」から外部メトリクスでサポートされている製品を確認することができます。

また、本アップデートに伴い、「ライツサイジング」からCompute Optimizer の EC2 適正サイズ推奨事項に合わせてメモリ使用率のヘッドルームを調整できるようになりました。 指定したヘッドルーム以下でワークロードを実行できる EC2 インスタンスのみを推奨し、ハイパフォーマンスの実現ができるというわけですね。

ただ、指定するとなると、せっかくのレコメンデーション機能というよりは、判断を委ねられる気がしてしまい何となく最初はデフォルトで検証して、そのままにしてしまいがちです・・。

確認してみる

「ライツサイジング」からメモリ使用率のヘッドルームの指定について確認してみました。

デフォルトではヘッドルームは20%に指定されていますね。

リージョン範囲については、全リージョンなのか、カスタムリージョンなのかを選ぶことができます。

優先EC2インスタンスとしては、任意のインスタンスタイプか特定のインスタンスタイプとサイズに制限の2つから選ぶことができます。

続いて、ルックバック期間を選びます。デフォルトは14日間です。

今回追加になったメモリー使用率です。カスタマイズできるのですが、確認したところ10%、20%、30%の3択ですね。

早速レコメンデーションを確認してみました。たまたま1件過剰にプロビジョニングされたメモリが表示されました!

今日は、Compue Optimizerのメモリー使用率に基づくレコメンデーションについてお伝えしました。