Engines#
RDS supports multiple relational database engines. At the time of writing, RDs supports:
- MySQL (the one we'll be using);
- PostgreSQL
- MariaDB (which is a fork/copy of MySQL)
- Oracle
- (Microsoft) SQL Server
Note
There's also Amazon RDS Custom, but that's way beyond what we beed to cover.
Again, these are all relational databases.
When we create an RDS Instance, we can choose the engine we want the Instance to use. Once it's been created and is ready to be used, we can connect to the engine using a client that supports the engine's protocol, or we can write code to do that for us (this is essentially what software is doing, like WordPress.)
We're going to be creating an Instance using the MySQL engine type. It's an extremely common engine and it's very capable of meeting most business needs. However, there are many other engine types available via RDS (and even more outside of RDS) and each one has its benefits, pros, cons, and so on.
How a business decides on the right engine to use depends heavily on what they're trying to do. It's very common to see multiple engines within an organisation as each engine provides different benefits.
Engine Version#
One of the best features of RDS (in my opinion) is the automated software upgrade feature. RDS can completely manage the software upgrade cycle for you, and you can limit what version you want. This is an important feature as software updates help prevent security incidents, but at the same time you have to be careful not to upgrade to a version your software doesn't support.
You can choose how-to upgrade to major versions of the database and the minor versions. A major version change is a big one, and it's like going from version 1.0
to 2.0
as opposed to a minor change, which is like going from 1.0
to 1.1
.
An upgrade to a major version generally means there's breaking changes in the software for you, the consumer of the software. What this essentially means is this: software provides interfaces that software can use to interact with it, and a major change to those interfaces can break compatibility between your software and the software that was upgraded.
A minor upgrade doesn't break compatibility with existing software (at least it shouldn't.)
The key take away from this is the fact RDS is going to take care of the upgrade process, and it allows you to define how (and if) you upgrade the major version, the minor version, or both. Just keep in mind that majoy version upgrades are eventually required.