This article will explore delay in AWS Fargate startup time. Factors that contribute to this time loss include:
- Image extract time
- Load balancer
- Container size
The article also explores why IronWorker is the preferred alternative to AWS Fargate.
Fargate’s startup time is slowing you down from getting your information to your users. Find out why IronWorker is the faster container solution for your background jobs. Speak to us to talk about why.
Table of Contents
AWS Fargate Container Startup Time Issues
- The extract time for the image
- The load balancer factor
The main issue with AWS Fargate is the container startup time. This problem is worse when a user is fairly new to the technology. Although AWS Fargate has an advantage in that you do not have to worry about the underlying infrastructure, deployments are much harder. This is because deployments in AWS Fargate may take up to five minutes to complete. Some users claim that it may take even longer, up to 10 minutes.
The below image shows how serverless computing works.
The startup time is negatively affected by the size of the Docker image. The image needs to be downloaded to the host for the task to launch. The larger the size of the Docker image the longer the startup time. AWS Fargate has received many positive reviews, but the delayed startup time is a particularly problematic issue. Luckily, it is not the only management solution for containers.
One great alternative is IronWorker from Iron.io. IronWorker is an industry-leading solution that is container-based and offers Docker support for a great performance of work on-demand. To get this product, sign up with Iron.io and begin a free 14-day trial today.
What Causes Delay in Startup Time When Using AWS Fargate?
Even a simple container set up can take a long time when using AWS Fargate. Many users get frustrated trying to understand the reason for the delay.
The two main reasons include:
- The extract time for the image, which is dependent on image size
- The load balancer factor
The delayed time is even more frustrating considering that Docker containers’ startup time is mere seconds. AWS Fargate says that reducing the size of the Docker image may help speed up the process. But this is not an optimal solution. The elastic load balancer is responsible for conducting health checks of all instances. When the load balancer is on, the startup time will be longer. But many users have found that even without load balancing, the startup time when using AWS Fargate is much slower.
The image below shows the process of creating containers and how they are launched and managed.
Load balancing health checks take a grace period which is 300 seconds (5 minutes) long. AWS Fargate cannot act on the instances unless the grace period ends. This further delays the startup time especially when the instance is unhealthy. When this happens AWS Fargate will launch a replacement instance.
Does Size of the Container Matter?
The size of the container, or containers, does matter. Uploading a bigger container will take more time. In addition, it will take more time to stop running larger containers. This is because AWS Fargate waits for the grace period, 300 seconds, to end before removing a running container. This delays the startup time when you want to remove a running container and upload a new one.
The image below shows running containers and hoe they get processed by the container orchestrator and virtual machines.
The grace period is the default time. That means you can reduce it. But eliminating or reducing the grace period does not guarantee that the startup time will be faster. The nature of the application in the container affects the startup time. Some applications will take more time to startup. This may be due to various factors.
One factor is a large number of existing old tasks that are still running. Removing the tasks from the target group and terminating the containers also takes a lot of time. Consequently, adding new applications and larger containers will take more time. Your application will have to pass all the health checks, especially when receiving traffic. AWS Fargate will also delay the startup time because of the target registration process. The load balancer also has to register that the newly added applications are a healthy endpoint. All this takes time especially when you are new to using AWS Fargate.
Why Choose IronWorker Over AWS Fargate?
AWS Fargate has many great qualities, but the drawbacks of using it are also very significant. IronWorker offers all the great qualities of AWS Fargate without slow startup times. Additionally, you should use IronWorker because it has better support, simplicity, and more deployment options.
IronWorker helps you develop each task differently depending on your specific needs. This helps get your application or task up and running in no time. IronWorker comes with a simple to use dashboard. You don’t have to be an expert or know a lot about the service to use it. Choosing IronWorker also means that you get more deployment options.
AWS Fargate technology does not have on-premises deployment. But with IronWorker, you get a variety of options such as shared, hybrid, dedicated, and on-premises deployment.