AWS - ECS Essentials

AWS - ECS Essentials

Ever since containers taken over the software development, everyone thinks that containers are silver bullet. It is far from truth. Although, containers can definitely help you speed up your development and deployment process, the real challenge comes from the orchestrating these containers.

It is easy to get started by installing and packaging your application. Once you start deploying is when the real problem starts. For starters, these are the questions you need to ask when deploying containerized application.

How and where do my containers run?

How to expose my application to outside world?

Should I run proxy in another container and create a networking connection with my application container?

What are the connectivity options for my persistence storage (DB)?

How to achieve high availability?

…. and many more.

If you are in a dilemma and find that Kubernetes is intimidating, look no further, here is the solution Elastic Container Service from AWS.

Kubernetes is considered as the go-to solution for all orchestration requirements of containers, but it is equally complex to learn and manage. The required infrastructure cost is also very high.

Some notable features of ECS

  1. Best alternative to Kubernetes to run and manage containers.
  2. Option to choose EC2 VMs and Fargate (managed compute) to run your containers. If you want more control, choose EC2 with ECS.
  3. Relatively less expensive compared to Kubernetes.
  4. Tight integration with ECR (AWS container registry and it provides security for your containers without paying to some other provider to host your images).
  5. Tight integration with other useful AWS managed services like S3, SES, SNS etc.
  6. Use infrastructure as code to automate creation of clusters and manage them. You can use something like CDK to create IaC repo.

Conclusion

Overall, ECS is a great solution to run your containers at a scale with the option of managed VMs or without managing them yourself (Fargate). Before you want to get yours hand dirty with Kubernetes, you can give ECS a try.