Pros and cons of Amazon ECS
Use Cases and Deployment Scope
For any SaaS application like ours, we need to deploy it on cloud and that's where ECS comes into picture.
ECS is special in the sense that it takes care of the orchestration and we only need to specify the instance size, number of instances and other configurations to connect with other services like RDS for database and Secret Manager for credentials etc. and it takes care of the deployment.
Pros
- It takes care of the deployment life cycle by using just a configuration file
- It takes care of the scaling as well and monitors the health of the services
- It does the version management as well and if we need to roll back to a previous version, we need not do it via SCM tools like git, we can simply deploy a previous version from ECS console itself.
Cons
- The user interface sometimes seem to be confusing and cumbersome. It can be improved so that people can understand clearly which section to go for which functionality.
- When a container fails, the error logs are not readily available on the ECS console. If it can be provided it would be easier to debug from there itself instead of going to our log manager.
- Sometimes the old EC2 containers become stale and need to be restarted manually. There should be a notification for such scenarios. We have mostly been finding it out on our own and then fixing it by manually restarting EC2 instances.
- If this could be proactively monitored and notified, it would be great.
Return on Investment
- Amazon ECS has solved the problem of deploying our service to cloud and making it highly scalable and available and managing the lifecycle of the container.
- We've achieved 99.8 % of uptime because of self-healing capabilities of ECS and its scalability.
- It has made it easy to configure testing environments with lower configurations and lower costs as we need less compute power in testing environments and we can specify less number of instances with less memory for such environments.
