{"id":73387,"date":"2025-08-26T21:46:33","date_gmt":"2025-08-26T16:16:33","guid":{"rendered":"https:\/\/www.tothenew.com\/blog\/?p=73387"},"modified":"2025-08-27T15:49:28","modified_gmt":"2025-08-27T10:19:28","slug":"stop-paying-extra-how-we-helped-an-ad-tech-company-cut-aws-rds-costs-by-upgrading-from-mysql-5-7","status":"publish","type":"post","link":"https:\/\/www.tothenew.com\/blog\/stop-paying-extra-how-we-helped-an-ad-tech-company-cut-aws-rds-costs-by-upgrading-from-mysql-5-7\/","title":{"rendered":"Stop Paying Extra: How We Helped an Ad-Tech Company Cut AWS RDS Costs by Upgrading from MySQL 5.7"},"content":{"rendered":"<h2><span style=\"text-decoration: underline;\">Introduction<\/span><\/h2>\n<p>If you&#8217;re still running MySQL 5.7 on Amazon RDS, it&#8217;s time to act. AWS started charging for <strong>Extended Support in March 2024<\/strong>. By mid-2025, that charge is no longer theoretical, and paying for it is kind of unacceptable. You&#8217;re likely already paying for it, and the cost will double by the end of this year.<\/p>\n<div id=\"attachment_73389\" style=\"width: 958px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-73389\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-73389 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2025\/07\/Screenshot-2025-07-20-at-12.49.32\u202fPM.png\" alt=\"Migrating from MySQL 5.7 on Amazon RDS\" width=\"948\" height=\"480\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2025\/07\/Screenshot-2025-07-20-at-12.49.32\u202fPM.png 948w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/Screenshot-2025-07-20-at-12.49.32\u202fPM-300x152.png 300w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/Screenshot-2025-07-20-at-12.49.32\u202fPM-768x389.png 768w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/Screenshot-2025-07-20-at-12.49.32\u202fPM-624x316.png 624w\" sizes=\"(max-width: 948px) 100vw, 948px\" \/><p id=\"caption-attachment-73389\" class=\"wp-caption-text\">Migrating from MySQL 5.7 on Amazon RDS<\/p><\/div>\n<p>We recently helped a fast-growing ad-tech company migrate all of their MySQL 5.x RDS instances to MySQL 8.x, saving them over <strong>$3,000 per month<\/strong>. In this blog, I\u2019ll walk you through what changed, what we did, and how you can avoid these hidden charges too. Let\u2019s get started and explore this.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong>What Changed in RDS?<\/strong><\/span><\/h2>\n<p>MySQL 5.7 reached the end of standard support in <strong>October 2023,<\/strong> and AWS began charging for Extended Support in March 2024.<\/p>\n<p>The pricing:<\/p>\n<ul>\n<li><strong>$0.10 per vCPU-hour<\/strong> from March 2024 through December 2025.<\/li>\n<li><strong>$0.20 per vCPU-hour<\/strong> from January 2026 onwards.<\/li>\n<\/ul>\n<p>To put that in perspective:<br \/>\nIf your RDS instance has 8 vCPUs and runs 24\u00d77, you\u2019re paying around $576\/month right now, and that cost will double to $1,152\/month starting next year. That\u2019s just one RDS instance.<\/p>\n<h2><span style=\"text-decoration: underline;\">The Real-World Case: A Global Ad-Tech Company<\/span><\/h2>\n<p>We at TO THE NEW worked with a global ad-tech company that had more than 20 MySQL 5.7 RDS instances across production, qa, integration, and development environments.<\/p>\n<p>Here\u2019s what we discovered:<\/p>\n<ul>\n<li>Unaware: Many teams didn\u2019t know they were still on MySQL 5.7.<\/li>\n<li>FinOps Nightmare: Several non-prod DBs were oversized and running 24\u00d77.<\/li>\n<li>Rising Cost: If left untouched, extended support charges would\u2019ve crossed $3,000\/month.\n<p><div id=\"attachment_73390\" style=\"width: 1610px\" class=\"wp-caption aligncenter\"><img aria-describedby=\"caption-attachment-73390\" decoding=\"async\" loading=\"lazy\" class=\"wp-image-73390 size-full\" src=\"https:\/\/www.tothenew.com\/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12.png\" alt=\"AWS RDS Extended Support Cost\" width=\"1600\" height=\"117\" srcset=\"\/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12.png 1600w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12-300x22.png 300w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12-1024x75.png 1024w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12-768x56.png 768w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12-1536x112.png 1536w, \/blog\/wp-ttn-blog\/uploads\/2025\/07\/unnamed-12-624x46.png 624w\" sizes=\"(max-width: 1600px) 100vw, 1600px\" \/><p id=\"caption-attachment-73390\" class=\"wp-caption-text\">AWS RDS Extended Support Cost<\/p><\/div><\/li>\n<\/ul>\n<h2><span style=\"text-decoration: underline;\"><strong>What We Did<\/strong><\/span><\/h2>\n<ul>\n<li>Identified all RDS instances still running MySQL 5.7.<\/li>\n<li>Planned upgrades with minimal downtime.<\/li>\n<li>For production mysql upgrades, we used RDS Blue\/Green deployments and snapshot testing.<\/li>\n<li>For dev\/staging and other lower environments, we used the mysql dump-and-restore method, accepting a little downtime.<\/li>\n<li>Decommissioned old, unused, and idle databases.<\/li>\n<li>Upgraded all environments to MySQL 8.0.<\/li>\n<\/ul>\n<h2><span style=\"text-decoration: underline;\">The Results<\/span><\/h2>\n<ul>\n<li>Saved over <strong>$3,000\/month<\/strong> in AWS charges.<\/li>\n<li>Avoided future cost spikes as the per-CPU pricing doubles in January 2026.<\/li>\n<li>Improved performance in several use cases thanks to mysql engine-level enhancements.<\/li>\n<li>We took this opportunity to migrate non-graviton RDS to <strong>graviton<\/strong>, which gave us more savings and better performance.<\/li>\n<li>Gained better visibility into RDS usage with consistent tagging and version tracking.<\/li>\n<\/ul>\n<h2><span style=\"text-decoration: underline;\"><strong>Why MySQL 8.x Was More Than Just a Cost Fix<\/strong><\/span><\/h2>\n<ul>\n<li>We upgraded to save money, but the performance boost was the surprise win. A few things we noticed right away:<\/li>\n<li>Queries using GROUP BY and joins ran significantly faster.<\/li>\n<li>The JSON column performance was much improved.<\/li>\n<li>New features like CTEs (common table expressions) and window functions made life easier for analysts.<\/li>\n<li>Better indexing behavior and performance schema insights.<\/li>\n<\/ul>\n<p>For many teams, this was the first time they wanted to upgrade a database. That\u2019s rare.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong>Key Lessons<\/strong><\/span><\/h2>\n<ul>\n<li>Non-prod environments are often ignored, but AWS still charges for them.<\/li>\n<li>Upgrade risks are lower than most teams assume, especially with snapshot-based testing.<\/li>\n<li>Extended Support is a silent cost leak \u2014 easy to miss until the bill hits.<\/li>\n<\/ul>\n<h2><span style=\"text-decoration: underline;\"><strong>What You Can Do Right Now<\/strong><\/span><\/h2>\n<p>1. Find All MySQL 5.7 Instances.<br \/>\nRun this command to list outdated RDS databases:<\/p>\n<pre>aws rds describe-db-instances \\\r\n--query \"DBInstances[?Engine=='mysql' &amp;&amp; starts_with(EngineVersion, '5.7')].[DBInstanceIdentifier, EngineVersion]\"<\/pre>\n<p>2. Test the Upgrade in Staging or Dev.<br \/>\nUse snapshots or clone the DB, then upgrade manually to validate behavior.<\/p>\n<p>3. Upgrade Production with Care:<\/p>\n<ul>\n<li>Use <strong>RDS Blue\/Green<\/strong> deployments<\/li>\n<li>Schedule migration and downtime carefully<\/li>\n<li>Communicate early with all stakeholders.<\/li>\n<\/ul>\n<p>4. Clean Up What You Don\u2019t Need<br \/>\nIdentify and terminate idle RDS instances, especially in development environments.<\/p>\n<p>5. Use Scheduled Stopping for Non-Prod Databases<br \/>\nConsider stopping RDS over weekends or off-hours to reduce cost.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong>Final Thoughts<\/strong><\/span><\/h2>\n<p>Database upgrades are not fancy, but they\u2019re often where real savings hide. With a little planning, you can cut unnecessary spending, reduce risk, and modernize your stack in one move. At <a href=\"https:\/\/www.linkedin.com\/company\/tothenew\/\">To The New<\/a>, we help companies avoid these hidden AWS traps every day \u2014 whether it\u2019s RDS, MSK, S3, or NAT Gateway costs.<br \/>\nIf you&#8217;re still running <strong>MySQL 5.7 in 2025<\/strong>, you&#8217;re paying extra for being outdated. You don\u2019t need to be.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong>References (You\u2019ll Want to Click)<\/strong><\/span><\/h2>\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/rds\/extended-support\/\">RDS Extended Support Pricing<\/a><\/li>\n<li><a href=\"https:\/\/docs.aws.amazon.com\/AmazonRDS\/latest\/UserGuide\/rds-blue-green-deployments.html\">Blue\/Green Deployments Guide<\/a><\/li>\n<li><a href=\"https:\/\/endoflife.date\/mysql\">MySQL Version Lifecycle on AWS<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Introduction If you&#8217;re still running MySQL 5.7 on Amazon RDS, it&#8217;s time to act. AWS started charging for Extended Support in March 2024. By mid-2025, that charge is no longer theoretical, and paying for it is kind of unacceptable. You&#8217;re likely already paying for it, and the cost will double by the end of this [&hellip;]<\/p>\n","protected":false},"author":1601,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"iawp_total_views":57},"categories":[2348],"tags":[248,7634,7631,7633,5547,7502,5688,7632,1892,7541,5320,7630,1442,1585,2987],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/73387"}],"collection":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/users\/1601"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/comments?post=73387"}],"version-history":[{"count":2,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/73387\/revisions"}],"predecessor-version":[{"id":74350,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/posts\/73387\/revisions\/74350"}],"wp:attachment":[{"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/media?parent=73387"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/categories?post=73387"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tothenew.com\/blog\/wp-json\/wp\/v2\/tags?post=73387"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}