Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster. You can host your cluster on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks using the Fargate launch type. For more control, you can host your tasks on a cluster of Amazon Elastic Compute Cloud (Amazon EC2) instances that you manage by using the EC2 launch type. For more information about Amazon EC2
Amazon ECS lets you launch and stop container-based applications with simple API calls, allows you to get the state of your cluster from a centralized service, and gives you access to many familiar Amazon EC2 features.
You can use Amazon ECS to schedule the placement of containers across your cluster based on your resource needs, isolation policies, and availability requirements. Amazon ECS eliminates the need for you to operate your own cluster management and conﬁguration management systems or worry about scaling your management infrastructure.
Amazon ECS can be used to create a consistent deployment and build experience, manage, and scale batch and Extract-Transform-Load (ETL) workloads, and build sophisticated application architectures on a microservices model.
AWS Elastic Beanstalk can also be used to rapidly develop, test, and deploy Docker containers in conjunction with other components of your application infrastructure; however, using Amazon ECS directly provides more ﬁne-grained control and access to a wider set of use cases.
To get in-Depth knowledge on Amazon ECS you can enroll for live AWS Online Training.
Features of Amazon ECS
Amazon ECS is a regional service that simpliﬁes running application containers in a highly available manner across multiple Availability Zones within a Region. You can create Amazon ECS clusters within a new or existing VPC. After a cluster is up and running, you can deﬁne task deﬁnitions and services that specify which Docker container images to run across your clusters. Container images are stored in and pulled from container registries, which may exist within or outside of your AWS infrastructure.
Containers and Images
To deploy applications on Amazon ECS, your application components must be architected to run in containers. A Docker container is a standardized unit of software development, containing everything that your software application needs to run: code, runtime, system tools, system libraries, etc. Containers are created from a read-only template called an image.
To prepare your application to run on Amazon ECS, you create a task deﬁnition. The task deﬁnition is a text ﬁle, in JSON format, that describes one or more containers, up to a maximum of ten, that form your application. It can be thought of as a blueprint for your application. Task deﬁnitions specify various parameters for your application. Examples of task deﬁnition parameters are which containers to use, which launch type to use, which ports should be opened for your application, and what data volumes should be used with the containers in the task. The speciﬁc parameters available for the task deﬁnition depend on which launch type you are using.
Tasks and Scheduling
A task is the instantiation of a task deﬁnition within a cluster. After you have created a task deﬁnition for your application within Amazon ECS, you can specify the number of tasks that will run on your cluster.
Each task that uses the Fargate launch type has its own isolation boundary and does not share the underlying kernel, CPU resources, memory resources, or elastic network interface with another task.
When you run tasks using Amazon ECS, you place them on a cluster, which is a logical grouping of resources. When using the Fargate launch type with tasks within your cluster, Amazon ECS manages your cluster resources. When using the EC2 launch type, then your clusters are a group of container instances you manage. An Amazon ECS container instance is an Amazon EC2 instance that is running the Amazon ECS container agent. Amazon ECS downloads your container images from a registry that you specify and runs those images within your cluster.
The container agent runs on each infrastructure resource within an Amazon ECS cluster. It sends information about the resource’s current running tasks and resource utilization to Amazon ECS, and starts and stops tasks whenever it receives a request from Amazon ECS.
How to Get Started with Amazon ECS
If you are using Amazon ECS for the ﬁrst time, the AWS Management Console for Amazon ECS provides a ﬁrst-run wizard that steps you through deﬁning a task deﬁnition for a web server, conﬁguring a service, and launching your ﬁrst Fargate task. The ﬁrst-run wizard is highly recommended for users who have no prior experience with Amazon ECS.
Amazon ECS can be used along with the following AWS services:
AWS Identity and Access Management
IAM is a web service that helps you securely control access to AWS resources for your users. Use IAM to control who can use your AWS resources (authentication) and what resources they can use in which ways (authorization). In Amazon ECS, IAM can be used to control access at the container instance level using IAM roles, and at the task, level using IAM task roles.
Amazon EC2 Auto Scaling
Auto Scaling is a web service that enables you to automatically scale out or in your tasks based on user-deﬁned policies, health status checks, and schedules. You can use Auto Scaling with a Fargate task within a service to scale in response to a number of metrics or with an EC2 task to scale the container instances within your cluster.
Elastic Load Balancing
Elastic Load Balancing automatically distributes incoming application traﬃc across the tasks in your Amazon ECS service. It enables you to achieve greater levels of fault tolerance in your applications, seamlessly providing the required amount of load balancing capacity needed to distribute application traﬃc. You can use Elastic Load Balancing to create an endpoint that balances traﬃc across services in a cluster.
Amazon Elastic Container Registry
Amazon ECR is a managed AWS Docker registry service that is secure, scalable, and reliable. Amazon ECR supports private Docker repositories with resource-based permissions using IAM so that speciﬁc users or tasks can access repositories and images. Developers can use the Docker CLI to push, pull, and manage images.
AWS CloudFormation gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion. You can deﬁne clusters, task deﬁnitions, and services as entities in an AWS CloudFormation script.
Take your career to new heights of success with an AWS Training