A cloud database is one that typically runs on a Cloud Computing platform, such as Amazon EC2, GoGrid and Rackspace. There are two common deployment models:
Virtual Machine Image - cloud platforms allow users to purchase virtual machine instances for a limited time. Users can either upload their own machine image with a database installed on it, or use ready-made machine images that already include an optimized installation of a database.
For example, Oracle provides a ready-made machine image with an installation of Oracle Database 11g Enterprise Edition on Amazon EC2.
Database as a Service - some cloud platforms offer options for using a database as a service, without physically launching a virtual machine instance for the database.
In this configuration, application owners do not have to install and maintain the database on their own. Instead, the database service provider takes responsibility for installing and maintaining the database, and application owners pay according to their usage.
For example, Amazon Web Services provides two database services as part of its cloud offering, SimpleDB which is a NoSQL key-value store, and Amazon Relational Database Service which is an SQL-based database service with a MySQL interface.
Common Characteristics of Cloud Database Services
- Most database services offer web-based consoles, which the end user can use to provision and configure database instances.
- Database services consist of a database manager component, which controls the underlying database instances using a service API. The service API is exposed to the end user, and permits users to perform maintenance and scaling operations on their database instances.
- Database services make the underlying software stack transparent to the user – the stack typically includes the operating system, the database and third-party software used by the database. The service provider is responsible for installing, patching and updating the underlying software stack.
- Database services take care of scalability and high availability of the database. Scalability features differ between vendors – some offer auto-scaling, others enable the user to scale up using an API, but do not scale automatically.
The cloud databases are offered in two models : relational (SQL) and non-relational (NoSQL):
- SQL Databases, such as Oracle Database, Microsoft SQL Server and MySQL, are one type of database which can be run on the cloud (either as a Virtual Machine Image or as a service, depending on the vendor). SQL databases are difficult to scale, meaning they are not inherently suited to a cloud environment.
- NoSQL Databases, such as Apache Cassandra, CouchDB and MongoDB, are another type of database which can run on the cloud. NoSQL databases are built to service heavy read/write loads and are able scale up and down easily, and therefore they are more inherently suited to running on the cloud.
- However, most contemporary applications are built around an SQL data model, so working with NoSQL databases often requires a complete rewrite of application code.