16.2 Engines and where the database lives
| Engine | You use it when | Default port |
|---|---|---|
| MySQL | This lab, and most PHP or Node examples | 3306 |
| MariaDB | You want the MariaDB fork, still on port 3306 | 3306 |
| PostgreSQL | You prefer PostgreSQL (psql, a different SQL dialect) |
5432 |
| Oracle | An application that requires Oracle Database | 1521 |
| SQL Server | A .NET or Windows application that requires it | 1433 |
| Amazon Aurora | A MySQL-compatible or PostgreSQL-compatible cluster with shared storage | 3306 or 5432 |
The lab uses MySQL. Aurora speaks the MySQL or PostgreSQL protocol, but its failover and replicas are not the same as standard RDS Multi-AZ. Do not mix the two pictures (section 16.7).
Storage. RDS volumes use the same families you saw for EBS in Chapter 13. gp3 (general purpose SSD) is the right choice for this lab. io1 and io2 exist when you need a guaranteed number of IOPS. You do not need them here.
It does not live on your EC2 instance. RDS places the database in a DB subnet group: subnets in at least two Availability Zones. Even a single-AZ database needs that group, so a later failover has somewhere to land. In the default VPC, AWS already has a default subnet group. In the custom VPC from Chapter 15, build the group from private subnets in two AZs (for example 10.0.2.0/24 and 10.0.3.0/24). The application talks to a DNS endpoint, not to a disk path and not to a raw IP address.