Book Image

Amazon Fargate Quick Start Guide

By : Deepak Vohra
Book Image

Amazon Fargate Quick Start Guide

By: Deepak Vohra

Overview of this book

Amazon Fargate is new launch type for the Amazon Elastic Container Service (ECS). ECS is an AWS service for Docker container orchestration. Docker is the de facto containerization framework and has revolutionized packaging and deployment of software. The introduction of Fargate has made the ECS platform serverless. The book takes you through how Amazon Fargate runs ECS services composed of tasks and Docker containers and exposes the containers to the user. Fargate has simplified the ECS platform. We will learn how Fargate creates an Elastic Network Interface (ENI) for each task and how auto scaling can be enabled for ECS tasks. You will also learn about using an IAM policy to download Docker images and send logs to CloudWatch. Finally, by the end of this book, you will have learned about how to use ECS CLI to create an ECS cluster and deploy tasks with Docker Compose.
Table of Contents (14 chapters)
Title Page
Copyright and Credits
Packt Upsell
Contributors
Preface
Index

Chapter 6. Using an Application Load Balancer

While some Docker containers accept TCP client requests, other Docker containers accept client requests on an HTTP path. As demonstrated in Chapter 2Networking, an HTTP request to a Hello World application task could be made on the public IP address exposed by the Hello World task. An ECS service includes built-in internal load balancing to distribute client traffic between the tasks in a service.

Problem : Each task in an ECS service with Fargate launch is associated with an ENI and a public IP. When an application is scaled up to run multiple tasks, multiple ENIs are created, and each task must be accessed on its public IP address.

Although internal load balancing is provided, no provision is included to balance client traffic externally between the different tasks' IP addresses. A single task could receive an inordinate number of client requests, while another task could receive relatively fewer client requests, or even none, which would result...