Introduction to Amazon ECS
Amazon ECS which stands for Elastic Container Service lets you run docker containers without having to manage.
Amazon Elastic Container Service lets you manage to launch an application on a cluster of Amazon EC2 instances with fast processing. It is reliable and highly scalable.
It eliminates the need for you to install, operate, and scale your own container management tools and infrastructure. With API calls you can run and stop container enabled applications, query the state of the cluster and many features in AWS resources like Security Groups, Elastic Load Balancing, EBS volumes and IAM roles.
Features of Amazon ECS
Fargate : AWS Fargate lets you run containers without worrying about provisioning or managing the underlying infrastructure, like Amazon EC2 instances. Amazon ECS is a fully managed service which is highly available and highly scalable.
Programmatic Control : It allows developers to integrate and extend their service through API calls. Create, delete, manage, register and deploy EC2 clusters using simple API actions for provisioning.
Native Docker Support : Amazon ECS supports Docker out of the box, enabling it to run and manage Docker containers. It also supports application packages locally and deploys them at scale with Amazon ECS without need for configuration changes.
Persistent Storage with Containers : There are many reasons why you would need to use persistent storage for your containers, but it’s important to remember that the mechanisms for persistent storage require additional understanding and configuration. Amazon ECS automatically recovers failed containers and keeps availability and reliability of your application above 99.99% uptime so that your application runs smoothly.
Container Networking : Inside an Amazon Elastic Container Service task definition, the Docker networking mode that the containers in the task will use. This networking mode accepts following values:
- None : For no external connectivity
- Bridge : To use Docker’s built-in network
- Host : It ports directly to the EC2 instance’s network interface
- AWS VPC: Each task is allocated its own ENI
Microservices : There are many advantages to microservices, and countless reasons as to why you would architect in order to best utilize them using ECS. This is perhaps the best way to decompose your application into its necessary parts, and the methods you want to deploy in order to build your microservice workflow.
Batch Processing Jobs : Most Common uses of Amazon ECS are batch jobs and the management capabilities. It can be run with managed and custom schedulers on AWS EC2 instances like on-demand, reserved and spot.
Machine Learning : Machine learning models can be easily containerized with Amazon ECS. ML resources can be made with loosely coupled, distributed services which can be placed on a variety of platforms or close to the data that is being analyzed by the application and migrating applications to the Cloud.