Skip to content
Guide · AWS

AWS RDS for MySQL: Setup, Pricing & Best Practices

Amazon RDS for MySQL runs MySQL Community Edition as a managed service, and RDS for MariaDB does the same for MariaDB. This guide covers the versions AWS supports today (MySQL 8.0 has just moved to paid Extended Support), the documented setup and connection steps, how RDS MySQL is billed, and when Aurora MySQL is the better fit.

Facts checked 8 October 2026 against the providers' official documentation and pricing pages. Next review due January 2027. Cloud services, regions and prices change often; confirm on the provider's site before you buy.
Short answer
  • RDS MySQL supports MySQL 8.4 under standard support; MySQL 8.0 and 5.7 are now available only under RDS Extended Support, which adds a per-vCPU-hour charge.
  • AWS RDS MariaDB is a separate engine on the same platform, with majors from 10.5 to 12.3 listed in AWS's support calendar.
  • Setup is the standard RDS flow: choose engine and version, instance class, gp3 storage, a private VPC subnet group and a security group allowing your app on the MySQL port.
  • Use InnoDB: AWS states that point-in-time restore and snapshot restore are supported for InnoDB only.
  • Pick Aurora MySQL instead for shared cluster storage, many low-latency replicas or Serverless v2; pick RDS MySQL for the closest match to community MySQL.
How we know: Research-based: versions, support dates, setup options, connection commands and prices were checked against the Amazon RDS User Guide, the RDS for MySQL and RDS for MariaDB version pages, the AWS CLI reference and the Amazon RDS for MySQL pricing page on 8 October 2026. We have not run RDS instances for this guide, so no performance claims are made and the setup steps are AWS's documented procedure.

What RDS MySQL is (and how RDS MariaDB fits in)

RDS MySQL (Amazon RDS for MySQL) is AWS's managed MySQL service. You create DB instances, snapshots, point-in-time restores and read replicas, and AWS runs the host, storage, patching and backups. The RDS User Guide says the master user created with the instance gets DBA privileges with some limitations; there is no OS access, and some administrative tasks are done through RDS-provided stored procedures rather than the usual server commands.

AWS RDS MariaDB (Amazon RDS for MariaDB) is a separate engine choice on the same service. It shares the console, pricing model, parameter groups and Multi-AZ options, but follows MariaDB's own release line. Choose it if your application already targets MariaDB; otherwise RDS MySQL tracks Oracle's MySQL Community releases.

Supported MySQL and MariaDB versions

AWS publishes support calendars for both engines. For MySQL the important change in 2026 is that MySQL 8.0 reached RDS end of standard support on 31 July 2026; AWS now marks 8.0 and 5.7 as available only under RDS Extended Support, which is billed per vCPU-hour on top of the instance. New instances should use MySQL 8.4. AWS documents in-place major upgrades from 5.7 to 8.0 and from 8.0 to 8.4; they are never automatic, because they carry compatibility risk.

RDS for MySQL and RDS for MariaDB major versions (AWS calendars, checked 8 October 2026)
Engine and major versionRDS release dateRDS end of standard supportStatus today
MySQL 8.421 November 202431 July 2029Standard support
MySQL 8.023 October 201831 July 2026Extended Support only (ends 31 July 2029)
MySQL 5.722 February 201629 February 2024Extended Support only (ends 30 June 2029)
MariaDB 12.37 August 2026June 2029Standard support
MariaDB 11.825 August 2025June 2028Standard support
MariaDB 11.415 October 2024May 2029Standard support
MariaDB 10.1121 August 2023February 2028Standard support
MariaDB 10.63 February 202231 December 2026Standard support, ending soon

Setting up AWS RDS for MySQL

The console flow is the same as for other RDS engines. AWS notes that MySQL has a single edition option. The documented steps:

  1. In the RDS console choose Create database, then MySQL (or MariaDB) and an engine version. Easy create asks only for engine, size and identifier and uses defaults for the rest.
  2. Choose a template. The Production template preselects Multi-AZ, Provisioned IOPS (io1) storage and deletion protection.
  3. Set the DB instance identifier and master username, and either type a password or let AWS Secrets Manager manage it.
  4. Choose an instance class and storage. On gp3, AWS documents a baseline of 3,000 IOPS and 125 MiB/s, rising to 12,000 IOPS and 500 MiB/s from 400 GiB for MySQL and MariaDB.
  5. Under Connectivity, choose the VPC, subnet group and security group, and leave public access at No unless you have a reason to change it.
  6. Attach a custom DB parameter group if you need non-default settings, set backups and the maintenance window, and create the database.

The equivalent CLI call uses aws rds create-db-instance; the AWS CLI reference's own minimal example is --db-instance-identifier test-mysql-instance --db-instance-class db.t3.micro --engine mysql --master-username admin --master-user-password secret99 --allocated-storage 20. For real use add --engine-version, --storage-type gp3, --no-publicly-accessible, --vpc-security-group-ids and --manage-master-user-password instead of a plain-text password.

Networking and security groups

AWS recommends keeping databases private. Allow TCP 3306 in the instance's security group only from your application's security group or a known IP range, and reach a private instance from your laptop through a bastion host or VPN inside the VPC.

Connecting with the mysql client, MySQL Workbench or DBeaver

Find the endpoint and port on the instance's Connectivity & security tab; the default port for both RDS for MySQL and RDS for MariaDB is 3306. AWS notes that most Linux distributions ship the MariaDB client rather than Oracle's MySQL client; on Amazon Linux 2023 its documented install command is sudo dnf install mariadb105. Then connect with the documented form:

mysql -h <endpoint> -P 3306 -u <master user> -p

