[アップデート] 新しいLTSバージョンであるAmazon Aurora MySQL 3.10がリリースされました

[アップデート] 新しいLTSバージョンであるAmazon Aurora MySQL 3.10がリリースされました

早めにLTSバージョンにアップグレードの計画を立てよう
2025.08.31

新しいLTSバージョンが早く来てほしい

こんにちは、のんピ(@non____97)です。

皆さんは新しいAurora MySQL 3のLTSバージョンが早く来てほしいと思ったことはありますか? 私はあります。

Aurora MySQL 3のLTSバージョンは3.0.4です。2023/7/31にリリースされたMySQL 8.0.32互換のものです。リリースから2年近く経ち、機能的にもサポート期限的にも早く新しいLTSバージョンに移行したいと考えられた方も多いのではないでしょうか。

今回、 新しいLTSバージョンであるAmazon Aurora MySQL 3.10がリリースされました。

https://aws.amazon.com/jp/about-aws/whats-new/2025/08/amazon-aurora-mysql-3-10-as-long-term-support-release/

LTSリリースであるため少なくとも3年もしくはメジャーバージョンの標準サポート期間が終了するまで同じマイナーバージョンを使用することが可能です。

パッチレベルでは新しい機能は含まれないため「安定稼働している中に機能を追加されることで不具合が発生することを避けたい」という場合にもマッチします。

Aurora MySQLのサポート期限の整理

Aurora MySQLのサポート期限を整理します。

Aurora MySQL version Aurora MySQL release date Aurora MySQL end of standard support date
3.10 (Compatible with Community MySQL 8.0.42) (LTS) July 31, 2025 April 30, 2028
3.09 (Compatible with Community MySQL 8.0.40) May 14, 2025 May 14, 2026
3.08 (Compatible with Community MySQL 8.0.39) November 18, 2024 March 31, 2026
3.07 (Compatible with Community MySQL 8.0.36) June 4, 2024 August 31, 2025
3.06 (Compatible with Community MySQL 8.0.34) March 7, 2024 August 31, 2025
3.05 (Compatible with Community MySQL 8.0.32) October 25, 2023 August 31, 2025
3.04 (Compatible with Community MySQL 8.0.28) (LTS) July 31, 2023 October 31, 2026

抜粋 : Release calendars for Amazon Aurora MySQL - Amazon Aurora

Aurora MySQL 3.10.0の標準サポートは2028/4/30までとなっていますね。

Aurora MySQL 3の標準サポート期限が2028/4/30とAurora MySQL 3.10.0と一致しているので、Aurora MySQL 3.10.0がAurora MySQL 3の最後のLTSバージョンということになりそうです。

メジャーバージョンレベルでは以下のようにAWS CLIでも確認できます。

>  aws rds describe-db-major-engine-versions --engine aurora-mysql
{
    "DBMajorEngineVersions": [
        {
            "Engine": "aurora-mysql",
            "MajorEngineVersion": "5.7",
            "SupportedEngineLifecycles": [
                {
                    "LifecycleSupportName": "open-source-rds-standard-support",
                    "LifecycleSupportStartDate": "2018-02-06T00:00:00+00:00",
                    "LifecycleSupportEndDate": "2024-10-31T23:59:59.999000+00:00"
                },
                {
                    "LifecycleSupportName": "open-source-rds-extended-support",
                    "LifecycleSupportStartDate": "2024-11-01T00:00:00+00:00",
                    "LifecycleSupportEndDate": "2027-02-28T23:59:59.999000+00:00"
                }
            ]
        },
        {
            "Engine": "aurora-mysql",
            "MajorEngineVersion": "8.0",
            "SupportedEngineLifecycles": [
                {
                    "LifecycleSupportName": "open-source-rds-standard-support",
                    "LifecycleSupportStartDate": "2021-11-18T00:00:00+00:00",
                    "LifecycleSupportEndDate": "2028-04-30T23:59:59.999000+00:00"
                },
                {
                    "LifecycleSupportName": "open-source-rds-extended-support",
                    "LifecycleSupportStartDate": "2028-05-01T00:00:00+00:00",
                    "LifecycleSupportEndDate": "2029-07-31T23:59:59.999000+00:00"
                }
            ]
        }
    ]
}

Aurora MySQL 3.04からAurora MySQL 3.10までの主な機能追加

Aurora MySQL 3.04からAurora MySQL 3.10までの主な機能追加を確認します。

詳細はAWS公式ドキュメントをご覧ください。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.Updates.30Updates.html

3.05

  • Aurora MySQLデータベースクラスターのデータをSSE-KMSで暗号化されたAmazon S3バケット内のテキストファイルへの保存をサポート
  • タイムゾーン情報の現在のバージョンを示すaurora_tmz_versionグローバルステータス変数を追加

3.06

  • Amazon Bedrock統合サポートを追加
  • acceptaws_bedrock_invoke_modelaws_sagemaker_invoke_endpoint等の予約キーワード追加
  • 複数のセカンダリインデックスを持つ大きなテーブルのトランザクションをレプリケートする際のバイナリログレプリカのパフォーマンスの向上
  • ストアドプロシージャmysql.rds_set_read_onlyを追加
  • ストアドプロシージャmysql.rds_set_binlog_source_sslを追加
  • Truncating Undo Tablespacesの追加

