AWS NoSQL databases
AWS Relational Databases
*** 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.
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.
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 email@example.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:
- [Instructor] Hi and welcome back. Now let's set up a database using the Amazon RDS service. So, on our front screen here, you see we've got the six database options we can choose. All we have to do is select the one we want. We'll select the Microsoft SQL Server option. Now, here we have a list of available licenses. We can do the Express Edition, Web or Standard. We'll choose the Standard Edition because that supports most of the SQL queries and functions that we're most likely to use in a corporate environment. The Web edition has just about everything but if we're going to be integrated with another service, then Standard would be best. Now, we're given the option to choose whether we wanna have a Production version or a Dev/Test version, and this essentially is, do we wanna have a Multi-AZ Deployment or just a Single Availability Zone Deployment. Now this again is how useful the RDS service is to us because we can start off with a very simple structure where we're just using a Dev/Test environment, which is basically the lowest cost to us. And then if we do need to scale up once we've reached the point where we think the system is ready, it's very easy for us to do that from the same console. So, our next option is whether we include our license, and if so, which version should we take, and you can see here we're given a large number of choices. If we have a specific platform that we need to support so it's compatible with some other database in our network, on a network or within our corporation, it's very easy for us to choose that. Again, more flexibility to us, the user. Now, down to the actual computer instance that this database is going to run on. And remember, we talked about the instance types. If we go for an m4.large, it's two virtual CPUs and eight gigabytes of RAM. And remembering the big benefit here is that we can come back and change this to a larger machine at a later stage if we want. We can set our time preference and we can decide what type of storage we wanna have, whether we use the SSD General Purpose or the enhanced IOPS version.
We can set a database size. So remember, we can set it up to 16 terabytes in size here if we wish. If we wanna have Provisioned IOPS, then we need to have 100 gigabytes of General Purpose storage first. Now, we can just give it the standard naming convention, so we need to call our database something that we can refer to later in our connection string. It needs to have no illegal characters, so we cannot use an underscore character. We can use a dash. We need to provide a password and username for the master access. All right, so at this point, we've got to choose our Virtual Private Cloud. Now, this is basically the subnetting that's going to be used for this database. We can create a subnet group or stick to the defaults. We'll use the current default VPC for our account. And we get at this point, can decide whether we want to allow public into our database. Now, if we do this, then of course, we need to make sure we got the right security rules and roles in place. We can also select the availability zone. Remember, we've chosen this to be a Single Availability Zone Deployment, but if we were wanting to have a preference of availability zones, we could set it there. Now, some of the other options are really just about connectivity, like what is the name of the database group we're going to use, how we're going to encrypt the database.
Remember, we've got the choice to encrypt data at rest, as well as in transit. If we opt to encrypt our database, then we'll use a master key that's either provided by us or can be provided by the AWS encryption service. Again, this can be applied to just about every database in the RDS family and we can also encrypt data in DynamoDB and in the latest version of ElastiCache. We can set the default delay we want to have on our backups, how long we want the backup window to be, and we can set a duration and a time of day when we want the backups to be implemented. So, we'll probably make this late at night, say, 11 o'clock, between 11 and 12, when database usage is likely to be low. And we're also able to enable monitoring, advanced monitoring as well. And remember, we talked about selecting our maintenance window. We can choose which day we want to have any maintenance patches applied and what time. So again, we can set the base time that will be least of an impact to our service, when our database server will be least used, then we would apply that for our update window. Okay, at this point, we set all the parameters and we've now just basically kicked off our database. We can now come back in a minute or two and we'll see the actual environment that we set up.
Okay, now we have our dashboard showing. We can see we've got our database running. We've got some CPU Utilization stats and some DB Connection stats. Now, the best thing is we can go modify here and we can change the actual configuration of our server instance. So, we're gonna step up from eight gigabytes of RAM to 256 gigabytes of RAM. We can also change the mirroring option, so we can make it Multi-AZ. And we can change to Provisioned IOPS, make it 120-gigabyte. Okay, so this is the power of RDS. We can go from having a two virtual CPU machine to a 64 virtual CPU machine with 256 gigabytes of RAM in a click of a button. Okay, now that is such a big difference of how we would provision IT infrastructure if it was just our server. Okay, that brings to a close our demonstration of how we can use Amazon RDS to start up a database.
About the Author
Head of Content
Andrew is an AWS certified professional who is passionate about helping others learn how to use and gain benefit from AWS technologies. Andrew has worked for AWS and for AWS technology partners Ooyala and Adobe. His favorite Amazon leadership principle is "Customer Obsession" as everything AWS starts with the customer. Passions around work are cycling and surfing, and having a laugh about the lessons learnt trying to launch two daughters and a few start ups.