DEV Community

Cover image for Understanding AWS Fargate (Serverless Container or CaaS)
Benjamin Ajewole for AWS Community Builders

Posted on

Understanding AWS Fargate (Serverless Container or CaaS)

AWS Fargate is a technology you can use with Amazon ECS to run containers without managing servers or clusters of Amazon EC2 instances. With Fargate, you no longer have to provision, configure, or scale clusters of virtual machines to run containers. This removes the need to choose server types, decide when to scale your clusters or optimize cluster packing. It's both compatible with AWS ECS and AWS EKS.

AWS Fargate is also referred to as Container as a Service (CaaS). Containers as a service (CaaS) is a cloud-based service that allows software developers and IT departments to upload, organize, run, scale, and manage containers by using container-based virtualization.

What are Containers?

Containers are packages of software that contain all of the necessary elements to run in any environment. In this way, containers virtualize the operating system and run anywhere, from a private data center to the public cloud or even on a developer's personal laptop.

With Amazon ECS, you can choose between two launch types: Fargate launch type (AWS managed) and Amazon EC2 launch type(User managed).

What difference between Fargate and EC2 launch types?

EC2 lets you create your own cluster, while Fargate allows you to simply deploy your containers to AWS' cluster, saving you the time and effort of managing your own machines and clusters.

Costs differ for EC2 and AWS Fargate. With EC2, billing is based on the cost of the EC2 instances used; AWS Fargate also charges for CPU cores and memory consumed.

What problems does AWS Fargate solve?

One of AWS Fargate's main advantages is a solution to the challenges of hosting, scaling and managing cloud infrastructure to run containerized applications. Amazon Fargate abstracts infrastructure operations, devoting more effort to creating containerized applications.

How AWS Fargate works?

The steps in the deployment cycle are:
1) Build a container image
2) Host your container image on AWS ECR or DockerHub
3) Choose an orchestration service: Amazon ECS or Amazon EKS
4) Create a Cluster taking the AWS Fargate option

Cons of AWS Fargate?

Less Customization: AWS Fargate is not well-suited for users or organisations that want to have greater control over their containers.
Not cost-effective for small workloads: If you have a ton of small services which are rarely used, it can be a lot cheaper to use EC2 instead.

Pros of AWS Fargate?

Reduce Complexity: AWS Fargate is a container as a service, so you don't need to worry about where and how to manage and scale your containers.

Better Security: AWS handles the security of your infrasctructure.

AWS Fargate pricing?

AWS Fargate pricing is calculated based on the vCPU, memory, Operating Systems, CPU Architecture, and storage resources used per second. Read more here: https://aws.amazon.com/fargate/pricing/
How to get started with AWS Fargate?
https://aws.amazon.com/fargate/getting-started/
https://docs.aws.amazon.com/eks/latest/userguide/fargate-getting-started.html

Top comments (0)