This course will walk you through three major databases from Amazon Web Services. For each database, we will review core use cases, native capabilities, and how to build and configure instances for maximum performance and availability. Students will integrate the databases into a pre-built web application to see a practical example of each service in action.
Richard Seroter is a Senior Director of Product for Pivotal, a 10-time Microsoft MVP for
cloud/integration, an instructor for developer-centric training company Pluralsight, the lead InfoQ.com editor for cloud computing, and author of multiple books on application integration strategies.
Getting Started Hi there. My name is Richard Seroter and welcome to this course about the cloud databases from Amazon Web Services. I'm the VP of Product for CenturyLink, a provider of telecommunications, cloud infrastructure, platform as a service, hosting, colocation, and more. I've taught a number of Pluralsight courses so far, written a few books, and regularly blog and write about cloud computing and enterprise architecture. In this course, we're going to explore three major components of the Amazon Web Services database ecosystem, get some great hands-on experience, and learn how to use them to build applications. In this very first module, we're going to set up the conversation, provide some critical context for the rest of the course. So what are we going to cover? Specifically, we're going to start talking about the Amazon databases, where do they fit in the rest of the Amazon ecosystem? We'll talk about the management console and quickly jump in there, and immediately get in there, and look around at the Amazon experience for managing your databases. We'll talk about pricing. Something to understand is you're using these as a service sort of offerings, understand what are the components that go into the price so that you can make the best choices. We'll discuss the plan for the course, what is the sample application we're going to building, what sort of things can you expect out of this course, what things shouldn't you expect out of the course, giving a good foundation for what we're going to cover, and of course wrap things up.
Amazon RDS – Creating Instances, Loading Data Hi, my name is Richard Seroter. You're watching a course about the cloud databases from Amazon. In this particular module we're going to get started with Amazon RDS and how to consume its data from code and an application that uses this relational database. We'll talk about what is RDS, what are the core capabilities, what are the some of the native functions, how does it work, what's managed even mean in the RDS world? So we'll go in-depth as to what RDS actually is. We'll talk about creating instances. What are some of those decisions you have to make? What kind of options are available for each of the different engines? Let's understand what it means to create instances in RDS. We'll drill into security. What are some of the ways that you can secure an RDS instance and configure that? We'll go through accessing and populating instances. Let's go ahead and connect to our database. Let's import some data and put some data into our instance, create some tables, configure it all up. And then finally, of course, wrap up and tee up what we are going to do next in RDS, which is around scaling and doing some high availability situations. So in this one we're going to get things set up and tee ourselves up for the next one. As a reminder if we look at the sample application we're working with, I've grayed out the things that we're not dealing with right now. So in this particular module we're talking about getting into that initial database where we're storing some headlines, some clickstream information for our mobile web app where the idea that this application stores information about our favorite sports teams, and headlines, and things like that. So, here we're going to be adding the RDS database for a master source of sports headlines and clickstream data, and eventually adding in some more HA things. This one is just setting things up.
Amazon RDS – Lifecycle Activities Hi there. My name is Richard Seroter. You're watching a course about the Cloud databases from Amazon and in the last module we looked at Amazon RDS, kind of introducing it, provisioning things, loading data. In this module we're going to look at a range of maintenance and scale activities with RDS including helping you to scale to more instances, scale up and scale back, backups, and so forth. Specifically, we'll start by talking about snapshots. What are snapshots? How is that built-in capability available to you? How do we do backup and restore? How do we do scaling? And this is going to be fun because this will be both horizontal and vertical, so how do I scale up? How do I make bigger instances? And how do I scale out using things like read replicas and how do I use multi-availabilities, to actually trigger a failover? We'll purposely cause a failover and watch how the system recovers from that. We'll talk about some monitoring and maintenance. How do we deal with logs? How do we work with Cloud Watch? See how all that works together, and then of course, then we'll summarize. As a reminder, we've got our sample application. Now we're filling in a little more here. A few more orange lines as we're going from the web server to the read replica and the primary database to a stanDBy. As a reminder we've built this sort of simple mobile web application for sports scores and sports information. In the last module we actually loaded the headlines and pulled those back. We also loaded some clickstream information into our primary database and saw how that gets populated as well from our Node JS application.
Amazon DynamoDB – Creating and Querying Hi. My name is Richard Seroter and you're watching a course about Cloud databases from Amazon and so far we've talked about Amazon RDS and doing relational database work. In this module and in the next one, we're going to be working with DynamoDB and in this module we'll see how to create and consume DynamoDB data. Let's talk about what we're going to cover in this module. We're going to start by an overview of what in the world is DynamoDB? What's the purpose of it? What are some native capabilities? Core concepts? What's actually managed in there? How does it work? You can really set a great foundation for a very interesting database that might not be like something you've used before. We're going to talk about creating tables. What are the implications of creating these tables? What things do you have to think about? What things don't you have to think about? Because there's a lot of upfront choices with DynamoDB to have some lasting impact, so how do you make sure you do it the right way? We'll discuss the ways you load data into your DynamoDB database. We'll explore how you make requests, how do you do queries? How do you add data? And play around with that both programmatically from the API as well as using the console within the Amazon dashboard. And of course, finally we're wrap up and summarize what we've learned. Where are we at with our sample app? So what we're going to be adding, there's some more orange lines here is we're going to be using this score and user database in DynamoDB. So now if you remember our application so far, we've been pulling some headlines. We've been updating a click stream database. Now we want to go pull some scores for a given day. We also want to store user preferences and user data. Again, it makes a lot of sense to put those in DynamoDB as I might want a more flexible schema-less structure for user preferences. I might add more preferences over time. I don't want to have to rebuild my tables, so I want a more flexible way to define that structure and for scores, I may again want a flexible structure and I want the high performance that DynamoDB gives me.
Amazon DynamoDB – Tuning and Scaling Hi there, my name is Richard Seroter. You're watching the next module in the course about cloud databases from Amazon. In this particular module we're going to keep working with DynamoDB and see some secondary indexing and tuning and scaling that are built into the product. Let's talk about some of the specifics. We're going to first talk about securing tables, whether the security controls I have at play here to make sure that I can control some access to not only the tables, but the data within them. We'll go through secondary indexes. What is the role of secondary indexes? How do I apply them? What are the benefits? How do I take advantage of them and add them to my tables? And we'll have it baked into our application and do some pretty cool samples with it. We'll talk about scaling tables. How do I grow the throughput unit or even shrink the throughput unit? Let's talk about monitoring. We'll go through what kind of things can you keep an eye on. How can you send alarms and so forth based on things that are happening in your DynamoDB table. And of course we'll wrap up. So where we are with our sample application, last time we added the user database table, if you will, to the application. Now we're going to add some score information and so what we need to do is do some secondary indexes with that because there are multiple ways we might want to look at that information. Let's talk about security tables, what things are at our disposal.
Amazon Redshift – Creating Clusters and Databases Hi there, my name is Richard Seroter and you've been watching a course so far about Cloud databases from Amazon. If you've made it this far, congratulations. In this module we're actually going to start looking at Redshift, and how to set up an on demand data warehouse. These last two modules are focused on Redshift and how we bring all this together from the other databases, like RDS and Dynamo, that we've been working with so far. So what are we going to cover specifically? Well we're going to start off with what is Redshift? Really drill into what is this sort of thing, what are data warehouses even about? And understand that a bit. We'll talk about how do you create Redshift clusters and what are the things we have to think about up front to do this correctly? What sort of configurations are available that can have pretty lasting impact on the performance of your cluster? We'll drill a little bit into Redshift security and how to use encryption and how to do user access security. We'll talk about how do you access a Redshift cluster and actually connect to one. We'll talk about designing tables and what kind of things have to go into your table design. And then finally we'll summarize. As a note, this isn't going to be a course on data warehousing and all the best practices for creating great data warehouses. It's more of how do I use Redshift to do that, so I'm not assuming you're coming in with a lot of established knowledge and I'm not going to go into crazy depth on that topic, but we will touch on a number of things and key optimizations to keep in mind if you're just getting started with this. For where we are in our application, we're finally piecing it all together. We've filled in the last few orange lines here as we're connecting our database systems to our warehouse. Now in this module we won't actually be feeding data into the warehouse yet, that'll be the next one, but this really starts to finish up our application as we've been collecting data, how do we now use a warehouse to ask questions of it, join it from multiple sources, and gain some new insights?
Amazon Redshift – Data Loading and Managing Hi there, my name is Richard Seroter and welcome to the final module in a course about the cloud databases from Amazon. Thank you for making it this far. In this module we're going to pull it all together with Amazon Redshift and load some data in and manage our data warehouse in the cloud. We're going to start off right away by loading data into Redshift. What does it mean? How do you get data into this data warehouse? What tools can you use? We're going to look at how do you create and manage snapshots? Even how do you do replicas to other regions? We're going to resize our Redshift cluster. We're going to add some nodes to it and see what that means. We'll look at what the baked in monitoring capabilities are with CloudWatch and we'll go ahead and do a summary to wrap up the course and wrap up this module. Wrapping up our sample application, we've got this final piece now where we're going to be pulling all this data coming in from our relational database and RDS as well as our NoSQL database in Dynamo, pulling that all into the warehouse and doing some sample queries against that information.