AWS Lambda Usage and Cost Calculator - CloudWatch | Devops Junction

Serverless, as the name suggests takes the hosting and complex infrastructure elements away and helps developers and programmers to deploy their code to Production.

All the underlying infrastructure, availability, and scaling would be taken care of by the service provider.

For Cloud Functions its Google,  ForLambda its AWS so on and so forth

When we say they take care of the hosting and the infrastructure. We need to know how much they will charge for the same.

While most of the cloud providers give generous cost models, sometimes it is hard to calculate how much we are spending towards serverless.

In this article, let us talk about how AWS Lambda serverless cost is calculated and how we can calculate the cost per lambda function when there are too many.

 

How to calculate AWS Lambda Costs?

If you do not want to dig too much deeper and simply try to create a quote or estimation, the right place is calculator.aws 

aws lambda cost

But if you would like to understand a big Number in your bill or want to find out which Lambda function costs you how many dollars or how the Cost is calculated for Lamda.

Please read further.

 

How AWS Lambda cost is calculated?

Four Key Elements that determine your aws lambda function cost

  • Number of Requests for the Function
  • Duration of each Request handled by the Function
  • Allocated Memory for the Function
  • Storage allocated to the Function

 

aws lambda cost

 

How to calculate the cost of Single Lambda?

You can use the following Cloud Watch Log Insight query to calculate the cost

parse @message /Duration:\s*(?<@duration_ms>\d+\.\d+)\s*ms\s*Billed\s*Duration:\s*(?<@billed_duration_ms>\d+)\s*ms\s*Memory\s*Size:\s*(?<@memory_size_mb>\d+)\s*MB/
| filter @message like /REPORT RequestId/
| stats sum(@billed_duration_ms * @memory_size_mb * 1.6279296875e-11 + 2.0e-7) as @cost_dollars_total

Let's decode it

Every Single Lambda Function invocation log would contain a log similar to the following containing the following information

  • Request ID
  • Duration
  • Billed Duration
  • Memory Size
  • Max Memory Used
REPORT RequestId: 960e6de1-beb3-5234-adcd-318694aae239	
Duration: 74.30 ms	
Billed Duration: 75 ms	
Memory Size: 1024 MB	
Max Memory Used: 132 MB

We are basically filtering this log entry from the Lambda Function logs and Parse it to make some meaningful data.

AWS Lambda Cost

Finally, we are going to do the math with the following formula

stats sum(@billed_duration_ms * @memory_size_mb * 1.6279296875e-11 + 2.0e-7) as @cost_dollars_total

billed duration milliseconds multiplied by memory size in MB

further multiplied by 1.6279296875e-11 + 2.0e-7

This is not a magic number, It is derived from the cost model and the numbers set by AWS itself

You can refer the following screen shot or directly from this page 

this Constant/Number 1.6279296875e-11 is derived from the following formula for the Duration

$0.00001667 for every GB-second / 1024 / 1000 = $1.6279296875e-11 for every MB-millisecond.

and the other number 2.0e-7 is an invocation cost, Calculated as follows

0.20 / 1million = 2.0e-7

that brings us to the our final calculation and validation and this is how the result would look like for a single Lambda

aws lambda cost calculate

 

Conclusion

You can use the cloud watch insight query given to calculate the cost of lambda function. While we only focus on only the Duration and the invocation there might be a slight addition to this cost based on the storage allocated.

You can also use cost explorer to get the overall Lambda Usage

Hope this article helps you understand the billing model and the cost calculation logic of Lambda.

Feel free to share if you have any better options or ideas to get this done.

Follow me on Linkedin My Profile
Follow DevopsJunction onFacebook orTwitter
For more practical videos and tutorials. Subscribe to our channel

Buy Me a Coffee at ko-fi.com

Signup for Exclusive "Subscriber-only" Content

Loading