The AWS Lambda service is part of the overall application hosting platform that makes up the full Amazon Web Services product offering. Where AWS Lambda differs from other services within the AWS infrastructure, is in that it is an on-demand style service. Application functions that operate under the AWS Lambda service will only be called and run when they are needed. This means that server resources are never used until they are actually required.
Furthermore, the AWS Lambda server is incredibly stable, running on ultra-high performance infrastructure. All of this infrastructure is managed my Amazon. All management action such as OS maintenance, hardware provisioning, and monitoring are done by Amazon. Making this a fire and forget kind of solution. Simply upload your app function and let Amazon do the rest.
The Amazon Elastic Cloud, also known as Amazon EC2, is a set of services that are designed to scale on use. This means that customers who use the Amazon EC2 platform to host their applications only pay for additional resources if they are needed. Additionally, if fewer resources are required, Amazon EC2 will automatically scale down resources. This leads to a highly cost effective hosting solution. You only ever pay for what you use. The AWS Lambda service is part of the Amazon EC2 product.
AWS Lambda is capable of running code developed in a number of different languages. This includes Python, Java, and Node.js. These languages all execute within a standardized runtime environment provisioned by Amazon. If you develop web based applications using these languages, then AWS Lambda might be a useful piece of additional infrastructure.
AWS Lambda most ideally suits applications that require a high level of availability and fault tolerance. An AWS Lambda function, once uploaded and activated on the platform, should, in theory, be available 100% of the time with zero downtime.
On top of this, AWS Lambda is perfect for web applications that have a wide variation in the actual resources that are needed at any time. For example, a web app that remains dormant for many hours, only to see a large increase in used over a short timeframe. The AWS Lambda service is able to ramp up available resource limits during the busy period and then throttle them back when app usage drops off.
The final reason why the AWS Lambda may suit many users lays in the fact that this is an entirely managed service. There is no need for in-house resources to monitor and administer the AWS Lambda service. Amazon does all of this for you. This is perfect for business critical applications that need to be available 24/7. The Amazon tech team is always on the job around the clock, making sure that the AWS Lambda service is performing at optimal levels and fixing any problems that arise with the service as they happen.