[アップデート] AWS Compute Optimizer で Lambda 関数の最適なメモリサイズがレコメンド可能になりました!

メモリサイズをあげたほうがコスト下がる可能性あるよ
2020.12.24

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

本日のアップデートで AWS Compute Optimizer の対象に Lambda 関数が追加され、最適なメモリサイズが推奨事項として提供されるようになりました。

= AWS Compute Optimizer Now Delivers Recommendations For AWS Lambda Functions

AWS Compute Optimizer

AWS Compute Optimizer はリソースの利用状況から機械学習により最適なリソースサイズをレコメンデーションしてくれるサービスです。

AWS Compute Optimizer for Lambda

Lambda 関数はメモリサイズに応じて CPU サイズが変動します。プロビジョニングが不十分な場合、エラー率が向上したりアプリケーションのレイテンシーが増加する可能性があります。

適切なメモリサイズをプロビジョニングすることで過剰リソースによる無駄なコストの削減、またはメモリのプロビジョニング不足を解消することでパフォーマンス最適化を図ることができます。

そんなツール他にもあったよね?

従来、Lambda のメモリチューニングはサードパーティのツールを利用されていたかと思います。

従来のツールはどこかしらに実行環境を準備する必要がありましたが、AWS Compute Optimizer はマネージドサービスですので実行環境は不要です。コンソールから AWS Compute Optimizer を有効化するだけで利用可能です。また、AWS Compute Optimizer の利用は無料です。まだ有効化していないという方は今直ぐに有効化しましょう!

対応リージョン

以下のリージョンで利用が可能です。

  • 米国東部(オハイオ)
  • 米国東部(バージニア北部)
  • 米国西部(北カリフォルニア)
  • 米国西部(オレゴン)
  • アジアパシフィック(ムンバイ)
  • アジアパシフィック(ソウル)
  • アジアパシフィック(シンガポール)
  • アジアパシフィック(シドニー)
  • アジアパシフィック(東京)
  • カナダ(中部)
  • 欧州(フランクフルト)
  • 欧州(アイルランド)
  • 欧州(ロンドン)
  • 欧州(パリ)
  • 欧州(ストックホルム)
  • 南米(サンパウロ)

注意事項

  • 推奨事項は毎日更新されます
  • 推奨事項は過去 14 日間のワークロードに基づいて分析されています
    • つまり月に一度ピークを迎えるようなサイクルの場合、適さない可能性がありますのでご注意ください
  • 推奨事項は以下の要件を満たしていない場合、生成されません
    • 1792 MB 以下のメモリで構成されている
    • 過去 14 日間に少なくとも 50 回呼び出されている
  • 推奨事項の生成には最大 12 時間かかる場合があります

やってみる

AWS Compute Optimizer の管理コンソールを開きます。まだ有効化されていないアカウントの場合は有効化してください。

ダッシュボードを確認すると [Lambda 関数] が追加されていますね。(この例はすべての関数がプロビジョニング不足でした。。)

Lambda 関数の一覧です。

プロビジョニング不足と判断された関数の詳細を見てみましょう。この例ではメモリサイズを 128 MB から 160 MB へのサイズアップを推奨されています。

注目するべきは Cost(low) においていは、推奨事項の 160 MB にサイズアップしたほうがコストが安いという点です。使用済みメモリとしては 79.1 MB で足りていますが、メモリサイズをアップしたほうが処理時間が短くなり、全体的にコストも下がる可能性があるというレコメンデーションですね。

もちろん想定なのでCost(high)側に寄ってしまった場合は今よりコストがあがる可能性もあるので、このあたりの最終判断はユーザー側で行う必要があります。

さいごに

メモリはとりあえず 128 MB で。使用済みメモリも 128 MB 未満だし、処理時間も妥当なので適切なんじゃないでしょうか、、、と私も思っていました。さっきまで。

推奨事項のように 160 MB にサイズアップしたほうが処理時間も短くなり、かつコストも下がる可能性があるとは!全く考えていない気づきでした。

AWS Compute Optimizer は無料で利用可能ですので、是非、みなさんの環境でも有効化してチェックしてみてください。よもやよもやな気づきがあるかもしれませんね!

以上!大阪オフィスの丸毛(@marumo1981)でした!

参考