AWS introduced CloudWatch Anomaly Detection as a way to get smarter alarms for your metrics. There were also a couple of smaller updates to the AWS container services.
CloudWatch Anomaly Detection
Almost a year ago, AWS introduced Predictive Scaling for their EC2 instances. Predictive Scaling allowed your EC2 instances to scale automatically based on past behaviour. The newly released CloudWatch Anomaly Detection does something similar in that it looks at past behaviour to determine if an alarm should be triggered.
The concept is straightforward: CloudWatch looks back at a training period you define and learns from that when something is expected and when it isn’t. So, if you have a regular spike because a cron job runs every day at noon, it will take that into account when determining if it should send an alert about that.
I’m pretty confident that it won’t surprise you that under the hood there’s a lot of machine learning going on to make these predictions, and you can use it for every metric you can measure in CloudWatch. You’ve got quite a bit of control over the training period as well, and you can exclude specific times (such as a deployment that took a lot of CPU) so those don’t get taken into account.
Ok, you might ask, why is this actually interesting? After all, you could already set your alarms to trigger if resources went out of control. There are a couple of reasons why this might be interesting, so let’s examine those a bit.
Let’s take a hypothetical example, you have a single instance that serves traffic to the internet1. Let’s further assume that you originally had an alarm set to trigger when you used over 80% CPU, but over time you found that it would occasionally have a short spike of 90%. Because of this you’d adjust your alerts to trigger only if it goes over 90% for a sustained period. With Anomaly Detection you can instead get alerted when it goes over 80% outside the predicted period.
Similarly, you can find out that things are going wrong a lot earlier. In another hypothetical example, you have an instance that doesn’t get a lot of traffic during the day (for example it’s running in a different region), so you do your deployments during the day. Now, if there is an issue with the new code that increases CPU usage by quite a bit you wouldn’t usually get an alert for that until it crosses the maximum you set for during the busy times. Anomaly Detection however would notice that instead of only using 20% CPU it was now suddenly using 40% and alert on that, giving you time to investigate before anything goes wrong.
Some AWS Container Updates
As Anomaly Detection took up quite a bit of this note, I’ll finish up with a couple of smaller, but potentially interesting container updates in the AWS world.
As Kubernetes 1.14 officially supports running Windows nodes, it won’t come as a big surprise that this is now also supported in EKS that runs that version or higher2. I don’t have much to say about this, if you were waiting for this because you absolutely need it you now have it. In every other case3, I still recommend looking for alternatives.
On the native orchestration side, ECS now supports ECS Image SHA tracking. This means that you can more easily track where a container has been deployed to. Something like this can be useful for auditing purposes, but it can also be useful in finding out if there are some older versions of an image running in your environment.
Ambassador Corner
- V/Line - EKS Proof Of Concept
- Managing Amazon EC2 Instances using Amazon SES
- Thoughts on AWS Control Tower
- Creating a Contact Center in minutes using Amazon Connect
- Practical guide to re:Invent 2019
- Effective Integration Testing of Alexa Skills
- How to harness AWS best practices with the Well Architected Framework
- Display Control Plane API Operations using Amazon CloudWatch Logs Insights
- BackFill Failed Delivery From Kinesis To RedShift With Lambda
- Automated backups of your AWS resources with AWS Backup
Read more like this:
- Week 32, 2019 - ECS Multiple Target Groups; CloudWatch Logs Insights; PartiQL; CloudFormation Roadmap
- Week 26, 2019 - AWS App Mesh and Cloud Map; IAM Access Advisor; Azure Bastion
- Week 13, 2019 - Kubernetes 1.14; EKS Supports 1.12; Istio 1.1; AWS App Mesh
- Week 44, 2018 - AWS Minor Feature Love for Databases; Containers; and Lambda
- Week 23, 2018 - Amazon Neptune; ALB Built-in Authentication; Helm in CNCF
Or always get the latest by subscribing through RSS, Twitter, or email!