What is a Cloud Database?

What is a Cloud Database?
1h 9m

*** PLEASE NOTE *** This course has been replaced with two new courses: Database Fundamentals for AWS - Part 1 of 2 and Database Fundamentals - Part 2 of 2.


This course will provide you with an introduction to the cloud database services offered by AWS. In this course, we will first explore the fundamentals of cloud databases, outline the cloud databases provided by AWS before exploring how to get started selecting and using the AWS Database Services. 

Intended Audience

This course suits anyone interested in learning more about the database services offered by AWS. 


The course is an introductory level course so there are no specific database skills or experiences required as a pre-requisite. Having a basic understanding of cloud computing will help you gain the most from this course. I recommend completing “What is cloud computing?” first if you are new to cloud computing.

Learning Objectives

On completing this course you will have an understanding of the different types of database services available to you within the AWS cloud platform. You will be able to recognize and explain the various database services offered by AWS, and be able to identify and select which database service might suit a specific use case or requirement.


First, we learn to recognize and explain the basics of a cloud database service. 
We then learn to recognize and explain the differences between non-relational and relational databases before taking a high-level pass over the family of AWS database services available.
We then dive in the Non Relational Databases 
- Amazon DynamoDB
- Amazon Elasticache 
- and Amazon Neptune exploring use cases for when we might want to use a non-relational database service.

Next, we dive into amazon RDS - the AWS Relational Database Service, exploring the database services provided by RDS. We then examine the services and their various use cases in the context of a scenario. 


The Basics - What is a Cloud Database?

Overview of the AWS Database Services

AWS Non Relational Databases
- Amazon DynamoDB
- Amazon Elasticache
- Amazon Neptune

AWS Relational Database Service
- The RDS Service
- MySQL for RDS

- Microsoft SQL Server for RDS
- Oracle for RDS
- MariaDB for RDS
- PostGresSQL for RDS
- Amazon Aurora for RDS



If you have thoughts or suggestions for this course, please contact Cloud Academy at support@cloudacademy.com.


22-01-2020: Added note about Amazon Elasticache being used as a cache in front of Amazon RDS services


For additional training on the topics covered in this course, please take a look at the following Cloud Academy content:


Working with Amazon DynamoDB

Introduction to the Amazon ElastiCache Service

Amazon Aurora High Availability


Create Your First Amazon RDS Database

Getting Started with Amazon Aurora Database Engine

Introduction to DynamoDB

Configure Amazon DynamoDB triggers with AWS Lambda


- [Instructor] So what is a cloud database? If you are new to cloud services or new to databases in general, the notion of a cloud database can conjure up all sorts of images. Some of the questions I encountered while working at AWS could be quite diverse, things like, "How does a cloud database differ "from the database we currently have in our server room," for example.


- [Female] Is a cloud database spread all over the internet?


- [Instructor] How do you access and use a cloud service?


- [Female] Is data in a cloud database as secure as one I might have hosted in our office or data center?


