The serverless operational model allows companies and engineers to be more agile while spending less time dealing with security, scalability, and availability of their applications. More and more teams today, are running and operating mission-critical workloads at massive scale on AWS Lambda and the AWS serverless ecosystem: API Gateway, S3, SNS, SQS and more.
It seems that in most cases, better control has taken over the performance. There’s a constant debate around the performance of AWS Lambda functions, especially around the initialization time and cold starts, but with the newly announced Provisioned Concurrency, development teams can gain much better control over their function’s performance.
When enabled, Provisioned Concurrency keeps Lambda functions initialized and hyper-ready to respond in double-digit milliseconds. This scenario is especially ideal for interactive applications, web or mobile back ends, and latency-sensitive microservices.
Provisioned Concurrency can be easily configured through the API or the Lambda console with the desired amount of concurrency based on your application’s unique demand – per function alias or version. The concurrency amount can be changed up and down (or completely turned off) based on realtime traffic to meet the application needs, without changing code or runtime.
To set it through the console, get into the desired function, and make sure to select a specific version:
You can notice a new configuration item:
Hit the edit button, set your desired concurrency amount and click “Save”:
Once set you’ll see an in-progress indicator until it will turn to “Ready”:
Provisioned Concurrency adds a pricing dimension to the existing dimensions of Duration and Requests. You only pay for the amount of AWS Lambda concurrency that you configure and for the period of time that you configure it. The newly added feature also introduces new Lambda metrics to follow:
- ProvisionedConcurrencyInvocations – The number of AWS Lamda invocations as part of the Provisioned Concurrency.
- ProvisionedConcurrentExecutions – The number of simultaneous execution environments in use as part of the Provisioned Concurrency.
- ProvisionedConcurrencyUtilization – The utilization percentage of the Provisioned Concurrency.
rInvocations – The number of AWS Lamda invocations that are above Provisioned Concurrency
Monitoring Lambda Provisioned Concurrency
At Epsagon, we love performance and we love monitoring – and from now on you’ll be able to observe, monitor and alert your newly Provisioned Concurrency Lambda functions at the single dashboard that contains metrics, logs, and traces.