Lambda Insightsの有効化と無効化の操作方法について記載します。
有効化後のLambda Insightsの使い方や収集できる情報については以下の記事をご参照ください。
Lambda Insightsの有効化で追加されるCloudWatchメトリクスについて
CloudWatchのLambda Insights画面について
Lambda Insightsの有効化で出力されるパフォーマンスログについて
コールドスタータの確認方法について

それでは、本題のLambda Insightsの有効化について記載していきます。
Lambda Insightsの有効化は、以下の設定を行うだけで簡単に始められます。
- 新規関数作成時
- 関数の作成
- ロールの設定
- Lambda Insightsの設定
- 既存関数使用時
- ロール設定
- Lambda Insightsの設定

まず、関数作成から始めていきます。
Lambda Insightsを無効化したい場合は「Lambda Insightsの無効化(終了)方法」まで読み飛ばして大丈夫です。
Lambda Insightsの有効化方法
関数作成して、Lambda Insightsを有効化していきます。
関数の作成
→既存関数のLambda Insightsを有効化する場合はこのステップはスキップしてください
ロールの設定
Lambda Insightsの設定
Lambda関数作成
Lambda関数を作成します。既存関数のLambda Insightsを有効化する場合はこのステップはスキップしてください。
- 関数名:適切なもの
- ランタイム:Node.js 18.x

Lambda関数作成
ソースコードを以下のソースコードに置き換えデプロイします。
1秒スリープ後にレスポンスを返すソースコードになります。
const sleep = (m) => {
return new Promise((resolve) => setTimeout(resolve, m));
};
export const handler = async(event) => {
console.log("Start!");
await sleep(1000);
console.log("End!");
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
Lambdaのロール設定
Lambda Insightsを開始のため、必要なロールを割り当てます。
必要なロールはCloudWatchlogsへのアクセス権限の追加のみです。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": [
"*"
]
}
]
}
Lambda Insightsを有効化(開始)する
「設定タブ→モニタリングおよび運用ツール」から開始します。
以下の画面で「拡張モニタリング」をONにします。

Lambda Insights 開始
Lambda Insightsの確認
「CloudWatch->インサイト->Lambda Insights」から確認できます。
グラフが表示されればOKです。
Lambda Insightsの無効化(終了)方法
「設定タブ→モニタリングおよび運用ツール」から終了します。
「拡張モニタリング」をOFFにすればOKです。
まとめ
AWS Lambda Insightsの有効化と無効化の切り替えは簡単に行えます。
Lambda Insightsは有料ですので、エラー発生時など調査が必要な時だけ有効化、不要な時は無効化した方がいいと思います。
料金の詳細は以下を参照していただければと思いますが、Lambda関数の実行数に応じて料金も増えていくので、実行数が多い場合は要注意かと思いますー

計画的に使いましょ!