📝

[小ネタ] Compute Optimizer は Lambda に関する推奨事項がなければ Lambda 関数の推奨事項を提供しない話

2025/02/11に公開

AWS Compute Optimizer を使用した AWS Lambda のコストとパフォーマンスの最適化 | Amazon Web Services ブログ

すべての関数に対して推奨を受け取れるわけではありません。Compute Optimizer は、推奨事項が利用費の削減または実行期間の短縮に役立つ可能性があると確信できる場合にのみ、推奨事項を提供します。

上記の仕様があるという話です。

Compute Optimizer で Lambda 関数に関する推奨事項が表示さない

AWS Compute Optimizer で Lambda 関数の推奨事項が表示されないのはなぜでしょうか? | DevelopersIO

AWS Compute Optimizer は要件を満たしている場合でも、コストや実行時間の削減に寄与し得る推奨事項が特に見出されないと判断した場合にその Lambda 関数を Unavailable に分類します。 Unavailable に分類された関数は Compute Optimizer コンソールの一覧に表示されません。

Lambda 関数に関する推奨事項が表示されない原因については上記ブログに記載の通りです。
当該ブログ内では InsufficientData の例が紹介されていましたが、本ブログでは Inconclusive の例を紹介します。

Inconclusive について

Viewing Lambda function recommendations - AWS Compute Optimizer

Inconclusive when the function does not qualify for a recommendation because the function has configured memory greater than 1,792 MB, or Compute Optimizer cannot generate a recommendation with a high degree of confidence.

Inconclusive の結果になる条件は以下の通りです

  • Lambda 関数のメモリ設定が 1,792 MB を超えている
  • Compute Optimizer が高い信頼度で推奨事項を生成できない

メモリ設定については Compute Optimizer のリソース要件にも記載されています。
Resource requirements - AWS Compute Optimizer

The configured memory is less than or equal to 1,792 MB.

「Compute Optimizer が高い信頼度で推奨事項を生成できない」場合には、AWS CLI の get-lambda-function-recommendations コマンドで以下の結果が表示されます。

$ aws compute-optimizer get-lambda-function-recommendations \
--filters name=Finding,values=Unavailable

# レスポンスから抜粋
{
  "lambdaFunctionRecommendations": [
    {
      "currentMemorySize": 128,
      "finding": "Unavailable",
      "findingReasonCodes": ["Inconclusive"]
    }
  ]
}

上記のようにメモリ設定が 1,792 MB 未満であっても findingReasonCodesInconclusive の場合には「Compute Optimizer が高い信頼度で推奨事項を生成できない」に該当します。

この仕様が冒頭の AWS ブログの内容です。
Compute Optimizer における Lambda 関数のリソース要件を満たしていても、特に推奨事項がなければ Compute Optimizer が推奨事項を生成しない仕様という話でした。

まとめ

今回は Compute Optimizer は Lambda に関する推奨事項がなければ Lambda 関数の推奨事項を提供しない話を紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion