The high cost of cloud data storage can crush an enterprise's business case for public cloud. Some enterprises
report they can buy a hard drive for the same cost as monthly cloud storage and usage fees. Meanwhile Microsoft and Google give away gigabytes in their SkyDrive and Google Drive services for free. Cloud consumers may find it difficult to make sense of price discrepancies. To get the whole picture, look at exactly what you get when you buy cloud storage.
Disk capacity alone is relatively inexpensive, particularly on a large scale. You can purchase an external hard drive with a terabyte of space for a little more than $100, for example. If you imagine a large server with 100 TB of capacity, you could store 10 GB for 10,000 end users on one server -- providing, of course, that their I/O activity is limited.
On the other hand, a single user with 10 GB of storage and a high transaction rate could easily consume an entire server or load up the cloud provider's data center switch and storage area network (SAN). And cloud data storage costs will be higher when data is accessed regularly, particularly when accessed from outside the cloud.
Data usage charges reflect the cost burden placed on the cloud admin for that usage. Enterprises report that access to cloud data forces them to expand connection speeds to avoid congestion. This, in turn, increases network costs.
Cloud customers need help managing data costs, and four strategies have emerged to help solve this cost dilemma.
Cloud data storage costs will be higher when data is accessed regularly, particularly when accessed from outside the cloud.
- Explore hierarchies of data storage and use. When designing an application and its relationship to data, explore the idea of creating a storage hierarchy. While in-memory data caching may seem foolish in the cloud, it's possible that reducing the rate of data access by keeping most-accessed elements in memory can reduce costs. Research how uniting different classes of cloud storage into a hierarchy -- from real-time to archived -- can affect data pricing.
- Consider on-premises Storage as a Service to support cloud applications. While block or file system I/O between on-premises resources and the cloud isn't likely to be cost effective or have smooth performance, it may be practical to store data on-premises and expose it in the form of an RDBMS query-level interface (DBaaS) to cloud-hosted applications. This can eliminate costs for cloud data and help cloud-hosted applications access on-premise data more quickly, allowing enterprises to migrate more applications to the cloud. This strategy is most effective when a large database is queried to produce a relatively small result set.
- Use summary or abstracted databases for cloud data storage. Cloud analytics, in particular, can often operate on summary data rather than business/transactional detail files. Looking at product sales by store rather than looking at register details can reduce the number of records by several orders of magnitude. And that can reduce data storage costs.
Business-critical applications are the most complicated to deploy in the cloud, because they often use large databases to record transactions. In retail-industry applications, for example, these databases involve constantly changing inventory. While many enterprises deploy Web front ends of business-critical applications in the cloud, they look to cloud backup for the application component. In this case, the key to controlling data costs may be to create a multi-stage application.
Consider Web retail systems, for example. These systems usually generate the majority of transactions for a small number of items. If the front end is set up with a "deposit" of available items that represent a quantity fewer than the quantity actually available, the company can safely accept orders without checking inventory. This keeps inventory items off cloud storage. And since an enterprise will incur a charge each time it accesses a cloud storage database, this system will save money.
Applications can then send updates to the on-premises database on a regular basis to receive an additional "allotment" from which they can withdraw when orders are placed. This will allow most orders to be processed -- even if the data center is temporarily down. A similar process of caching data can be used for other online activities that involve inventory and similarly save an enterprise money.
- Keep backup copies. Consider keeping a copy of some data on an inexpensive backup site and then "restore" it to more expensive cloud storage when needed. The data will not be available during the restoration, but an outage will have minimal affect. For databases with lower levels of activity, this strategy may be ideal to manage costs while retaining an off-site option for processing in the event of a data center failure.
As cloud computing changes all aspects of IT planning, so too will database software and architectures change. Enterprises must focus on how these changes impact not only their virtual resources and private clouds, but also their public cloud choices and pricing. Storing data in the cloud will never be as inexpensive as storing it on a portable hard drive, but taking advantage of technology advances will likely give buyers the best cost and the highest return on investment for the cloud.