<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: CODELEVEL - Jacob Binczyk</title>
    <description>The latest articles on DEV Community by CODELEVEL - Jacob Binczyk (@codelevel).</description>
    <link>https://dev.to/codelevel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4170771%2F1105efdb-926b-41af-a82a-9f0e6c9e4c52.png</url>
      <title>DEV Community: CODELEVEL - Jacob Binczyk</title>
      <link>https://dev.to/codelevel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codelevel"/>
    <language>en</language>
    <item>
      <title>RDS has been charging extra for MySQL 8.0 since August</title>
      <dc:creator>CODELEVEL - Jacob Binczyk</dc:creator>
      <pubDate>Thu, 08 Oct 2026 13:27:27 +0000</pubDate>
      <link>https://dev.to/codelevel/rds-has-been-charging-extra-for-mysql-80-since-august-568j</link>
      <guid>https://dev.to/codelevel/rds-has-been-charging-extra-for-mysql-80-since-august-568j</guid>
      <description>&lt;p&gt;Standard support for MySQL 8.0 on RDS &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html" rel="noopener noreferrer"&gt;ended on 31 July 2026&lt;/a&gt;. Since 1 August AWS has been adding an &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-overview.html" rel="noopener noreferrer"&gt;Extended Support&lt;/a&gt; charge to every such database that has it enabled. The API, the CLI and Terraform &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-creating-db-instance.html" rel="noopener noreferrer"&gt;enable it by default&lt;/a&gt;; in the console you have to tick it. The charge is already on your August and September bills.&lt;/p&gt;

&lt;p&gt;If you run MySQL 8.0, move it to 8.4, which has standard support &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html" rel="noopener noreferrer"&gt;until 31 July 2029&lt;/a&gt;. Aurora MySQL 3, the 8.0-compatible line, has standard support &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html" rel="noopener noreferrer"&gt;until 30 April 2028&lt;/a&gt;, so there is no surcharge there yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Extended Support costs
&lt;/h2&gt;

&lt;p&gt;In Frankfurt, the &lt;a href="https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonRDS/20261006224050/eu-central-1/index.json" rel="noopener noreferrer"&gt;AWS price list on 6 October 2026&lt;/a&gt; gives $0.122 per vCPU-hour for the first two years, which is about $89 a month for each vCPU. From 1 August 2028 the rate doubles to $0.244. A Multi-AZ database keeps a standby copy in a second zone, and AWS &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-charges.html" rel="noopener noreferrer"&gt;charges for that standby too&lt;/a&gt;, so you pay twice as much.&lt;/p&gt;

&lt;p&gt;Take a db.m6g.large in Multi-AZ, with 2 vCPUs. The instance alone costs about $264 a month in Frankfurt, and Extended Support adds $356 on top. For August and September AWS has already added about $714 to that database.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The chart for this part is in the &lt;a href="https://codelevel.pl/en/insights/mysql-8-rds-extended-support-charges/" rel="noopener noreferrer"&gt;original post&lt;/a&gt;.&lt;/em&gt;&lt;br&gt;
Reserved Instances won't reduce the surcharge, because &lt;a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/estimating-the-charges-for-amazon-rds-extended-support/" rel="noopener noreferrer"&gt;RI discounts don't apply to Extended Support&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Where it shows on the bill
&lt;/h2&gt;

&lt;p&gt;Extended Support is a &lt;a href="https://aws.amazon.com/blogs/aws-cloud-financial-management/estimating-the-charges-for-amazon-rds-extended-support/" rel="noopener noreferrer"&gt;separate line item on the bill&lt;/a&gt;, next to instance hours and storage. In Cost Explorer, type &lt;code&gt;ExtendedSupport&lt;/code&gt; into the Usage Type filter and select every result. The Frankfurt usage type for MySQL 8.0 is &lt;code&gt;EUC1-ExtendedSupport:Yr1-Yr2:MySQL8.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;The same filter catches databases on older versions too. MySQL 5.7 &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html" rel="noopener noreferrer"&gt;has been billed at the year-three rate&lt;/a&gt; since 1 March 2026. You can also load a Cost Explorer export grouped by usage type into the &lt;a href="https://codelevel.pl/en/calculator/csv-analysis/" rel="noopener noreferrer"&gt;CSV analysis&lt;/a&gt;, which lists the largest items on the bill.&lt;/p&gt;

&lt;p&gt;To see which databases you are paying for, run this command in each region:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;aws rds describe-db-instances &lt;span class="nt"&gt;--region&lt;/span&gt; eu-central-1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--query&lt;/span&gt; &lt;span class="s2"&gt;"DBInstances[?Engine=='mysql'].[
    DBInstanceIdentifier,
    EngineVersion, MultiAZ,
    EngineLifecycleSupport]"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output&lt;/span&gt; table
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Any 8.0.x row with &lt;code&gt;open-source-rds-extended-support&lt;/code&gt; in the last column is a database you are paying the surcharge on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Switching it off means an upgrade
&lt;/h2&gt;

