Given that spring is very much in the air – at least it is here in Northern Virginia – our attention has turned to tidying up the yard and getting things in good shape for summer. While things are not so seasonally-focused in the world of cloud, the metaphor of taking time out to clean things up applies to unused cloud resources as well. We have even seen some call this ‘cloud pruning’ (not to be confused with the Japanese gardening method).
Cloud pruning is important for improving both cost and performance of your infrastructure. So what are some of the ways you can go about cleaning up, optimizing, and ensuring that our cloud environments are in great shape?
Delete Old Snapshots
Let’s start with focusing on items that we no longer need. One of the most common types of unused cloud resources is old Snapshots. These are your old EBS volumes on AWS, your storage disks (blobs) on Azure, and persistent disks on GCP. If you have had some form of backup strategy then it’s likely that you will understand the need to manage the number of snapshots you keep for a particular volume, and the need to delete older, unneeded snapshots. Cleaning these up immediately helps save on your storage costs and there are a number of best practices documenting how to streamline this process as well as a number of free and paid-for tools to help support this process.
Delete Old Machine Images
A Machine Image provides the information required to launch an instance, which is a virtual server in the cloud. In AWS these are called AMIs, in Azure they’re called Managed Images, and in GCP Custom Images. When these images are no longer needed, it is possible to deregister them. However, depending on your configuration you are likely to continue to incur costs, as typically the snapshot that was created when the image was first created will continue to incur storage costs. Therefore, if you are finished with an AMI, be sure to ensure that you also delete its accompanying snapshot. Managing your old AMIs does require work, but there are a number of methods to streamline these processes made available both by the cloud providers as well as third-party vendors to manage this type of unused cloud resources.
With the widespread adoption of containers in the last few years and much of the focus on their specific benefits, few have paid attention to ensuring these containers are optimized for performance and cost. One of the most effective ways to maximize the benefits of containers is to host multiple containerized application workloads within a single larger instance (typically large or x-large VM) rather than on a number of smaller, separate VMs. In particular, this is something you could utilize in your dev and test environments rather than in production, where you may just have one machine available to deploy to. As containerization continues to evolve, services such as AWS’s Fargate are enabling much more control of the resources required to run your containers beyond what is available today using traditional VMs. In particular, the ability to specify the exact CPU and memory your code requires (and thus the amount you pay) scales exactly with how many containers you are running.
So alongside pruning your trees or sweeping your deck and taking care of your outside spaces this spring, remember to take a look around your cloud environment and look for opportunities to remove unused cloud resources to optimize not only for cost, but also performance.
Google Cloud has always had a knack for non-standard virtual machines, and their option of creating Google preemptible VMs is no different. Traditional virtual machines are long-running servers with standard operating systems that are only shut down when you say they can be shut down. On the other hand, preemptible VMs last no longer than 24 hours and can be stopped on a moment’s notice (and may not be available at all). So why use them?
Use Cases for Google Preemptible VMs
As with most trade-offs, the biggest reason is cost. Preemptible VMs can save you up to 80% compared to a normal on-demand virtual machine. (By the way – AWS users will want to use Spot Instances for the same reason, and Azure users can check out Low Priority VMs). This is a huge savings if the workload you’re trying to run consists of short-lived processes or things that are not urgent and can be done any time. This can include things like financial modeling, rendering and encoding, and even some parts of your CI/CD pipeline or code testing framework.
How to Create a Google Preemptible VM
To create a preemptible VM, you can use the Google Cloud Platform console, the ‘gcloud’ command line tool, or the Google Cloud API. The process is the same as creating a standard VM: you select your instance size, networking options, disk setup, and SSH keys, with the one minor change that you enable the ‘preemptible’ flag during setup. The other change you’ll want to make is to create a shutdown script to decide what happens to your processes and data if the instance is stopped without your knowledge. This script can even perform different actions if the instance was preempted as opposed to shut down from something you did.
One nice benefit of Google preemptible VMs is the ability to attach local SSD drives and GPUs to the instances. This means you can get added extensibility and performance for the workload that you are running, while still saving money. You can also have preemptible instances in a managed instance group for high scalability when the instances are available. This can help you process more of your jobs at once when the preemptible virtual machines are able to run.
How to Use Google Preemptible VMs to Optimize Costs
Our customers who have the most cost-effective use of Google resources often mix Google preemptible VMs with other instance types based on the workloads. For instance, production systems that need to be up 24/7 can buy committed-use discounts for up to 57% savings on those servers. Non-production systems, like dev, test, QA, and staging, can use on-demand resources with schedules managed by ParkMyCloud to save 65%. Then, any batch workloads or non-urgent jobs can use Google preemptible VMs to run whenever available for up to 80% savings. Questions about optimizing cloud costs? We’re happy to help – email us or use the chat client on this page (staffed by real people, including me!).
Today, we share the latest update in ParkMyCloud, which highlights new types of GCP resources you can park, and updates for new and existing users alike.
Park GCP Groups
Now in ParkMyCloud, you can manage and optimize costs for your GCP Managed Instance Groups, both with and without Autoscaling. You can set parking schedules on these groups, but rather than simply turning them “on” and “off”, you can set “high” and “low” stages for your groups, for which you set a maximum and minimum number of resources, respectively. Some additional details:
GCP Managed Groups with Autoscaling can have a minimum size of 1 instance in the Low/Off state, and thus they can never be fully shut off to zero instances.
GCP Managed Groups without Autoscaling can have a minimum size of 0 instances in the Low/Off state, and can be fully shut off.
The Console will show the members of GCP Unmanaged Groups as “regular” resources, allowing them to be scheduled/controlled individually. You wish to assign them to ParkMyCloud Logical Groups in order to start and stop them as a set.
In order to allow ParkMyCloud to support management of GCP Instance Groups, please update your ParkMyCloud Access Role to include the latest set of permissions defined here in the User Guide.
What about other cloud service providers? ParkMyCloud already supports parking for AWS Auto Scaling groups. Management of Azure’s equivalent, Azure scale sets, is coming later this month.
Schedule “Snooze” is now “Override”
ParkMyCloud has long allowed you to “snooze” parking schedules — as in, snooze the on/off actions of the schedule, not the resource. But it was confusing — when people heard “snooze”, they incorrectly assumed it meant, “put the resource to sleep”.
So we’ve renamed it “override”. When you override a schedule on a resource, you can set it to your preferred state of running or parked, either for a set duration (e.g., override the schedule for 3 hours) or until a set time (e.g., override the schedule until 8:00 a.m. on May 16). After that time, normal schedule actions will resume.
For Existing Users…
This release includes a number of other updates that will interest existing users of ParkmyCloud:
Recommendations Export: The recommendations screen can now be exported to CSV, via a new Export button, for easy sharing and analysis.
Online Help: Each page on the console now has a “?” link to context-sensitive help from the PMC User Guide.
Teams: Superadmins now appear as greyed-out users on all team lists, showing their visibility into all teams.
Notifications: User-level notifications are now more obvious with a link from the org/team-level notifications screen.
The Schedule/Start/Stop/Team/Group buttons are now always visible, and only enabled when appropriate instances are checked, depending on the function of the button.
The resources screen is now more mobile-device friendly. There used to be an issue with how the screen scrolled, which is now fixed.
Performance improvements for customers with large numbers of schedules and recommendations.
For New Users…
Don’t tell the existing users above, but we’ve improved the ParkMyCloud free trial for new users. When you start a 14-day free trial, you will now be given Enterprise tier access to the product – that means unlimited instances, teams, users, and cloud accounts across providers in your trial ParkMyCloud account, access to the user import/export feature, database parking, SmartParking, and more. Check it out with a free trial.
Whether you’re just getting started on public cloud, or you’ve gotten a bill that blew your budget out of the water, it’s a good idea to research ways to get discounts on cloud resources. There’s no reason to pay list price when so many cost-savings measures are available (and your peers are probably taking advantage of them!) Here are our top five ways to get discounts on cloud.
1. Buy in Advance
By purchasing your compute power in advance, you can get a discounted rate — the notable examples being AWS Reserved Instances, Azure Reserved Instances, and Google Committed Use Discounts.
So will these save you money? Actually, that’s a great question. There are several factors that weigh into the answer:
How much you pay upfront (for example AWS offers all-upfront, partial-upfront, or no-upfront)
Contract term: 1-year or 3-year term – the longer term will save more, but there’s risk involved in committing for that long
If the cloud provider cuts their prices during your contract term (and they probably will), you’ll save less
This blog post about AWS Reserved Instances digs into these issues further. Bottom line: paying in advance can save you money, but proceed with caution.
2. Use Your Resources More
The primary example of “spending more to save more” in the cloud computing world is Google Sustained Use Discounts. This is a cool option for automatic savings – as long as you use an instance for at least 25% of the month, GCP will charge you less than list price.
But just like the advanced purchasing options above, there are several factors to account for before assuming this will really save you “up to 60%” of the cost. It may actually be better to just turn off your resources when you’re not using them – more in this post about Google Sustained Use Discounts.
3. If You’re Big: Enterprise Agreements and Volume Discounts
Anyone who’s shopped at Costco isn’t surprised that buying in bulk can get you a discount. Last week, Twitter announced that it will be using Google Cloud Platform for cold data storage and flexible compute Hadoop clusters — at an estimated list price of $10,000,000/month. Of course, it’s unthinkable that they would actually pay that much – as such a high-profile customer, Twitter is likely to have massive discounts on GCP’s list prices. We often hear from our Azure customers that they chose Azure due to pre-existing Microsoft Enterprise Agreements that give them substantial discounts.
If you have or foresee a large volume of infrastructure costs, make sure to look into:
Each of the major cloud providers offers free credit programs to startups to lure them and get locked in on their services – but that’s not a bad thing. We’ve talked to startups focused on anything from education to location services who have gotten their money’s worth out of these credits while they focus on growth.
So far, history tells us that if you wait a few months, your public cloud provider will drop their prices, giving you a built-in discount.
If you stick with the existing resource types, rather than flocking to the newer, shinier models, you should be all set. The same AWS m1.large instance that cost $0.40/hour in 2008 now goes for $0.175. We’ll just say that’s not exactly on pace with inflation.
It’s Okay if You Don’t Get Discounts on Cloud
What if you’re not a startup, you’re not an enterprise, and you just need some regular compute and database infrastructure now? Should you worry if you don’t get discounts on cloud list prices? No sweat. Even by paying list price, it’s still possible to optimize your spend. Make sure you’re combing through your bill every so often to find orphaned or unused resources that need to be deleted.
Additionally, right-size your resources and turn them off when you’re not using them to pay only for what you actually need – you’ll save money, even without a discount.
After reviewing Q1 earnings for the ‘big three’ cloud providers last week, it’s obvious AWS is still number one overall. While the other CSPs are growing faster than expected, what about the Alibaba cloud market share? Alibaba made big waves in Asia, dominating in China with accelerating cloud revenue. Here’s the deal with Alibaba Cloud, and why it should not be overlooked in 2018.
Alibaba Cloud at a Glance
Following, Amazon, Google, and Microsoft, Alibaba made headlines of its own when they reported cloud revenue for the March quarter:
Alibaba´s IaaS segment is dominating in China, with almost 47.6 percent of the market share, up from 43 percent only a year ago, crediting growth from recent customer additions and value added products.
Alibaba is growing its market presence, not only with a firm hold over Asia, but also securing a spot as one of the top five cloud providers worldwide. Synergy Research Group reported Q1 2018 market share numbers: Amazon 33%, Microsoft 13%, IBM 8%, Google 6% and Alibaba 4%.
In comparison to other cloud providers, Alibaba might be in last place among the top five, but they also show consistently steady, upward growth, and land only a hair shy of catching up to Google at 6 percent. And while AWS has a third of the total market share, Alibaba holding onto nearly half of China’s market share is nothing to scoff at.
Not to mention the company added 316 new products and features to their cloud platform in the fourth quarter alone, added a data center in Indonesia, and acquired or partnered with major enterprise customers including China National Petroleum Corporation, Malaysia Digital Economy Corporation, and Cathay Pacific, showing no signs of slowing down anytime soon.
Alibaba Cloud Market Share – 2018 and Beyond:
The opening of a data center in Indonesia expanded Alibaba Cloud’s reach to 18 countries and regions worldwide, setting their sights high and with the expectation of continued growth. If that’s not a clear indication of future success, the outlook of company executives sheds more light.
Daniel Zhang, CEO of Alibaba Group, says “Alibaba Group had an excellent quarter and fiscal year, driven by robust growth in our core commerce business and investments we have made over the past several years in longer-term growth initiatives. […] During the past year we also doubled down on technology development, cloud computing, logistics, digital entertainment and local services so that we are in a position to capture consumption growth in China and other emerging markets.”
Maggie Wu, CFO of Alibaba Group, echoes this sentiment, saying “Looking ahead to fiscal 2019, we expect overall revenue growth above 60%, reflecting our confidence in our core business as well as positive momentum in new businesses. We expect our new growth initiatives will drive long-term, sustainable value for our customers and partners and increase our total addressable market.”
So as the Alibaba cloud market share grows, could they be the next big cloud provider in 2018? Will they jump into the ‘big three’ or will it become a ‘big five,’ including IBM’s market share? What we know for sure is that we can expect more growth, and that’s a good thing for all of us because growth drives competition, innovation, and better offerings for all. So while we continue looking at AWS, Azure, Google, and IBM in the next year, we’ll also be keeping an eye on Alibaba Cloud and other up-and-coming providers to see what they bring to the table.