Lambda to Graviton
AWS Resource Type:
Lambda functions run on either Intel-based x86 processors or ARM-based Graviton2 processors. The latter provides higher performance at a lower cost.
Criteria for identifying the opportunity:
This Finder identifies x86 Lambda functions with a compatible ARM runtime and deployed via a ZIP file (functions created via Docker container are excluded).
Potential savings (range in % on annual basis):
This Fixer provides roughly 20-34% annualized savings on Lambda spend. Lambda costs will increase slightly as the proxy Lambda configuration creates multiple Lambdas. Still, this additional cost will go away once the cutover is complete (in one week), and the realized savings thereafter should quickly recoup these costs.
What happens when the Fixer is executed?
The Fixer publishes a new version of the target Lambda (for rollback purposes) and creates two copies of the Lambda (one for x86, one for ARM). The Fixer then turns the original target Lambda into a proxy, with 1% of calls going to the ARM Lambda and 99% to the x86 Lambda. The Fixer will then linearly increase traffic to the ARM Lambda if its error rates stay within 5% of the x86 error rates.
The Fixer tracks the invocation and error rates using CloudWatch metrics and triggers a rollback if the ARM error rate is at least 5% higher than the x86 error rate otherwise, once all traffic is routed to the ARM Lambda, the Fixer permanently updates the original Lambda target to its ARM counterpart and removes all proxy-related Lambda functions and alarms once the cutover is complete.
Is it possible to rollback once CloudFix implements the fixer?
Yes, a CloudWatch alarm monitors the error rates for both x86 and ARM Lambdas and will automatically roll back this Fixer if the ARM error rate is at least 5% higher than the x86 error rate. Additionally, the user can choose to manually roll back at any time to the original target Lambda version.
Can CloudFix implement the fix automatically once I accept the recommendation?
Does this fix require downtime?