&lt;p&gt;You can change &lt;code&gt;EngineLifecycleSupport&lt;/code&gt; at any time. But if you disable Extended Support on an 8.0 database, &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-overview.html" rel="noopener noreferrer"&gt;RDS upgrades it automatically&lt;/a&gt; to the next supported version, 8.4, whether or not you have tested the application on it. The charge &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/extended-support-charges.html" rel="noopener noreferrer"&gt;stops&lt;/a&gt; once the database reaches a supported version. I described the same mechanism for &lt;a href="https://codelevel.pl/en/insights/postgresql-14-end-of-life-november-2026/" rel="noopener noreferrer"&gt;PostgreSQL 14&lt;/a&gt;, where the deadline is still ahead.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to move to 8.4
&lt;/h2&gt;

&lt;p&gt;The target is 8.4, because newer MySQL versions are only available on RDS in the &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html" rel="noopener noreferrer"&gt;Database Preview&lt;/a&gt; environment, which AWS does not allow for production.&lt;/p&gt;

&lt;p&gt;AWS &lt;a href="https://aws.amazon.com/blogs/database/amazon-rds-for-mysql-lts-version-8-4-is-now-generally-available/" rel="noopener noreferrer"&gt;recommends a blue/green deployment&lt;/a&gt;. RDS builds a copy of the database and replicates production changes into it, and you upgrade the copy to 8.4 and test the application against it. The copy is &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-overview.html" rel="noopener noreferrer"&gt;read-only&lt;/a&gt; and should stay that way, because writes to it break replication and can end up in production after the switch-over. Run tests that write against a database restored from a snapshot.&lt;/p&gt;

&lt;p&gt;The switch-over itself usually takes under a minute. Afterwards the old database stays as &lt;code&gt;…-old1&lt;/code&gt;, still on 8.0, and &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/blue-green-deployments-considerations.html" rel="noopener noreferrer"&gt;AWS keeps charging for the instance&lt;/a&gt; and for Extended Support. Delete it once you no longer need a way back.&lt;/p&gt;

&lt;p&gt;An in-place upgrade takes &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.Major.html" rel="noopener noreferrer"&gt;about 10 minutes&lt;/a&gt;, and the database is down for that time. The documentation describes no way back to 8.0 after a successful upgrade.&lt;/p&gt;

&lt;p&gt;On the copy, read &lt;code&gt;PrePatchCompatibility.log&lt;/code&gt;: &lt;a href="https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.MySQL.Major.html" rel="noopener noreferrer"&gt;RDS runs prechecks before it stops the database&lt;/a&gt; and cancels the upgrade if any of them fail. Then check the changes listed in &lt;a href="https://aws.amazon.com/blogs/database/amazon-rds-for-mysql-lts-version-8-4-is-now-generally-available/" rel="noopener noreferrer"&gt;AWS's announcement of MySQL 8.4 on RDS&lt;/a&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;New users in 8.4 get the &lt;code&gt;caching_sha2_password&lt;/code&gt; plugin by default, while existing ones keep &lt;code&gt;mysql_native_password&lt;/code&gt;. Make sure the application can connect with an account created after the upgrade.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;restrict_fk_on_non_standard_key&lt;/code&gt; is on by default and stops you creating foreign keys built on non-unique or partial keys. Check that your schema migrations don't create any.&lt;/li&gt;
&lt;li&gt;The old replication statements are syntax errors in 8.4, so in scripts and monitoring replace &lt;code&gt;SHOW MASTER STATUS&lt;/code&gt; with &lt;code&gt;SHOW BINARY LOG STATUS&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Compare the timing of your heaviest queries, because 8.4 changes InnoDB defaults.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When to do it
&lt;/h2&gt;

&lt;p&gt;Ideally in October 2026. On the example db.m6g.large, every month of delay costs about $356. If the account has several 8.0 databases, start with the largest by vCPU count, standby included, since the charge scales with it.&lt;/p&gt;

&lt;p&gt;Move anything on Aurora MySQL 3 to Aurora MySQL 8.4 during 2027, ahead of the 30 April 2028 deadline.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://codelevel.pl/en/insights/mysql-8-rds-extended-support-charges/" rel="noopener noreferrer"&gt;codelevel.pl&lt;/a&gt;. Prices are net, for businesses. AWS, Hetzner and OVH are trademarks of their owners; CODELEVEL is not a partner, reseller or representative of any of them.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>finops</category>
      <category>cloud</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
