3. Balance Service Levels Needed with Default Cloud Instances.
Every applications has its own service level profile-that is, its general purpose and function. Your customer-facing e-commerce site has a different service level than, say, your internal employee portal. Evaluating the costs of public cloud instances against the service levels needed for various applications may help you optimize their public cloud costs.
How-to: 4 Tips to Prepare for the Next Amazon Outage
Think back to the June 29 Netflix outage. Given the nature of the video streaming service, pressing into action another Amazon's data centers elsewhere in the country may not have been feasible, given the storage and bandwidth-intensive nature of Netflix. However, less intensive-and more mission-critical-services can be optimized to be served out of alternative data centers if necessary, making them immune to such outages.
4. Fine-tune Auto Scaling Rules.
Applications that automatically scale the number of server instances, both up and down, offer a great opportunity for optimization. For example, you may have one auto scaling rule that spawns a new instance once CPU utilization reaches 80% on all current instances and another that kicks in once average CPU utilization reaches 40%.
How do you know that 80% and 40% are the right numbers? Why not 85% and 35%? With the latter rule, you would spawn fewer instances and lower your costs.
In addition, applications have varying compute, storage and bandwidth needs. Your rules, then, may need to be based on a complex combination of these three factors and not just on CPU utilization. You may want to experiment with combinations that look logical for your public cloud applications and the service levels they need. You can then optimize these percentages over a period of time.
5. Database Row Optimization.
Applications such as Netflix have a localized nature, meaning that, most of the time, customers access only the data that pertains only to them. Netflix uses AWS' Regions and Zones to host servers that serve customers who live near those data centers.
This is possible thanks to database sharding technology, which lets you partition the rows in your database and store the different partitions in databases that reside in various datacenters. This also applies to applications such as credit card processing, since sharding can be applied to localized patterns of use such as looking up one card owner's transactions or transactions with one merchant.