Day 76 of 90 Days of DevOps Challenge: Serverless Computing with AWS Lambda

Vaishnavi DVaishnavi D
5 min read

Yesterday, I explored Amazon Aurora, a high-performance, fully managed relational database engine from AWS that is compatible with both MySQL and PostgreSQL. I learned how Aurora is designed for cloud-native scalability, high availability, and fault tolerance, making it ideal for modern distributed applications.

Today, I took a deep dive into one of the most game-changing cloud-native compute services, AWS Lambda.

Instead of provisioning or managing servers, Lambda allows you to run code in response to events completely serverless. Let's unpack everything from the fundamentals to its advanced use cases.

What is AWS Lambda?

AWS Lambda is a Function-as-a-Service (FaaS) offering that lets you run backend code without provisioning or managing infrastructure. You simply write your function, upload it, and AWS handles everything else, including:

  • Server provisioning

  • Auto-scaling

  • High availability

  • Monitoring and logging

You are only charged for the execution time, making it cost-effective and scalable by default.

How AWS Lambda Works (Step by Step)

1. Create a Function

  • You can create Lambda functions using the AWS Console, CLI, or SDKs.

  • Supported runtimes include: Python, Node.js, Java, Go, .NET, Ruby, and even custom runtimes using AWS Lambda Runtime API.

2. Write and Deploy Code

  • Code can be edited inline or uploaded as a .zip or via S3.

  • Dependencies can be bundled into deployment packages or via Lambda Layers.

3. Set a Trigger

Lambda functions are event-driven, meaning they execute when a specific event occurs. Some popular triggers include:

  • S3 (e.g., file upload),

  • API Gateway (HTTP requests),

  • DynamoDB Streams,

  • CloudWatch Events,

  • SNS/SQS messages,

  • and EventBridge (modern event bus).

4. Execution Environment

When triggered, AWS:

  • Provisions a secure runtime environment,

  • Allocates memory and CPU (based on your config),

  • Runs your function code,

  • Shuts it down after execution (or keeps it warm for reuse).

5. Monitoring and Logs

  • Amazon CloudWatch Logs captures output and errors.

  • CloudWatch Metrics shows invocation count, duration, errors, throttles, etc.

Security in AWS Lambda

Lambda integrates tightly with IAM roles and policies, controlling:

  • Which resources the Lambda can access (like S3, DynamoDB, etc.),

  • Who can invoke the function (user, service, trigger).

You can also:

  • Use VPC integration to control network access,

  • Encrypt environment variables using KMS,

  • Define resource policies to control access from other AWS accounts or services.

Use Cases of AWS Lambda

  • Serverless APIs

    • Use AWS Lambda with API Gateway to build RESTful APIs without provisioning servers.
  • Real-time File Processing

    • Automatically trigger Lambda on S3 uploads to resize images or process files.
  • Scheduled Tasks

    • Run periodic jobs (like CRON) using CloudWatch Events to automate backups, cleanup, etc.
  • Stream Processing

    • Handle and process real-time data from DynamoDB Streams or Kinesis.
  • Automation

    • Automate cloud operations such as deleting unused resources or sending notifications.

AWS Lambda Limits

Maximum Execution Time:

  • A single Lambda invocation can run for up to 15 minutes (900 seconds).

  • If your function exceeds this limit, it will be automatically terminated.

  • Ideal for short-lived tasks; longer processes should be broken down or moved to other services like AWS Step Functions or ECS.

Maximum Memory Allocation:

  • You can allocate from 128 MB to 10,240 MB (10 GB) of memory per function.

  • Memory allocation also proportionally increases vCPU power (up to 6 vCPUs at 10 GB).

  • More memory means faster performance, but also higher cost; optimize based on workload.

Deployment Package Size Limits:

  • 50 MB (compressed) when uploading directly via the AWS Console or CLI.

  • 250 MB (unzipped) when uploading through Amazon S3.

  • For large libraries or shared code, use Lambda Layers (each up to 250 MB, max 5 layers per function).

Default Concurrency Limit:

  • By default, each AWS account can execute up to 1,000 Lambda invocations simultaneously.

  • You can request an increase for production workloads via the AWS Service Quotas dashboard.

  • You can also reserve concurrency for specific functions to ensure availability under load.

Timeout Granularity:

  • Timeout values can be configured in 1 millisecond increments, with a minimum of 1 second.

  • Setting the right timeout prevents unnecessary billing for idle time or failed logic loops.

Detailed Comparison of AWS Lambda and Amazon EC2

Feature / AspectAWS LambdaAmazon EC2
Compute ModelServerless (Function-as-a-Service)Server-based (Infrastructure-as-a-Service)
Use CaseShort, event-driven functionsLong-running, custom server applications
Server ManagementFully managed by AWS (no server to manage)You manage the OS, patches, updates, and security
ScalabilityAuto-scales automatically based on invocation rateManual or auto-scaling via ASG (additional config needed)
BillingPay per request and execution time (ms-based)Pay per hour or second (based on instance type)
Startup TimeFast (may have cold starts)Depends on AMI and instance boot time
Runtime DurationMax 15 minutes per executionCan run indefinitely (ideal for persistent workloads)
CustomizationLimited to supported runtimes and permissionsFull control over OS, packages, and runtime
State ManagementStateless (state must be handled externally)Can maintain state internally across reboots
Best ForLightweight microservices, automation, APIs, triggersCustom apps, full-stack services, databases, batch jobs
NetworkingVPC integration optionalFull control over networking via VPC
Cost EfficiencyHighly cost-efficient for low/variable workloadsMore efficient for high and predictable workloads

Final Thoughts

Exploring AWS Lambda today shifted my mindset from managing infrastructure to focusing purely on business logic. As a DevOps Engineer, serverless architectures offer:

  • Lower operational overhead,

  • Scalable backend components,

  • Event-driven automation,

  • and seamless integration with the entire AWS ecosystem.

Whether you're automating cloud tasks or building modern APIs, AWS Lambda is a must-have tool in your DevOps toolbox.

0
Subscribe to my newsletter

Read articles from Vaishnavi D directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vaishnavi D
Vaishnavi D