3.07

  • FIPS検証済み暗号化サポートを追加
  • バイナリログレプリケーション用特権チェックユーザーrdsrepladmin_priv_checks_userを追加

3.08

  • InnoDB パージプロセスをモニタリング用に以下CloudWatchメトリクスを追加
    • PurgeBoundary
    • PurgeFinishedPoint
    • TruncateFinishedPoint
  • 最も古いアクティブな実行中トランザクションの経過時間であるTransactionAgeMaximumCloudWatchメトリクスの追加
  • OOM回避のために以下CloudWatchメトリクスが追加
    • AuroraMillisecondsSpentInOomRecovery
    • AuroraNumOomRecoverySuccessful
    • AuroraNumOomRecoveryTriggered
  • OOM回避のため以下CloudWatchメトリクスを実行合計から増分に変更
    • AuroraMemoryNumDeclinedSqlTotal
    • AuroraMemoryNumKillConnTotal
    • AuroraMemoryNumKillQueryTotal
  • 内部一時テーブルで使用されるメモリ量を示す以下グローバルステータス変数を追加
    • aurora_temptable_ram_allocation
    • aurora_temptable_max_ram_allocation
  • サーバーがメモリからトレースを消去する前に、オプティマイザトレースをエラーログに出力するシステム変数aurora_optimizer_trace_print_before_purgeの追加

3.09

  • Aurora MySQL Global Databaseにてセカンダリリーダーインスタンスが予期しないイベント中に起動を完了し、読み取りリクエストを処理できるように変更
  • Aurora MySQL Global Databaseのクロスリージョンスイッチオーバー中のWriterのダウンタイムを通常1分未満に短縮

3.10

  • バイナリログレプリカのメモリ内リレーログキャッシュのサポートが拡張
  • 最大ストレージ容量を 128 TiB から 256 TiB に増加

Aurora MySQL 3.10をサポートしているDBインスタンスクラス

Aurora MySQL 3.10をサポートしているDBインスタンスクラスは以下のとおりです。

  • db.serverless
  • db.x2g.large - db.x2g.16xlarge
  • db.r8g.large - db.r8g.48xlarge
  • db.r7g.large - db.r7g.16xlarge
  • db.r7i.large - db.r7i.48xlarge
  • db.r6g.large - db.r6g.16xlarge
  • db.r6i.large - db.r6i.32xlarge
  • db.r5.large - db.r5.24xlarge
  • db.t4g.medium - db.t4g.large
  • db.t3.medium - db.t3.large

参考 : Supported DB engines for DB instance classes - Amazon Aurora

特にdb.r8gを使用できるようになったのは嬉しいです。今までLTS版である3.0.4を使用している場合はdb.r7gまでしか使用できませんでした。

Aurora MySQL 3.10.0にアップグレードすることで、インフラ面の性能向上の恩恵を受けることができそうです。

Aurora MySQL 3.10のプロパティ

Aurora MySQL 3.10のプロパティも確認しておきます。

>  aws rds describe-db-engine-versions --engine aurora-mysql --engine-version 8.0.mysql_aurora.3.10.0
{
    "DBEngineVersions": [
        {
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.10.0",
            "DBParameterGroupFamily": "aurora-mysql8.0",
            "DBEngineDescription": "Aurora MySQL",
            "DBEngineVersionDescription": "Aurora MySQL 3.10.0 (compatible with MySQL 8.0.42)",
            "ValidUpgradeTarget": [],
            "ExportableLogTypes": [
                "audit",
                "error",
                "general",
                "iam-db-auth-error",
                "instance",
                "slowquery"
            ],
            "SupportsLogExportsToCloudwatchLogs": true,
            "SupportsReadReplica": false,
            "SupportedEngineModes": [
                "provisioned"
            ],
            "SupportedFeatureNames": [
                "Bedrock"
            ],
            "Status": "available",
            "SupportsParallelQuery": true,
            "SupportsGlobalDatabases": true,
            "MajorEngineVersion": "8.0",
            "SupportsBabelfish": false,
            "SupportsLimitlessDatabase": false,
            "SupportsCertificateRotationWithoutRestart": true,
            "SupportedCACertificateIdentifiers": [
                "rds-ca-ecc384-g1",
                "rds-ca-rsa4096-g1",
                "rds-ca-rsa2048-g1"
            ],
            "SupportsLocalWriteForwarding": true,
            "SupportsIntegrations": true,
            "ServerlessV2FeaturesSupport": {
                "MinCapacity": 0.0,
                "MaxCapacity": 256.0
            }
        }
    ]
}

触ってみた

Aurora MySQL 3.4.0の場合

Aurora MySQL 3系ではSELECT COUNT(*)が遅いという問題が知られています。

https://ca-srg.dev/5f1e696584b94b7fa848115ef7dae63e

https://ca-srg.dev/dba9a0f2aa9049259a9610274b258bf2

