With Amazon CloudWatch, there is no up-front commitment or minimum fee; you simply pay for what you use. You will be charged at the end of the month for your usage.
There is no additional charge for Amazon ECS. You pay for AWS resources (e.g., Amazon EC2 instances or Amazon EBS volumes) you create to store and run your application. You only pay for what you use, as you use it; there are no minimum fees and no upfront commitments.
More Pricing Information
Community Pulse
Amazon CloudWatch
Amazon Elastic Container Service (Amazon ECS)
Features
Amazon CloudWatch
Amazon Elastic Container Service (Amazon ECS)
Container Management
Comparison of Container Management features of Product A and Product B
For out business we find that AWS Cloudwatch is good at providing real-time metrics for monitoring and analysing the performance and usage of our platform by customers. It is possible to create custom metrics from log events, such people adding items to a basket, checking out or abandoning their orders.
Amazon ECS is well suited for the scenarios where you want to deploy a microservice to a cloud and instead of manually specifying instance size, number of instances and then specifying the configurations and connecting it with other cloud services like database service, secret manager service etc., you just want to specify these configurations as a file and using that file, the ECS would deploy the service and keep it healthy. It might be less suited for a scenario when you don't want to stick to AWS specific solution for your microservice deployment. The ECS configuration file is specific to AWS ECS and may not be useful for other cloud providers like Azure etc.
It provides lot many out of the box dashboard to observe the health and usage of your cloud deployments. Few examples are CPU usage, Disk read/write, Network in/out etc.
It is possible to stream CloudWatch log data to Amazon Elasticsearch to process them almost real time.
If you have setup your code pipeline and wants to see the status, CloudWatch really helps. It can trigger lambda function when certain cloudWatch event happens and lambda can store the data to S3 or Athena which Quicksight can represent.
One of the biggest advantages is the flexibility to change underlying EC2 instances. As the traffic or demand increases, we can easily change EC2 instances without any issues.
Amazon ECS APIs are extremely robust and one can start and stop containers by firing one post request only. So, it is not mandatory to keep the demo solutions up for every time. Just at the time of demo fire the command - make the container up and running - do the demo - down the container with API. A simple portal can control every container which helps non-technical (sales, marketing) to do the demo without keeping the solutions up for the entire time frame.
Memory metrics on EC2 are not available on CloudWatch. Depending on workloads if we need visibility on memory metrics we use Solarwinds Orion with the agent installed. For scalable workloads, this involves customization of images being used.
Visualization out of the box. But this can easily be addressed with other solutions such as Grafana.
By design, this is only used for AWS workloads so depending on your environment cannot be used as an all in one solution for your monitoring.
Another AWS Service - While AWS has a service for just about everything, that is also a negative point. There is no service that does 4 out of 4 things you need. This service does 3 out of 4, another service does the fourth thing you need and another two things that the other service does.
With AWS things in general, it's really hard to remain cloud agnostic. Keep that in mind.
It's excellent at collecting logs. It's easy to set up. The viewing & querying part could be much better, though. The query syntax takes some time to get used to, & the examples are not helpful. Also, while being great, Log Insights requires manual picking of log streams to query across every time.
Aside from some ECS-specific terms to learn at first, learning & starting to use ECS is relatively straightforward. AWS docs on the topic are also of high quality, with sound & relevant examples to follow. Troubleshooting container issues is also a breeze thanks to CloudWatch integration & helpful error messages on the AWS console.
Support is effective, and we were able to get any problems that we couldn't get solved through community discussion forums solved for us by the AWS support team. For example, we were assisted in one instance where we were not sure about the best metrics to use in order to optimize an auto-scaling group on EC2. The support team was able to look at our metrics and give a useful recommendation on which metrics to use.
Support is relatively good, although the documentation sometimes is lacking, as well as outdated in our experience, especially when we initiated the process of using this service. But once we found how to assemble things, we haven't really required support from anyone at AWS, the service works without problems so we haven't had the need to contact support, which speaks well of how ECS is built.
Grafana is definitely a lot better and flexible in comparison with Amazon CloudWatch for visualisation, as it offers much more options and is versatile. VictoriaMetrics and Prometheus are time-series databases which can do almost everything cloudwatch can do in a better and cheaper way. Integrating Grafana with them will make it more capable Elasticsearch for log retention and querying will surpass cloudwatch log monitoring in both performance and speed
I chose Amazon ECS over Amazon EKS and other products because the whole infrastructure was decided to be designed on AWS cloud and Amazon ECS made it easier to make the clusters live in just a few minutes. Amazon ECS has better integration with other AWS services and we don't have to look for plugins to do the things, everything is available and can be configured from the AWS console.