No one likes an unexpected bill, especially from a cloud provider. And while moving to cloud saves many organizations...
money, it's important to monitor resource consumption. To do this, there are three types of tools: resource alerts, automated resource management controls and third-party cloud management tools.
Most major cloud providers offer their own cloud billing and resource management services. Amazon Web Services (AWS) offers its Billing and Cost Management console, which includes its Cost Explorer visualization tool and CloudWatch monitoring service. Cost Explorer visualizes spend data from the previous thirteen months. Users can filter graphs by date, AWS service, availability zones, API operations and more. For a quick look at spending, Cost Explorer also provides three preconfigured view templates.
Microsoft Azure offers a pricing calculator that can estimate cloud bills. However, it lacks the same breadth of features as Cost Explorer. Additionally, Google provides a billing API, from which users can build their own billing analysis tool.
Keeping an eye on performance
AWS CloudWatch monitors performance and cloud resource costs. CloudWatch allows users to create billing alarms on a variety of services, including EC2, Relational Database Service (RDS) and data transfers.
Microsoft Azure's metrics are for performance monitoring, but are often good proxies for cost monitoring. For example, users can set a storage cost threshold in Azure SQL Database and receive alerts as volumes approach that threshold.
Consider using alerts for each of the main services you use, especially compute and storage instances. These two components make up the majority of cloud expenditures. It's also important to monitor other services, such as message queues. Be aware of how many alarms can run at once. Microsoft Azure, for instance, limits subscribers to ten alerts per subscription.
While monitoring identifies new charges, automated instance management and storage policies can avoid charges completely.
In some cases, users can programmatically set a termination time for a server. For example, users can set a CloudWatch alert that terminates an instance when CPU utilization drops below a specified threshold for a period of time. Alternatively, users can schedule a job to execute an API command at a specific time. This approach is helpful for users who do short-term development or test servers, and sometimes forget to shut down. Microsoft Azure users can program Azure PowerShell scripts to execute shutdown commands.
Manage storage costs with cost controls
To limit storage costs, use storage policies. AWS storage polices specify an expiration time for an object in S3, or migrate it to Glacier for archival storage. Google Cloud Storage has similar features that specify an object's time-to-live. However, use versioning judiciously. Keeping too many versions, or applying a liberal version limit to a storage bucket with many objects, can unexpectedly increase costs.
If you use multiple clouds or need additional cost controls, like setting budgets on user accounts, consider a third-party cost management service, such as Rightscale's Cloud Analytics. Rightscale's service provides both visualization and management tools. The visualization service identifies unnecessary cloud resources and displays budgets by project, department or individual user. It also provides controls to set spending patterns, such as buying reserved instances.
Cloudyn's AWS service also provides visualization and management capabilities. Users can simulate cost scenarios and compare EC2 instance prices to Google Compute Engine instances. Users can also set cost and usage alerts with existing AWS tags.
Cloudability's cost management service increases the visibility of cost and spending data across a business. Additionally, departments can monitor their own spending with report sharing and scheduling.
Staying on top of cloud billing is no small task, but alerts, automated resource management controls and third-party cloud management tools can alleviate some of the burden.
About the author:
Dan Sullivan holds a master of science degree and is an author, systems architect and consultant with more than 20 years of IT experience. He has had engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.
Managing cloud billing with multiple providers
Choosing a third-party costs analysis tool
Breaking down an AWS cloud bill