Need advice about which tool to choose?Ask the StackShare community!

AWS Batch

87
247
+ 1
6
AWS Lambda

23.6K
18.3K
+ 1
432
Add tool

AWS Batch vs AWS Lambda: What are the differences?

AWS Batch and AWS Lambda are both services offered by Amazon Web Services (AWS) that enable developers to run and manage their applications at scale. However, there are some key differences between the two:

  1. Scaling and Control: AWS Batch provides fine-grained control over the scaling and management of your batch computing workloads. It allows you to set up and manage queues, define job dependencies, and control batch scheduling. On the other hand, AWS Lambda automatically scales your application to handle incoming requests, without requiring manual management or configuration.

  2. Pricing Model: AWS Batch follows a pay-as-you-go pricing model, where you are charged based on the number of vCPUs and memory resources used by your batch compute environments. In contrast, AWS Lambda follows a metered pricing model, where you are billed based on the number of requests and the duration of each request invocation.

  3. Compute Environment: AWS Batch allows you to define and manage your own compute environments, where you have control over the type and capacity of the underlying EC2 instances used for batch processing. On the other hand, AWS Lambda abstracts the compute environment and automatically manages the infrastructure, allowing you to focus on writing code without worrying about the underlying resources.

  4. Execution Limits: AWS Batch allows you to run long-running processes, where each job can run for hours or even days if needed. This is particularly useful for scientific and batch processing workloads. On the other hand, AWS Lambda has a maximum execution duration limit of five minutes, which makes it most suitable for short-lived tasks or event-driven applications.

  5. Integration with Services: AWS Batch can be easily integrated with other AWS services such as Amazon S3, Amazon DynamoDB, and AWS Step Functions. This allows you to build complex workflows and process large amounts of data using batch processing. AWS Lambda also has integrations with various AWS services, but its main strength lies in its ability to respond to events and trigger serverless functions in response to actions from other services.

  6. Dependencies and Language Support: AWS Batch supports running applications written in any programming language as long as it can be containerized. This gives you the flexibility to use your preferred programming language. On the other hand, AWS Lambda supports a wider range of programming languages out of the box, including Node.js, Java, Python, Ruby, C#, PowerShell, and Go. It also allows you to include external libraries and dependencies in your function code.

In summary, AWS Batch provides fine-grained control over batch processing workloads, while AWS Lambda offers automatic scaling and event-based execution for serverless functions.

Decisions about AWS Batch and AWS Lambda
Tim Nolet

When adding a new feature to Checkly rearchitecting some older piece, I tend to pick Heroku for rolling it out. But not always, because sometimes I pick AWS Lambda . The short story:

  • Developer Experience trumps everything.
  • AWS Lambda is cheap. Up to a limit though. This impact not only your wallet.
  • If you need geographic spread, AWS is lonely at the top.
The setup

Recently, I was doing a brainstorm at a startup here in Berlin on the future of their infrastructure. They were ready to move on from their initial, almost 100% Ec2 + Chef based setup. Everything was on the table. But we crossed out a lot quite quickly:

  • Pure, uncut, self hosted Kubernetes β€” way too much complexity
  • Managed Kubernetes in various flavors β€” still too much complexity
  • Zeit β€” Maybe, but no Docker support
  • Elastic Beanstalk β€” Maybe, bit old but does the job
  • Heroku
  • Lambda

It became clear a mix of PaaS and FaaS was the way to go. What a surprise! That is exactly what I use for Checkly! But when do you pick which model?

I chopped that question up into the following categories:

  • Developer Experience / DX πŸ€“
  • Ops Experience / OX πŸ‚ (?)
  • Cost πŸ’΅
  • Lock in πŸ”

Read the full post linked below for all details

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of AWS Batch
Pros of AWS Lambda
  • 3
    Containerized
  • 3
    Scalable
  • 129
    No infrastructure
  • 83
    Cheap
  • 70
    Quick
  • 59
    Stateless
  • 47
    No deploy, no server, great sleep
  • 12
    AWS Lambda went down taking many sites with it
  • 6
    Event Driven Governance
  • 6
    Extensive API
  • 6
    Auto scale and cost effective
  • 6
    Easy to deploy
  • 5
    VPC Support
  • 3
    Integrated with various AWS services

Sign up to add or upvote prosMake informed product decisions

Cons of AWS Batch
Cons of AWS Lambda
  • 3
    More overhead than lambda
  • 1
    Image management
  • 7
    Cant execute ruby or go
  • 3
    Compute time limited
  • 1
    Can't execute PHP w/o significant effort

Sign up to add or upvote consMake informed product decisions

What is AWS Batch?

It enables developers, scientists, and engineers to easily and efficiently run hundreds of thousands of batch computing jobs on AWS. It dynamically provisions the optimal quantity and type of compute resources (e.g., CPU or memory optimized instances) based on the volume and specific resource requirements of the batch jobs submitted.

What is AWS Lambda?

AWS Lambda is a compute service that runs your code in response to events and automatically manages the underlying compute resources for you. You can use AWS Lambda to extend other AWS services with custom logic, or create your own back-end services that operate at AWS scale, performance, and security.

Need advice about which tool to choose?Ask the StackShare community!

What companies use AWS Batch?
What companies use AWS Lambda?
See which teams inside your own company are using AWS Batch or AWS Lambda.
Sign up for StackShare EnterpriseLearn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with AWS Batch?
What tools integrate with AWS Lambda?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

GitHubPythonNode.js+47
54
72302
GitHubDockerAmazon EC2+23
12
6566
JavaScriptGitHubPython+42
53
21838
What are some alternatives to AWS Batch and AWS Lambda?
Beanstalk
A single process to commit code, review with the team, and deploy the final result to your customers.
Airflow
Use Airflow to author workflows as directed acyclic graphs (DAGs) of tasks. The Airflow scheduler executes your tasks on an array of workers while following the specified dependencies. Rich command lines utilities makes performing complex surgeries on DAGs a snap. The rich user interface makes it easy to visualize pipelines running in production, monitor progress and troubleshoot issues when needed.
Kubernetes
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions.
Serverless
Build applications comprised of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster. The Framework uses new event-driven compute services, like AWS Lambda, Google CloudFunctions, and more.
Azure Functions
Azure Functions is an event driven, compute-on-demand experience that extends the existing Azure application platform with capabilities to implement code triggered by events occurring in virtually any Azure or 3rd party service as well as on-premises systems.
See all alternatives