What is AWS Lambda?
AWS Lambda is a cloud computing service offered as a part of the Amazon Web Services. This is an event-driven service, providing serverless processing of codes in response to events such as a message from programs, user action, sensor output, etc. The service automatically manages the resources to provide seamless and real-time processing of requests. AWS Lambda became a part of the Amazon Web Services in the year 2014 and since it has witnessed several developments making the product one of the most sought among AWS services.
Features and Limitations
Lambda was developed keeping in mind the growing demand for microservices; where applications are divided into smaller services that are easily scalable, provides a more agile development, amongst other advantages. With the AWS Lambda, developers can deploy one function at the time. Once a function is deployed, Lambda manages all operational aspect of the function such as scaling the service with the increase in requests.
Key Features of AWS Lambda
The code running on Lambda is the Lambda function. Once the programmer has created the function, it can be executed. Each function consists of the code and some configuration information. Lambda can launch numerous copies of the function depending on the incoming event requests.
Here, are some of the features of Lambda:
- Add Custom Logic to AWS Service
- Develop Custom back-end Services
- Works with Traditional Codes
- Automated Administration of Infrastructure
- Fault Tolerance
Add Custom Logic to AWS Service
Amazon lambda allows you to implement custom logic to AWS services such as the DynamoDB tables, and S3 buckets making compute seamless across the cloud. It is very easy to get started with the Amazon Lambda. After you have created the function by uploading the code and choosing the memory, IAM, and timeout period, then you can select the resource to trigger function from Kinesis stream, Amazon DynamoDB table, or Amazon S3 bucket. With the change in resources, Lambda will run the function and manage resources to keep up with the incoming requests.
Develop Custom back-end Services
Utilizing the Amazon Lambda, you can develop back-end services for your primary application that can be called-upon requests using the Amazon Lambda or endpoints built with Amazon API gateway.
Works with Traditional Codes
The Amazon Lambda does not require you to learn any new languages, framework, or tools. You can create an application on the Amazon Lambda using traditional languages such as Python, Java, C#, Node.js, and more. As the platform is growing, we can expect Lambda to be compatible with more languages in the future.
Automated Administration of Infrastructure
Lambda manages all the infrastructure aspects of running your code on a fault tolerant, highly available infrastructure allowing you to focus on developing the back-end services to better your application. Lambda eliminates some of the granular level tasks of providing a service over the internet such as the updating of the OS with every new patch release or the scaling of servers to meet the growing requests. Lambda administers everything from security patches, administration, maintenance, to logging-off and monitoring using CloudWatch.
Fault-tolerance is the capability of a computer or a system to continue to operate even when a component fails. The Lambda integrates a built-in fault tolerance mechanism that provides compute even when the code is compromised in a particular region due to system or data center failure. Maintaining compute capability across several Availability zones in a region minimizes the chances of application downtime.
Limitations or Cons of AWS Lambda
- AWS Lambda has a limitation on the amount of resources you can use for compute and storage of a function. The maximum executes duration for a request is merely 300 seconds.
- The serverless architecture is best suited for running microservices with short-life span and is not efficient in the case of an application having a long-life.
- The Cold Start in AWS Lambda can prove to be a real hassle delaying the first request in a situation where there has been no request for a long time. This happens as Lambda terminates the function if no request has been recorded in some time.
- CloudWatch is the only tool integrated with AWS Lambda for troubleshooting.
AWS Lambda’s Supported Codes
Since the launch of Amazon Lambda in 2014, the platform has been including new coding languages. Following are some of the languages supported by the platform:
- C# (.NET Core)
- Java (Java 8 compatible