Tue Jul 09 2019

Utility of AWS Lambda

Programming1498 views

AWS Lambda

AWS Lambda is Amazon’s serverless compute service as a part of the Amazon Web Services. It's a service for running code in response to events, such as changes to data in an Amazon S3 bucket and Amazon DynamoDB tables, or computing as services to run your code in response to HTTP requests using Amazon API gateway or API calls made by using AWS SDKs. AWS Lambda manages the computer fleet that handles memory, CPU, networking and other resources in exchange for flexibility, in other words, you don't need to modify your instance in any way while hosted on AWS Lambda. It can run your code without provisioning any Infrastructure or servers.

It also works on instances by launching or terminating them, checking their health, helps in auto-scaling, updates, etc.

It was introduced in November 2014. AWS Lambda currently supports Node.js, Java and Python computer languages.

AWS Lambda features

Lambda allows the use of serverless and microservices programming architectures to support  ‘Function as a Service’ (FaaS), allowing developers to focus on writing code. You can run your code on it without having to manage servers or even containers. It’ll automatically scale depending on how much work you feed into it. Here are some other features -

Simple development

You can use the internal source code editor that is available online directly in the Lambda Console. Essentially, the Lambda function code runs on Amazon Linux, and as such can use any tools included with the OS. Lambda functions can be bundled with other deployment artifacts such as libraries and even Linux executable files. Just, you need to upload your code as a zip or jar archive, then AWS Lambda does the rest.

Security

Access to other AWS services, such as DynamoDB or CloudWatch is controlled through IAM roles. This prevents unnecessary data exposure to certain Lambda functions and lowers the attack surface of the microservice in the event of a security breach.

Flexible

Lambda allows You to choose the amount of memory you want to allocate to your functions and AWS Lambda allocates proportional CPU power, network bandwidth, and disk I/O.

Automatic scaling

AWS Lambda automatically scales the infrastructure depending on the number of requests, without any additional configuration from your side. It is no longer necessary to size your deployment’s capacity for traffic peaks.

Event Driven Model

AWS Lambda functions can be triggered by different events, including events from AWS services such as S3, DynamoDB, CodeCommit, CloudWatch, and AWS IoT. Lambda also allows functions to be triggered as a response to inbound HTTP requests, as a response to inbound messages (SNS, Kinesis), or by a scheduled event. The AWS mobile SDK conveniently supports invocation of Lambda functions from mobile apps.

Back-end services

You can use AWS Lambda to create new back-end services for your applications that are triggered on-demand using the Lambda API or custom API endpoints built using Amazon API Gateway. By using Lambda to process custom events instead of servicing these on the client, you can avoid client platform variations, reduce battery drain, and enable easier updates.

By default tolerance

Lambda has built-in fault tolerance. AWS Lambda maintains compute capacity across multiple Availability Zones in each region to help protect your code against individual machine or data center facility failures. Both AWS Lambda and the functions running on the service provide predictable and reliable operational performance. AWS Lambda is designed to provide high availability for both the service itself and for the functions it operates. There are no maintenance windows or scheduled downtimes.

Cost efficiency

With AWS Lambda you pay only for the requests served and the compute time required to run your code. Billing is metered in increments of 100 milliseconds, making it cost-effective and easy to scale automatically from a few requests per day to thousands per second.

Online editing

For some of the supported languages (JavaScript and Python), there’s an online editor in the Lambda interface on the AWS web console. You can literally code and edit the function using the web browser. This means you can create or edit a Lambda using your mobile device. It saves each version too, and you can switch between new and old versions. And you can map versions to “environments” using aliases

API Gateway

API Gateway is the portal to your microcosm within AWS. It’ll connect to many of the cloud services directly, but when you need flexibility, Lambda is your go-to. It’s where you put custom code to process requests that come in through the API Gateway. Use a Lambda when you need to access several services or do custom processing.

How does it work?

  • Upload your code to AWS Lambda or write code in Lambda build-in code editor.

  • Next, set up your code to trigger from other AWS services, HTTP end-points, or in-app activity.

  • Lambda runs code only when triggered, using only the computing resources needed.

  • Then, just pay for the compute time that you use.

Utilities of AWS Lambda

Web apps

By combining AWS Lambda with other AWS services, developers can build powerful web apps that automatically scale up and down and run in a highly available configuration across multiple data centers – with zero administrative effort required for scalability, back-ups or multi-datacenter redundancy.

To extract, load

You can use AWS Lambda to perform data validation, filtering, sorting, or other transformations for every data change in a DynamoDB table and load the transformed data to another data store.

Real-time processing

You can use Amazon S3 to trigger AWS Lambda to process data immediately after an upload. For instance, you can use Lambda to thumbnail images, transcode videos, index files, process logs, validate content, and aggregate and filter data in real-time.

Real-time streaming

You can use AWS Lambda to process real-time streaming data for application activity tracking, transaction order processing, clickstream analysis, data cleansing, metrics generation, log filtering, indexing, social media analysis, and IoT device data telemetry and metering.

To create backends

You can build serverless backends using AWS Lambda to handle web, mobile, Internet of Things (IoT), and 3rd party API requests. You can also build backends using AWS Lambda and Amazon API Gateway to authenticate and process API requests. Lambda makes it easy to create rich, personalized app experiences.

To execute code

You can use AWS Lambda to execute code in response to triggers such as changes in data, shifts in system state, or actions by users. Lambda can be directly triggered by AWS services such as S3, DynamoDB, Kinesis, SNS, and CloudWatch, or it can be orchestrated into workflows by AWS Step Functions. This allows you to build a variety of real-time serverless data processing systems.

We use cookies to improve your experience on our site and to show you personalised advertising. Please read our cookie policy and privacy policy.