Amazon CloudWatch Synthetics Canary から起動される Lambda 関数の割り当てメモリサイズを変更する方法を教えてください。
困っていること
Amazon CloudWatch Synthetics Canary を使用して、Webページをモニタリングしています。
Canary がタイムアウトとなり、エラーが発生する事象が発生しました。
Canary が実行している Lambda 関数のログを確認したところ、下記のようにメモリ使用量がひっ迫していました。
Memory Size: 1000 MB Max Memory Used: 1000 MB
Lambda 関数の割り当てメモリサイズを変更する方法があれば、教えてください。
どう対応すればいいの?
Canary から実行される Lambda 関数の割り当てメモリサイズは、AWS CLI の update-canary
コマンドを使用して変更できます。
メモリサイズは 960 MB から 3008 MB の間で設定可能です。
やってみた
CloudWatch コンソールの左ペインから Synthetics Canaries を選択し、Canary を作成ボタンを押下します。
設計図でハートビートのモニタリングを選択し、任意の名前を付け、エンドポイント URL にモニタリングしたい URL を入力します。それ以外はすべてデフォルトとして、Canary を作成ボタンを押下します。
初回の Lambda 関数の実行結果が、CloudWatch Logs のロググループ/aws/lambda/cwsyn-canary-test-(任意の文字列)
に保存されていました。確認したところ、割り当てメモリサイズは 1000 MB となっていました。
REPORT RequestId: 92SAMPLE-8e2f-43de-89fa-3f51caSAMPLE Duration: 11094.73 ms Billed Duration: 11095 ms Memory Size: 1000 MB Max Memory Used: 736 MB Init Duration: 1189.57 ms XRAY TraceId: 1-65SAMPLE-3b99f7d02e4276d3beSAMPLE SegmentId: SAMPLE9e1cSAMPLE Sampled: true
AWS CLI コマンド update-canary コマンドで割り当てメモリサイズを変更してみます。
$ aws synthetics update-canary --name canary-test --run-config MemoryInMB=3008
再度、ロググループを確認したところ、割り当てメモリサイズが 3008 MB になっていることが確認できました。
REPORT RequestId: 93b9cc3SAMPLE-4737-9d16-d468f0SAMPLE Duration: 4752.41 ms Billed Duration: 4753 ms Memory Size: 3008 MB Max Memory Used: 790 MB Init Duration: 1109.93 ms XRAY TraceId: 1-65SAMPLE-842e9f42ea42400069SAMPLE SegmentId: SAMPLEc80cSAMPLE Sampled: true
注意点
本稿記載時点では、マネジメントコンソールからメモリサイズを変更する機能は提供されておりません。
参考資料
update-canary — AWS CLI 1.29.65 Command Reference
--run-config (structure)
MemoryInMB -> (integer) The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.
CanaryRunConfigInput - Amazon CloudWatch Synthetics
MemoryInMB The maximum amount of memory available to the canary while it is running, in MB. This value must be a multiple of 64.
Type: Integer Valid Range: Minimum value of 960. Maximum value of 3008. Required: No