‫So let's get started
‫with an overview of AWS RDS.
‫RDS stands for Relational Database Service
‫and what it means is that it's a managed database service
‫for database that use SQL as a query language.
‫So SQL is a structured language to query database.
‫It's very well adapted and it's running on many engines.
‫So it allows you to create databases
‫that RDS service in the cloud,
‫and these databases will be managed by AWS
‫and you get a lot of benefits from it.
‫So what types of database engine are managed by AWS?
‫Well, the first one is PostgreSQL.
‫Then we have MySQL, MariaDB, Oracle,
‫Microsoft SQL Server, and finally Aurora,
‫and we have a dedicated section to Aurora.
‫So right now you can just forget about it, okay.
‫But so the first five, PostgreSQL, MySQL,
‫MariaDB, Oracle,
‫and Microsoft SQL server, you have to remember them.
‫So why would we use RDS
‫versus deploying our own database service on top of,
‫say, an EC2 instance, because this is possible.
‫Well, RDS is a managed service,
‫and as such, AWS provides a lot of services
‫on top of just giving us a database.
‫For example, the provisioning
‫of the database is fully automated
‫and so is the underlying operating system patching.
‫There is continuous backups being made
‫and you are able to restore to a specific timestamp.
‫It's called Point in Time Restore.
‫You can also have monitoring dashboards
‫to view the performance of your database.
‫You can have read replicas,
‫and we have a dedicated lecture on replicates
‫in this course.
‫To improve read performance, you can set up a multi AZ,
‫and so we do have also sections on multi AZ
‫that will be helpful for disaster recovery.
‫You have maintenance windows for the upgrades
‫and you have scaling public capabilities,
‫both vertical, by increasing the instance type,
‫and horizontal, by adding read replicas.
‫Finally, the storage is backed by EBS.
‫So this is something we already know,
‫which is gp2 volumes or io1.
‫But the only thing we do not have,
‫is we cannot SSH into the instances, the RDS instances.
‫So because this is a managed service,
‫AWS provides us a service
‫and we don't have access to the underlying EC2 instance.
‫But this is not too bad because we get all these things
‫that we would have to set up on our own
‫if we wanted to deploy our own database engine on EC2.
‫So here is one feature that can come up in the exam
‫and is around RDS storage auto scaling.
‫So the idea is that when you create an RDS database
‫you need to say how much storage you want.
‫For example, you want 20 gigabytes of storage,
‫but say you are using your database a lot
‫and you're about to run out of free space,
‫then with this feature enabled,
‫the RDS storage auto scaling, RDS will detect that
‫and will scale automatically the storage for you.
‫So you don't have to do any kind of operations
‫such as taking down database to increase the storage.
‫So the idea is that your application
‫does a lot of read and writes to your RDS database,
‫and then automatically, with some threshold
‫we'll see in a second, then the storage can auto scale.
‫And that is a feature of RDS
‫that is a very, very nice feature.
‫So this all is meant to make you avoid the operation
‫of scaling manually, your database storage.
‫For this, you need to set a maximum storage threshold,
‫so maximum limits for how much you want the storage to grow,
‫'cause you don't want it to grow infinitely, maybe,
‫and you can automatically modify storage
‫if the free storage is less
‫than 10% of what has been allocated
‫and the low storage has been lasting
‫for more than five minutes
‫and six hours have passed since the last modification.
‫If that's the case
‫then the storage will auto increase when you enable it.
‫This is very helpful for applications which
‫that have a unpredictable workload
‫and this supports all database engines for RDS,
‫just as MariaDB, MySQL, PostgreSQL, SQL server, and Oracle.
‫So that's it for this lecture.
‫I hope you liked it and I will see you in the next lecture.