If your heavily-loaded service is running on AWS Lambda you may not be satisfied with its performance. Lambda has several gateway limitations, including response time, body size, Rest API endpoint, and request concurrency per account. In this case, one option is to switch to Amazon Elastic Container Service (ECS). Dev.Pro’s certified cloud practitioners explain why you should migrate from AWS Lambda to AWS ECS.

Top-5 Reasons to Stop Using AWS Lambda

AWS Lambda is a serverless computing service that lets companies run code without provision or internal server management. However, for highly loaded solutions, this tool can be inadequate. Here’s why:

  1. Response time out limited to 30 seconds

This is an API Gateway limitation. This means that if the application programming interface (API) takes more than 30 seconds,  a user of your service will receive a 504 HTTP Error despite the fact that Lambda will still be running in the background.

  1. Response Body Size — 10 Mb

This is also an API Gateway limitation. If the API returns a body with more than 10 Mb of data, a user will receive a 429 HTTP error.

  1. Request concurrency per account: 1,000

This is a per-account  AWS Lambda limitation , which can be increased. However, one loaded resource can impact other ones. If more than 1,000 users call different Lambdas in parallel, some of them will receive a 429 HTTP error. 

  1. Endpoints limit: 300

This is a limit in the API gateway. The Rest API service can have up to 300 endpoints.

  1. Costs increase during high load

AWS API Gateway and AWS Lambdas are serverless services, which are cost-efficient in cases of minimal usage. High loads are expensive because of the cost of  request counts and Lambda’s duration-based billing model.

  1. 200 resource limit

This problem occurs when your software exceeds 200 resources in a single CloudFormation stack. Even if you have only 70 functions, you will still exceed this limit because at least three separate requests are created for each function.

Example of AWS Lambda API design

As a result, if these shortcomings are crucial and you don’t want them to affect your sales or customer experience, you should look for a more appropriate approach.

Why AWS ECS Could Become a Solution

AWS ECS, a container orchestration service, is a secure, scalable and cost effective cloud services platform that offers computing power, database storage, content delivery and other functionality to help businesses scale and grow.

Key benefits of AWS ECS:

  • Application-first approach with ECS capacity providers. The ability to use a combination of EC2 and Fargate with Spot and on-demand pricing for your applications.
  • Scalability. Run many containers quickly and easily.
  • Security. Containers run in your own Amazon virtual private cloud (VPC), so you’re able to use your VPC security groups and network access-control lists.
  • Reliability. Worldwide infrastructure with 77 availability zones across 24 regions.
  • Cost optimization. Use Fargate Spot or EC2 Spot instances to save up to 90% on on-demand pricing.
  • Improved compatibility with Docker. The integration between Docker and ECS gives you an opportunity to move from a local context to a cloud context, which can help you to launch applications faster.
  • Restriction elimination. You can remove limitations from AWS API Gateway and Lambdas, which were mentioned above, gaining more granular environment control.
Comparing of Lambda and ECS workflows
Comparing of Lambda and ECS workflows

For this cloud migration, you’ll need to draw up an AWS cloud migration checklist to avoid potential pitfalls.

The entire API needs to be covered by tests, which are required to run successfully during the API migration process. The API layer  should be moved from Lambda handlers to the web framework. All business logic should remain untouched. After the API is moved into Docker, a serverless file needs to be updated to support ECS.

How does AWS ECS Work?

You can design Amazon ECS clusters inside a new isolated Virtual Private Cloud (VPC) or in the existing cloud structure. After a cluster launches , create task definitions to determine which container images are running in your clusters. Amazon Elastic Container Registry, or another other container registry, stores all container images. AWS ECR is a secure, scalable, and reliable registry service. With ECR you have the ability to use any convenient command line interface to manage Docker images, open container initiative (OCI) images, and OCI-compatible artifacts. It’s also compatible with AWS Identity and Access Management (IAM).

Explanation of what the ECS workflow looks like
Explanation of what the ECS workflow looks like

Pros and Cons of Moving to AWS ECS

In addition to understanding the main benefits of ECS as a container service, you need to have more practicable details about this AWS cloud migration to weigh the pros and cons.

AWS ECS Pros:

  • Helps to remove many of  the most common limits (response timeout, body size, API endpoints, and concurrency limit)
  • Delivers a fully-controlled scalable system
  • Gives an identical environment for local and production using Docker
  • Shares a backward compatible API
  • Optimizes costs

AWS ECS Cons:

  • Has a more complex configuration
  • Autoscaling policies should be clearly defined
  • Placement strategy for tasks should be specified for optimizing costs
  • Memory and central processing unit limits should be defined for tasks
Download Cloud Cost Optimization White Paper

Summary

AWS provides a wide range of cloud solutions to address almost any challenge. However, it’s sometimes better to switch from Lambda to ECS . 

If you’re planning to update your existing software product, create a new service, or are just looking for technical assistance, contact our cloud experts. We’ll help you mitigate risks and assist with technical realization.