Amazon CloudWatch is a native AWS monitoring tool for AWS programs. It provides data collection and resource monitoring capabilities.
$0
per canary run
AWS Elastic Beanstalk
Score 8.3 out of 10
N/A
AWS Elastic Beanstalk is the platform-as-a-service offering provided by Amazon and designed to leverage AWS services such as Amazon Elastic Cloud Compute (Amazon EC2), Amazon Simple Storage Service (Amazon S3).
$35
per month
Pricing
Amazon CloudWatch
AWS Elastic Beanstalk
Editions & Modules
Canaries
$0.0012
per canary run
Logs - Analyze (Logs Insights queries)
$0.005
per GB of data scanned
Over 1,000,000 Metrics
$0.02
per month
Contributor Insights - Matched Log Events
$0.02
per month per one million log events that match the rule
Logs - Store (Archival)
$0.03
per GB
Next 750,000 Metrics
$0.05
per month
Next 240,000 Metrics
$0.10
per month
Alarm - Standard Resolution (60 Sec)
$0.10
per month per alarm metric
First 10,000 Metrics
$0.30
per month
Alarm - High Resolution (10 Sec)
$0.30
per month per alarm metric
Alarm - Composite
$0.50
per month per alarm
Logs - Collect (Data Ingestion)
$0.50
per GB
Contributor Insights
$0.50
per month per rule
Events - Custom
$1.00
per million events
Events - Cross-account
$1.00
per million events
CloudWatch RUM
$1
per 100k events
Dashboard
$3.00
per month per dashboard
CloudWatch Evidently - Events
$5
per 1 million events
CloudWatch Evidently - Analysis Units
$7.50
per 1 million analysis units
No Charge
$0
Users pay for AWS resources (e.g. EC2, S3 buckets, etc.) used to store and run the application.
Offerings
Pricing Offerings
Amazon CloudWatch
AWS Elastic Beanstalk
Free Trial
Yes
No
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
Yes
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
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.
Public & Private Cloud Senior Business Technology Engineer
Chose AWS Elastic Beanstalk
We now default to Amazon ECS, due to flexibility this gives us with how workloads scale, and more network flexibility as many of our workloads are internal / external facing. We selected Elastic Beanstalk at beginning of our containerization phase, which suited our needs …
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.
I have been using AWS Elastic Beanstalk for more than 5 years, and it has made our life so easy and hassle-free. Here are some scenarios where it excels -
I have been using different AWS services like EC2, S3, Cloudfront, Serverless, etc. And Elastic Beanstalk makes our lives easier by tieing each service together and making the deployment a smooth process.
N number of integrations with different CI/CD pipelines make this most engineer's favourite service.
Scalability & Security comes with the service, which makes it the absolute perfect product for your business.
Personally, I haven't found any situations where it's not appropriate for the use cases it can be used. The pricing is also very cost-effective.
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.
Getting a project set up using the console or CLI is easy compared to other [computing] platforms.
AWS Elastic Beanstalk supports a variety of programming languages so teams can experiment with different frameworks but still use the same compute platform for rapid prototyping.
Common application architectures can be referenced as patterns during project [setup].
Multiple environments can be deployed for an application giving more flexibility for experimentation.
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.
Limited to the frameworks and configurations that AWS supports. There is no native way to use Elastic Beanstalk to deploy a Go application behind Nginx, for example.
It's not always clear what's changed on an underlying system when AWS updates an EB stack; the new version is announced, but AWS does not say what specifically changed in the underlying configuration. This can have unintended consequences and result in additional work in order to figure out what changes were made.
As our technology grows, it makes more sense to individually provision each server rather than have it done via beanstalk. There are several reasons to do so, which I cannot explain without further diving into the architecture itself, but I can tell you this. With automation, you also loose the flexibility to morph the system for your specific needs. So if you expect that in future you need more customization to your deployment process, then there is a good chance that you might try to do things individually rather than use an automation like beanstalk.
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.
The overall usability is good enough, as far as the scaling, interactive UI and logging system is concerned, could do a lot better when it comes to the efficiency, in case of complicated node logics and complicated node architectures. It can have better software compatibility and can try to support collaboration with more softwares
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.
As I described earlier it has been really cost effective and really easy for fellow developers who don't want to waste weeks and weeks into learning and manually deploying stuff which basically takes month to create and go live with the Minimal viable product (MVP). With AWS Beanstalk within a week a developer can go live with the Minimal viable product easily.
- Do as many experiments as you can before you commit on using beanstalk or other AWS features. - Keep future state in mind. Think through what comes next, and if that is technically possible to do so. - Always factor in cost in terms of scaling. - We learned a valuable lesson when we wanted to go multi-region, because then we realized many things needs to change in code. So if you plan on using this a lot, factor multiple regions.
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
We also use Heroku and it is a great platform for smaller projects and light Node.js services, but we have found that in terms of cost, the Elastic Beanstalk option is more affordable for the projects that we undertake. The fact that it sits inside of the greater AWS Cloud offering also compels us to use it, since integration is simpler. We have also evaluated Microsoft Azure and gave up trying to get an extremely basic implementation up and running after a few days of struggling with its mediocre user interface and constant issues with documentation being outdated. The authentication model is also badly broken and trying to manage resources is a pain. One cannot compare Azure with anything that Amazon has created in the cloud space since Azure really isn't a mature platform and we are always left wanting when we have to interface with it.