To encrypt the session, download AWS's certificate bundle and add --ssl-ca=global-bundle.pem --ssl-mode=REQUIRED, or VERIFY_IDENTITY to also check the host name. On the server side, AWS states that require_secure_transport is OFF by default; set it to ON in your parameter group to refuse unencrypted connections, with no reboot needed. MySQL Workbench is the GUI AWS documents; DBeaver, DataGrip and other clients use the same endpoint, port and credentials. See the best MySQL GUI tools.

RDS for MySQL best practices

  • Use InnoDB for every table. AWS fully supports InnoDB and says point-in-time restore and snapshot restore require a recoverable engine and work with InnoDB only. Note too that InnoDB is a reserved word on RDS for MySQL, so you cannot name a database that.
  • Upgrade off 8.0. Plan the move to 8.4 to stop Extended Support charges, and read AWS's 8.4 notes first: caching_sha2_password is the default authentication plugin, and innodb_dedicated_server is enabled by default, so buffer pool and redo log sizes are calculated by the engine unless you override them.
  • Keep the working set in memory and watch ReadIOPS, CPU, memory, replica lag and free storage with CloudWatch alarms, as the RDS best-practices page recommends.
  • Enable automatic backups in a low-write window, and test failover so you know how long the application takes to reconnect.
  • Index for your queries. Most slow MySQL workloads are query and index problems first; see our SQL indexes lesson.

RDS MySQL or Aurora MySQL?

Both are MySQL-compatible, but they are built differently. A quick way to decide:

  • Choose RDS for MySQL if you want behaviour closest to community MySQL, a single instance with EBS storage you size yourself, and the simplest pricing with no per-request I/O charges.
  • Choose Aurora MySQL if you want storage that grows automatically and is replicated across three Availability Zones, up to 15 read replicas sharing that storage, Serverless v2 autoscaling, Global Database or Backtrack.
  • Choose neither if your app depends on MyISAM features or OS-level access; then self-managed MySQL on EC2 fits better.

See Amazon Aurora vs MySQL, Amazon RDS vs Amazon Aurora and, if you are still choosing an engine, RDS MySQL vs RDS PostgreSQL or MySQL vs SQL Server.

Pricing

Prices from the provider's official pricing pages, checked 8 October 2026, region US East (N. Virginia), in USD, excluding tax. List prices only; discounts, commitments and your actual usage change the bill.

RDS for MySQL has no licence fee. The pricing page bills DB instance-hours (per second, 10-minute minimum after a billable change) for Single-AZ, Multi-AZ with one standby and Multi-AZ with two readable standbys, plus storage per GB-month, Provisioned IOPS, backup storage beyond the free allowance and data transfer. While an instance is stopped you pay for storage and backups but not instance-hours. RDS for MariaDB is billed on the same dimensions.

Instance-hour rates depend on the class and deployment; look them up for your class on the AWS pricing page or in the AWS Pricing Calculator. We list below only the rates AWS states in the text of the page, including the Extended Support rate that now applies to every MySQL 8.0 instance.

Rates stated on the RDS for MySQL pricing page
ItemRate (USD)Note
RDS Extended Support, year 1 pricing0.100 per vCPU-hourAWS example for US East (N. Virginia); added to the instance price
T4g and T3 CPU credits (Unlimited mode)0.075 per vCPU-hourOnly when average CPU exceeds the baseline
io1 storage, Single-AZ0.125 per GiB-monthFrom AWS's US East (N. Virginia) Dedicated Log Volume example
io1 Provisioned IOPS, Single-AZ0.10 per IOPS-monthSame example; Multi-AZ with one standby is 0.25 and 0.20

Estimate: Extended Support surcharge for a MySQL 8.0 db.r5.large

  • MySQL 8.0 on a db.r5.large (2 vCPUs, as AWS's example states) in US East (N. Virginia), Single-AZ, running all month (730 hours).
  • Year 1 Extended Support pricing, which for MySQL 8.0 started on 1 August 2026.
  • Shows only the surcharge; the instance-hours, storage, backups and data transfer are billed on top.
ItemBasisEstimated per month
RDS Extended Support2 vCPUs x 0.100 USD x 730 hours146.00 USD
Estimated total146.00 USD per month on top of the normal instance price

Worked examples are estimates calculated from the list prices above; they are not quotes or measured bills.

Frequently asked questions

Is MySQL 8.0 still supported on Amazon RDS MySQL?

Only under RDS Extended Support. AWS lists 31 July 2026 as the end of standard support for MySQL 8.0 and 31 July 2029 as the end of Extended Support. Instances on 8.0 keep running but incur a per-vCPU-hour charge until you upgrade to 8.4.

What is the difference between RDS MySQL and RDS MariaDB?

They are separate engines on the same Amazon RDS platform with the same billing model and management features. RDS for MySQL follows Oracle's MySQL Community releases; RDS for MariaDB follows MariaDB's releases, currently 10.6 to 12.3 under standard support.

Can I use MyISAM tables on RDS for MySQL?

RDS lets other engines exist, but AWS states that point-in-time restore and snapshot restore are supported for InnoDB only, so MyISAM tables are not protected the same way. Convert them to InnoDB before relying on RDS backups.

How do I connect MySQL Workbench to AWS RDS MySQL?

Create a connection with the instance endpoint as host name, the port and a database user. The instance must be reachable from your machine, either publicly accessible with a rule for your IP or through a VPN or bastion.

Does RDS MySQL support Multi-AZ with readable standbys?

Yes. The pricing page lists Multi-AZ deployments with one standby and with two readable standby instances for RDS for MySQL. The related Multi-AZ guide explains the difference.

Sources

Checked 8 October 2026.

How we research cloud database guides: our editorial method. CodeWithSQL earns nothing from the providers mentioned.

Choosing where to run your database?

Start with the section overview, or compare providers side by side.