Hello, and welcome to the third course from CloudAcademy.com's video series preparing your for Amazon Solutions Architect Associate Level Certification Exam. We'll start though with RDS, the relational database service. Naturally, you don't actually need RDS to run SQL databases on the Amazon Cloud. You could always fire up an EC2 server, load a database package like MySQL from the software repositories, configure network connectivity and security, and manage it yourself. There might be scenarios where such an approach might even be preferable, although I can't think of any off hand.

But for the most part, in most cases there really is no reason to reinvent the wheel. A large part of the value of a managed database platform is in the high availability that it can provide. Running a data server is a bit like trying to cheat death and taxes. You can't keep getting away with it forever. You just know that eventually something, either hardware or software, is going to fail and your servers will become inaccessible.

Well configured managed platforms, by providing higher availability standards can go a great distance towards helping you to avoid those failures. AWS RDS can do this in part by replicating your data through multiple instances and multiple availability zones, that way if one instance or availability zone should fail, the RDS server will automatically failover to a secondary database. RDS uses two kinds of replication. A multi-az configuration which we'll explore in the next video, will create standby replicas of your database in alternate availability zones. While RDS can also use the built in replication functionality of a MySQL or PostgreSQL instance, creating a system by which is automatically asynchronously copied to a read replica instance allowing not only greater reliability, but an alternate target for client requests. RDS databases can be built from MySQL, PostgreSQL, Oracle, Microsoft SQL Server, and soon the new MySQL compatible Amazon Aurora DB engine. Aurora promises to provide a very highly optimized database engine that's pretty much entirely compatible with the Open Source MySQL.

That means you'll be able to simply drop your existing MySQL databases into an Aurora instance, and it will just work. It also means that your knowledge investment in MySQL will certainly not be wasted. But more than that, Aurora is claimed to be able to deliver up to 5x the performance of MySQL, and it's cluster-based architecture is fully and efficiently integrated with the AWS environment. With RDS, AWS has done a great job of efficiently taking care of most of the administrative tasks, leaving you to focus on your data. An RDS instance is built by the RDS wizard which will ask you which database engine you'd like to use, what kind of infrastructure you'll need to handle the workload and reliability your project demands, and where you'd like this DB to live within the greater space of your AWS account. That's about it. When setup is complete, you'll be given an endpoint for your DB instance, which is just about the only thing you'll need to know about the instance. When a server-based application like MediaWiki or WordPress asks for access to your SQL database, you'll only have to pass along the endpoint along with your password and login name, and your application will take over from there. We'll see how this is actually done in the next video. For now though, let's explore some of RDS's key features. While you can't SSH into the RDS instance itself, because after all RDS is a managed service, by providing authentication ID you can access for instance, a MySQL database from a local MySQL client session. The AWS RDS dashboard and command line interface can be used to control database configurations. User access can be completely controlled using the AWS IM[SP] tools. Because RDS is modular, you can easily re-allocate CPU, IOPS, or storage either up or down, and pretty much without limit or penalty. Software patches, failure detection, and recovery and backups are all handled automatically by RDS. You can configure automated backups which are by default available for quick and reliable restores in the event you require disaster recovery. RDS has it's own integrated restore process. As we'll see in the next video, you can configure an RDS instance for high availability by creating both primary and synchronous secondary instances in multiple availability zones. RDS can build native database instances using MySQL, PostgreSQL, Oracle, Microsoft SQL Server, and the recently added MySQL compatible Amazon Aurora.