アップグレードによって改善されたのか確認してみます。

まずは、Aurora MySQL 3.0.4の場合です。

$ mysql -h database-304.cluster-cicjym7lykmq.us-east-1.rds.amazonaws.com -u admin -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 8.0.28 8a6fbbbd

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.28    |
+-----------+
1 row in set (0.001 sec)

MySQL [(none)]> SELECT aurora_version();
+------------------+
| aurora_version() |
+------------------+
| 3.04.4           |
+------------------+
1 row in set (0.001 sec)

bugs.mysqlで紹介されている手順で試します。

MySQL [non____97_db]> DROP SCHEMA IF EXISTS example;
Query OK, 0 rows affected (0.007 sec)

MySQL [non____97_db]> CREATE SCHEMA example;
Query OK, 1 row affected (0.002 sec)

MySQL [non____97_db]> USE example;
Database changed
MySQL [example]>
MySQL [example]> DROP TABLE IF EXISTS table1;
Query OK, 0 rows affected, 1 warning (0.001 sec)

MySQL [example]> CREATE TABLE table1
    -> (
    ->     id     INT AUTO_INCREMENT,
    ->     col_idx VARCHAR(28),
    ->     col_data  LONGTEXT,
    ->     PRIMARY KEY (id),
    ->     KEY `idx` (`col_idx`)
    -> ) CHARSET = utf8mb4
    ->   COLLATE = utf8mb4_general_ci;
Query OK, 0 rows affected (0.020 sec)

MySQL [example]>
MySQL [example]> DROP PROCEDURE IF EXISTS fill_data;
Query OK, 0 rows affected, 1 warning (0.000 sec)

MySQL [example]> DELIMITER //
MySQL [example]>
MySQL [example]> CREATE PROCEDURE fill_data()
    -> BEGIN
    ->     DECLARE i INT DEFAULT 0;
    ->     WHILE i < 100000
    ->         DO
    ->             INSERT INTO table1 (col_idx, col_data)
    ->             VALUES (REPEAT('a', 28),
    ->                     REPEAT('a', 5000));
    ->             SET i = i + 1;
    ->         END WHILE;
    -> END
    -> //
Query OK, 0 rows affected (0.003 sec)

MySQL [example]> DELIMITER ;
MySQL [example]> SET AUTOCOMMIT = true;
Query OK, 0 rows affected (0.000 sec)

MySQL [example]> call fill_data();
Query OK, 1 row affected (9.393 sec)

MySQL [example]> call fill_data();
Query OK, 1 row affected (9.564 sec)

MySQL [example]> call fill_data();
Query OK, 1 row affected (9.607 sec)

MySQL [example]> call fill_data();
Query OK, 1 row affected (10.555 sec)

MySQL [example]> call fill_data();
Query OK, 1 row affected (9.550 sec)

MySQL [example]> SELECT COUNT(*) FROM table1;
+----------+
| COUNT(*) |
+----------+
|   500000 |
+----------+
1 row in set (0.087 sec)

0.087秒と特に遅いとは感じないですね。

Aurora MySQL 3.10.0の場合

Aurora MySQL DBクラスターを3.0.4から3.10.0にインプレースアップグレードしました。

ログを確認すると、以下のように出力されていることからZDP(zero-downtime patching)でアップグレードされたことが分かります。

Attempt to upgrade the database instance 'database-304-instance-1' with zero downtime finished. The process took 14357 ms, 7 connections preserved, 0 connections dropped. See the database error log for details.

ZDPについては以下AWS公式ドキュメントをご覧ください。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.ZDP.html

既存のセッションは維持されたままでした。バージョンを確認します。

MySQL [example]> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.42    |
+-----------+
1 row in set (0.001 sec)

MySQL [example]> SELECT aurora_version();
+------------------+
| aurora_version() |
+------------------+
| 3.10.0           |
+------------------+
1 row in set (0.000 sec)

正常にアップグレードできていますね。

それではSELECT COUNT(*)を実行します。

MySQL [example]> SELECT COUNT(*) FROM table1;
+----------+
| COUNT(*) |
+----------+
|   500000 |
+----------+
1 row in set (0.375 sec)

MySQL [example]> SELECT COUNT(*) FROM table1;
+----------+
| COUNT(*) |
+----------+
|   500000 |
+----------+
1 row in set (0.078 sec)

MySQL [example]> SELECT COUNT(*) FROM table1;
+----------+
| COUNT(*) |
+----------+
|   500000 |
+----------+
1 row in set (0.098 sec)

MySQL [example]> SELECT COUNT(*) FROM table1;
+----------+
| COUNT(*) |
+----------+
|   500000 |
+----------+
1 row in set (0.081 sec)

一回だけ遅かったですが、それ以降は0.1秒未満で安定していました。

早めにLTSバージョンにアップグレードの計画を立てよう

新しいLTSバージョンであるAmazon Aurora MySQL 3.10のリリースを紹介しました。

早めにLTSバージョンにアップグレードの計画を立てましょう。

アップグレードする際は以下AWS公式ドキュメントが参考になります。

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.Patching.html

https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/blue-green-deployments.html

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.