Lately, many of our AWS customers (especially those purchasing through the AWS marketplace) have mentioned that they are using an AWS EDP, which stands for Amazon Web Services Enterprise Discount Program. Essentially, this is AWS’s way to provide enterprises a discount off its services based on a volume (consumption) commitment.
How does an AWS EDP work?
A simple application of an AWS EDP would work as follows: for the next 3 years, you commit to spend $5MM on AWS services, and receive a 13% discount. Even if you don’t spend $5MM you still owe them $5MM, and of course if you go over you would get billed for the overage.
AWS’s website does not provide a lot of information about these agreements. Here’s what they say: “Customers also have the option to enroll in an Enterprise Agreement with AWS. Enterprise Agreements give customers the option to tailor agreements that best suit their needs. For additional information on Enterprise Agreements please contact your sales representative.”
What Other Agreements Compare to an AWS EDP?
Going back to my days at IBM, we used to generally refer to discount contracts as Enterprise License Agreements (ELAs). An ELA is a software site license that is sold to large enterprises. It typically allows for unlimited use of a single or multiple software products throughout the organization, although there were often some restrictions and limitations. During my time at IBM, these were sold upfront for a set dollar amount and term, generally 3 to 5 years and usually had a cap on usage, so at some point overages could kick in – which would help with the renegotiation, of course.
Other terms used with a similar concept include Site License, Enterprise Agreement (this is a common Microsoft term – EA), Volume Purchase Agreement (VPA) and All You Can Eat (AYCE). What all of these have in common is that the vendor gets a large revenue/spend commit, and the enterprise gets discounting and flexibility.
How Else can you Get Discounts on AWS?
AWS does provide enterprises with multiple ways to consume its services based on their business needs and get volume discounts. Traditional on-demand instances allow you to pay for capacity by the hour without any long-term commitments or upfront payments. Reserved instances are ideal for applications with steady-state or predictable usage and can provide up to a 75% discount compared to on-demand pricing. And of course they promote scale groups, spot instances, and other optimization efforts to reduce spend and waste but those are more cost control opportunities then they are discounts. Plus, you can always wait for better pricing.
Should You Use an AWS EDP?
Before committing to an AWS EDP, ensure that your organization will consume the amount of resources you are committing too. Keep in mind that this can also include the AWS Marketplace. The third party solutions you can buy on the AWS Marketplace also count against your AWS EDP, and leverage that discount structure — so before completing a third-party transaction, make sure you check the Marketplace to see if the cloud solution you buy is listed there.
When adopting or optimizing your public cloud use, it’s important to eliminate wasted spend from idle resources – which is why you need to include an instance scheduler in your plan. An instance scheduler ensures that non-production resources – those used for development, staging, testing, and QA – are stopped when they’re not being used, so you aren’t charged for compute time you’re not actually using.
AWS, Azure, and Google Cloud each offer an instance scheduler option. Will these fit your needs – or will you need something more robust? Let’s take a look at the offerings and see the benefits and drawbacks of each.
AWS Instance Scheduler
AWS has a solution called the AWS Instance Scheduler. AWS provides a CloudFormation template that deploys all the infrastructure needed to schedule EC2 and RDS instances. This infrastructure includes DynamoDB tables, Lambda functions, and CloudWatch alarms and metrics, and relies on tagging of instances to shut down and turn on the resources.
The AWS Instance scheduler is fairly robust in that it allows you to have multiple schedules, override those schedules, connect to other AWS accounts, temporarily resize instances, and manage both EC2 instances and RDS databases. However, that management is done exclusively through editing DynamoDB table entries, which is not the most user-friendly experience. All of those settings in DynamoDB are applied via instance tags, which is good if your organization is tag-savvy, but can be a problem if not all users have access to change tags.
If you will have multiple users adding and updating schedules, the Instance Scheduler does not provide good auditing or multi-user capabilities. You’ll want to strongly consider an alternative.
Microsoft Azure Automation
Microsoft has a feature called Azure Automation, which includes multiple solutions for VM management. One of those solutions is “Start/Stop VMs during off-hours”, which deploys runbooks, schedules, and log analytics in your Azure subscription for managing instances. Configuration is done in the runbook parameters and variables, and email notifications can be sent for each schedule.
This solution steps you through the setup for timing of start and stop, along with email configuration and the target VMs. However, multiple schedules require multiple deployments of the solution, and connecting to additional Azure subscriptions requires even more deployments. They do include the ability to order or sequence your start/stop, which can be very helpful for multi-component applications, but there’s no option for temporary overrides and no UI for self-service management. One really nice feature is the ability to recognize when instances are idle, and automatically stop them after a set time period, which the other tools don’t provide.
Google Cloud Scheduler
Google also has packaged some of their Cloud components together into a Google Cloud Scheduler. This includes usage of Google Cloud Functions for running the scripts, Google Cloud Pub/Sub messages for driving the actions, and Google Cloud Scheduler Jobs to actually kick-off the start and stop for the VMs. Unlike AWS and Azure, this requires individual setup (instead of being packaged into a deployment), but the documentation takes you step-by-step through the process.
Google Cloud Scheduler relies on instance names instead of tags by default, though the functions are all made available for you to modify as you need. The settings are all built into those functions, which makes updating or modifying much more complicated than the other services. There’s also no real UI available, and the out-of-the-box experience is fairly limited in scope.
Cloud Native or Third Party?
Each of the instance scheduler tools provided by the cloud providers has a few limitations. One possible dealbreaker is that none of these tools are multi-cloud capable, so if your organization uses multiple public clouds then you may need to go for a third-party tool. They also don’t provide a self-service UI, built-in RBAC capabilities, Single Sign-On, or reporting capabilities. When it comes to cost, all of these tools are “free”, but you end up paying for the deployed infrastructure and services that are used, so the cost can be very hard to pin down.
We built ParkMyCloud to solve the instance scheduler problem (now with rightsizing too). Here’s how the functionality stacks up against the cloud-native options:
|AWS Instance Scheduler||Microsoft Azure Automation||Google Cloud Scheduler||ParkMyCloud|
|Virtual Machine scheduling||✔||✔||✔||✔|
|Scale Set scheduling||✘||✘||✘||✔|
Overall, the cloud-native instance scheduler tools can help you get started on your cost-saving journey, but may not fulfill your longer-term requirements due to their limitations.
Try ParkMyCloud with a free trial — we think you’ll find that it meets your needs in the long run.
If you ask a group of CIOs or analysts for a list of priorities for companies adopting cloud infrastructure, there’s no doubt that cloud visibility would be named near the top. Insight is important for everything from security to cost management. But cloud visibility on its own is not enough, particularly as widespread cloud usage continues to mature.
Don’t Get Us Wrong: Cloud Visibility is Important
Cloud visibility is a broad term, encompassing resource consumption and spend, security and regulatory compliance, and monitoring. In fact, cloud “monitoring” is a term that typically encompasses performance monitoring and security. This is certainly important: some projections show the cloud monitoring marketing reaching $3.9 billion in 2026, so there is obviously demand for these tools.
Another aspect is cost. Cloud cost visibility is a hot topic right now, and with good reason. Public cloud providers’ bills are confusing, and you need to be able to understand what you’re being charged for. It’s also important to see where your spend is going, ideally with slice-and-dice reporting so you can analyze by user, team, project, and resource type, and ensure internal chargeback based on consumption.
However, in terms of resource and cost management, cloud visibility alone is not enough to make change.
Cloud Visibility is Useless without Action
There’s a reason that this time of year, self-help gurus encourage resolution makers to make their goals actionable. Aspirations are great. Knowledge is great. But without practical application, aspirations and knowledge won’t lead to change.
When it comes to cloud cost management, there are several capabilities that you need in order to capitalize on the insights gained through visibility. Three important ones to keep in mind are:
- The ability to allocate costs to teams.
- The ability to automate remediation.
- The ability to optimize spending.
The popular cloud cost management tools tend to be strong on some combination of analytics, reporting dashboards, chargeback/showback, budget allocation, governance, and recommendations (which can get quite granular in areas such as reserved instances and orphaned resources). However, they require external tools or people to act upon these recommendations and lack automation.
Actionable is Good. Optimization is Better.
As you research cloud visibility and monitoring solutions to address knowledge gaps in your organization, be sure to include a requirement to address cloud waste. Cloud optimization should require little to no manual work on your part by integrating into your cloud operations, allowing you to automatically reap the benefits and savings.
Here’s a first step on your optimization journey: pick a cloud account, plug it into ParkMyCloud, and get immediate recommendations for cost reduction. Click to apply the recommendations – or set a policy to do it automatically – and see the savings start to add up.
It’s that time of year: new gym memberships, fresh diet goals, and plans to reform… cloud spending?
If you’re at all involved in your organization’s public cloud infrastructure, that last one should definitely be on your to-do list. Chances are, if you’re spending money on cloud, some of that money is being wasted. For some, a lot of that money is being wasted. Here are the numbers.
Predicted Cloud Spending 2019
The latest predictions from Gartner estimate that overall IT spending will reach $3.8 trillion this year, a growth of 3.2% over IT spending in 2018.
Of this spend, public cloud spending is expected to reach $206.2 billion — of which, the fastest growing segment is Infrastructure as a Service (IaaS) which Gartner says will grow 27.6 percent in 2019 to reach $39.5 billion, up from $31 billion in 2018.
Now we can subdivide the public cloud spend number further to look just at compute resources — typically ⅔ of cloud spend is on compute, or about $26.3 billion. This segment of spend is especially vulnerable to waste, particularly from idle resources and oversized resources.
Wasted Cloud Spending from Idle Resources
Let’s first take a look at idle resources — resources that are being paid for by the hour or minute, but are not actually being used. Typically, this kind of waste occurs in non-production environments – that is, those used for development, testing, staging, and QA. About 44% of compute spend is on non-production resources (that’s our number).
Most non-production resources are only used during a 40-hour work week, and do not need to run 24/7. That means that for the other 128 hours of the week (76%), the resources sit idle, but are still paid for.
So what we get is:
$26.3 billion in compute spend * 0.44 non-production * 0.76 of week idle = $8.8 billion wasted on idle cloud resources
Wasted Cloud Spending from Oversized Resources
The other source of wasted cloud spend is oversized infrastructure — that is, paying for resources at a larger capacity than needed.
RightScale found that 40% of instances were sized at least one size larger than needed for their workloads. Just by reducing an instance by one size, the cost is reduced by 50%. Downsizing by two sizes saves 75%.
The data we see in our users’ infrastructure in the ParkMyCloud confirms this, and in fact we find that it may even be a conservative estimate. Infrastructure managed in our platform has an average CPU utilization of 4.9%. Of course, this doesn’t take memory into account, and could be skewed by the fact that resources managed in ParkMyCloud are more commonly for non-production resources. However, it still paints a picture of gross underutilization, ripe for rightsizing and optimization.
If we take a conservative estimate of 40% of resources oversized by just one size, we find the following:
$26.3 billion in compute spend * 0.4 oversized * 0.5 overspend per oversized resource = $5.3 billion wasted on oversized resources
Total Cloud Spending to be Wasted in 2019
Between idle resources and overprovisioning, wasted cloud spend will exceed $14.1 billion in 2019.
In fact, this estimation of wasted cloud spend is probably low. This calculation doesn’t even account for waste accumulated through orphaned resources, suboptimal pricing options, misuse of reserved instances, and more.
End the Waste
It’s time to fight this cloud waste. That’s what we’re all about at ParkMyCloud — eliminating wasted cloud spending through scheduling, rightsizing, and optimization.
Ready to join us and become a cloud waste killer? Let’s do it.