- [Instructor] I would also feel quite specific questions like, "Is it possible to meet "and maintain compliance requirements "if we're considering using a cloud-based database service?" Now these are all valid questions so let's explore the concepts behind each so we're aware of the fundamental concepts of cloud databases. So how does a cloud database differ from the database we have in our office or server room? With cloud services, we are generally using the same database software as we would when we run a database in our server room or data center. The difference is that when the database is provided by AWS as a cloud service, we lease or rent a managed version of that database software. The service provides us with everything we need. We do not need to purchase the hardware or software first. AWS manages the service and we use it. Now AWS manages the underlying infrastructure and networking for that database service so we don't have to. AWS manages all of the setup, configuration, and scaling of the compute layer so that's another thing we don't have to do. Now this means there's less things for us to worry about before we start using the database service itself. That really simplifies the use of a database. It makes it faster and cheaper for us to set it up and to use it. Okay, let me use a practical scenario to help us understand how this might be applied. Let's envision we work for an insurance company and we want to build a web-based claims management system for our insurance firm. We've identified that having a browser-based claims system is likely to be easier to use and develop than the spreadsheets that are currently used by the claims processing staff and brokers. The claims management system is set to be a prototype. And if successful in testing with claims processing staff and with brokers, we plan to iterate on the design working toward developing a production version of this application. Now a front-end application will be developed in JavaScript by our internal team, but we need a database to store the claims and customer data submitted and collected from this application front-end. Most of the data we'll be storing will be homogenous, mostly stored in text fields of below 255 characters. There may be other object types that we need to support going forward. We've identified them. The queries required to render and work with records could become quite complex and the number of records we're expecting to store is below five million rows, but we need a database that can scale to meet production loads if this prototype is successful. The data must be backed up and available at all times. Now we've been told by our IT team that we should use the Microsoft SQL Server database as the database as that is what the business is using for other applications. We've also been told that the IT team do not have any spare Microsoft SQL Server licenses available right now so we will need to request and have an approved purchase order for the database hardware and software before we begin this prototype. The estimated cost of the hardware and software is around $10 to $15K depending on the hardware specification we choose. Also cost aside, we also saw that we needed to purchase and acquire the SQL Server license. We then need to acquire the server, have it setup, networked, secure it, and then install the database software on it. All this stuff is a drain on the IT team and currently they're very busy on other projects. So this could all take some time and of course has a lot of upfront costs. Now this has meant our project has stalled. This is a common situation where cloud services can really step in and save the day and here is why. A core benefit of cloud services is that the infrastructure and provisioning of the service is managed for you. So while you can still set up environmental parameters like you can with a database that you have set up in your office or data center, with a cloud-based database service, you don't need to buy and set up the hardware and networking infrastructure first or go through the routine of installing the software and configuring it to run before you wanna start using it. So for our scenario, we could go into the AWS Console and enable the appropriate version of Microsoft SQL Server using the Amazon RDS service in a matter of minutes and using the AWS service includes the cost of licensing. So we will only be charged for the time that we're using the database. And if we turn it off after a month, we won't be left with the setup costs and hardware costs. What's more, if there's a patch or update required to the underlying infrastructure or database software, the majority of the patching is managed for you by AWS. Okay, so straight away our pilot program could continue. We can just use a pay-per-use model where we set up an Amazon database using the Amazon Console, we're only paying for what we use, and we can use it immediately. The next level of benefits come when we need to scale a service to meet any demand. We talked about moving our system to a production service and that's something that we can viably do using the cloud database service. Amazon Relational Database Service is a managed service which means the provisioning and scaling is done for us. That means it is possible for us to scale our computing resources up or down and to run the database across multiple availability zones. This means we can make the service highly available basically with a click of a button from the AWS Console. Another great benefit in that we don't have to worry about buying additional compute resource and installing and setting that up. Another common question I get is, is a cloud database spread all over the internet? Well, AWS cloud services work within two constraints, regions and availability zones. Now a region is a geographical area within which there are a number of availability zones. So when we want to start an AWS database service, we first need to choose the region we want to run it in. Then within that region, there are a number of availability zones available to us. Now these are physically isolated data centers designed to provide a high level of resilience and fault tolerance for services run in that region. So while our database service can be hosted in a region of the internet, the database services are setup and managed for us by AWS to run within that specific region. So the easiest way for me to show you this is to do one for you. Let's set up a Microsoft SQL Server instance. Within the AWS Console under the RDS section, we can set up a wide range of services. We can select the US East region and we will request our Microsoft SQL Server database be set up and start running within this region. Now I'm going to show you how we actually go about setting the database up in a later lecture when we talk about Amazon RDS. But meanwhile, here we are, we set it up and it's running. Brilliant. So far, there's been no upfront cost and we now have a highly available database with the operating system and networking managed for us. All right, another key question is, how do we then access this database? Now connecting to cloud databases is very similar to how we connect to corporate databases. We have an ODBC connection string which is accessible by a machine running within our AWS account. The AWS database can also be accessed via the public internet. But wait, is that safe? I hear you ask. Which is a good lead into our next common question, is a cloud database as secure as one we might be running in our own server room or data center? Security is a key focus for AWS and as such, much time and resource is put into ensuring the physical environment AWS provides us is secure and protected from disruption. AWS services are run with a shared security model. AWS ensures the physical environment and the bare-metal services are secure. As users, it is our responsibility to maintain the security of the services that we run within the AWS environment. So the security of our services is our responsibility. What we do have to do is maintain the right roles and permissions for accessing those services. Now security has two aspects, data at rest and data in transit. AWS provides encryption for data in transit in and out of the database services AWS provides. Data at rest, i.e. information that's stored within a database, can be encrypted using a number of services that AWS provides. So it's very, very easy to manage data encryption and data at rest in our databases and this is where security of AWS databases services becomes a benefit. AWS provides encryption for data of all data in transit within AWS infrastructure. AWS also provides a family of services for encrypting data at rest in the majority of cloud databases. That makes it easy for you to ensure you maintain a high level of data protection. AWS has achieved a high number of compliance certifications and certificates which make it easy for you to meet security requirements, which means that your data is likely to be more secure hosted in a cloud-based database than it could be in a database that's managed in your server room. Okay, with an understanding of the basics of cloud databases, now let's do an introduction to the AWS database family.

About the Author
Learning Paths

Andrew is fanatical about helping business teams gain the maximum ROI possible from adopting, using, and optimizing Public Cloud Services. Having built  70+ Cloud Academy courses, Andrew has helped over 50,000 students master cloud computing by sharing the skills and experiences he gained during 20+  years leading digital teams in code and consulting. Before joining Cloud Academy, Andrew worked for AWS and for AWS technology partners Ooyala and Adobe.

Learning Pathnavigation