When you move from standard web hosting to cloud, the cost is the major concern to be considered, especially for the cloud beginners. If you’d have ever seen cloud provider’s pricing table, you’d see the attractive cost of pennies per hour or per IOP or whatnot. The actual cost is revealed only when you receive your monthly bill. In a nutshell, you’ll have no idea what it’s going to cost until you start using it.
Coming from the flat-priced hosting, you’ll find the monthly cloud bills are like some decipher codes. Even the topmost cloud hosting providers follow confusing charging model which is painful to understand.
In addition, these cloud web hosting providers let you deploy complex applications with super ease and within minutes. But for that very reason, it’s a bit too easy to lose track of exactly what you have running at any one time. To avoid this, you must have a proper understanding of how the billing works and where these surprises can come from. In this post, we will outline some suggestions to avoid unexpected charges in your cloud bill.
Contact Sales Support Before Purchase
Approach your favourite cloud vendor and ask for a free trial or some free credits for the test drive. Don’t put your resource thirsty projects upfront, rather run some small-scale projects for 1–3 months to get a sense of the actual bills you can expect. Choose between simple and stable projects where you have more control and stable resource usage.
Track Cloud Usage & Set Alerts
Keep a watchful eye on your daily usage. Most of the cloud hosting providers offer usage counter (like Billing and Cost Management console in Amazon) where you can check your daily usage. Also, consider employing third-party monitoring tools wherever appropriate to find resource leakages.
Keep track on cloud hosting costs in your spreadsheets to get an understanding of how this all works. Set up alerts in case anything goes wrong. For instance, if your average daily budget is $100, set an alert for 10% overage. Thus, you can avoid excessive bills immediately after a week later.
Amazon CloudWatch is a monitoring service for AWS cloud hosting resources and the applications you run on AWS. This service can be used to collect and track metrics, monitor log files, and set alarms. It allows you to receive notifications or automatically initiate actions like shutting down unused or underused EC2 instances when a metric crosses your specified threshold.
Pay Upfront to Get Discounts
When your monthly usage is estimated, deploy resources permanently to take advantage of committed discounts available. This can save up to 50–90% depending on the resource type and vendor.
Elastic Block Store (EBS) Volumes and Snapshots
Amazon EC2 instances are configured so that their associated Amazon (Elastic Block Store) EBS volumes are deleted when they are terminated, but it is possible to set up an instance that preserves its volume and the data. Check the Volumes pane in the Amazon EC2 console for volumes that you don’t need anymore and remove them when not needed.
If you have stored snapshots of your Amazon EBS volumes and no longer need them, you should delete them as well. If you close your account or unsubscribe from a cloud hosting service, make sure that you take the appropriate steps for every region in which you’ve allocated AWS resources.
Elastic Beanstalk & Elastic Load Balancing (ELB)
Elastic Beanstalk is designed to ensure that all the resources that you need are running, which means that it automatically relaunches any service that you stop. To avoid this, you must terminate your Elastic Beanstalk environment before you terminate resources that Elastic Beanstalk has created.
Similarly, ELB load balancers are designed to keep a minimum number of Amazon Elastic Compute Cloud (Amazon EC2) instances running. You must terminate your load balancer before you delete the Amazon EC2 instances that are registered with it.
Avoid Oversized Instances
Before you spin up the cloud instances know your requirements, determine what size of the instance should you run and how many will you need? Note that instance types that are specifically optimized for computing, memory, or storage are obviously going to cost more than low-tier or generic versions. Ensure that your environment is not over-provisioned as oversized instances will cost you money, using too many instances will cost you money. Even leaving unused instances running, will also cost you money.
Choose the Correct Instance Model
With AWS cloud hosting, you can purchase instance resources in 3 different ways. On-Demand Instances allow you to pay a fixed rate by the hour without commitment.
Reserved Instances provide a capacity reservation, giving you a handsome discount over hourly on-demand prices when you commit to longer-terms.
Spot Instances allows you to bid your own price for instance capacity. Assuming that your applications have flexible start and end times and can survive service interruptions when instances at your bid price aren’t unavailable – this can provide significant savings.
Mostly AWS hosting beginners choose “On-Demand Instances” because it is easy to deploy, but in long run, this option can generate unexpected AWS pricing costs. If you’re planning to deploy a website for more than 12 months, go with a reserved instance.
Avoid Taking Too Many Snapshots
Backing up data is always a smart thing. You can back up the data stored on Amazon EBS volumes to Amazon S3 by taking snapshots. However, these EBS snapshots should be saved carefully, or it may increase your storage costs. Ensure that you have defined an appropriate snapshot retention strategy.
Release Unallocated Elastic IPs
AWS provides you with one Elastic IP address (EIP) associated with a running instance free of cost. Each additional EIP that you associate with that instance will be charged at per hour on a pro rata basis. AWS also imposes a small hourly charge when these IP addresses are not associated with any running instance or when they are associated with a stopped instance or an unattached network interface.
So, if you just stop your instance and assume that the IP associated with it will be automatically released, you may end paying hefty AWS cloud hosting cost. Therefore, ensure that you release unused EIPs when an associated instance is no longer in use.
As we mentioned, cloud is a fabulous platform for deploying large applications at prices unimaginable until recently. Careful consideration of the above points will hopefully help you keep your ongoing AWS, Azure and other similar cloud hosting costs down.