Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

Insight SQL Testing で実現する持続可能なバージョンアップ体制

Avatar for takumats takumats PRO
November 18, 2025

Insight SQL Testing で実現する持続可能なバージョンアップ体制

Aurora PostgreSQL 13(2026年2月標準サポート終了)や RDS for MySQL 8.0(2026年7月標準サポート終了)など、DBのサポート終了への対応は、特にクラウドDB利用では必須の課題です。​
本セッションでは、この課題を解決し、持続可能なバージョンアップ体制の構築を可能にするSQLテスト自動化ツール Insight SQL Testing をご紹介します。​
マルチDB対応の当ツールは、本番SQLトラフィック収集・比較により、非互換の洗い出し、性能劣化の検知、修正のサポートを自動化します。今回は、標準サポート終了が迫るバージョンで懸念される非互換の具体的な事例を取り上げ、Insight SQL Testingがいかにリスクを最小化するかを、実際の画面イメージもお見せしながら解説します。

Avatar for takumats

takumats PRO

November 18, 2025
Tweet

More Decks by takumats

Other Decks in Technology

Transcript

  1. © 2025 Insight Technology, Inc. • 松尾 拓真 - 株式会社インサイトテクノロジー

    - 製品本部 (札幌R&Dセンター ) • 担当製品 - Insight SQL Testing ほか、 - Insight Masking、Insight PISO など • AWS - 2025 Japan AWS Top Engineers (AI/ML Data Engineer) - 2025 AWS Ambassadors - 2 - 自己紹介
  2. © 2025 Insight Technology, Inc. - 3 - Agenda ⚫

    RDSバージョンアップ対応は計画的に ⚫ SQLテスト自動化ツール Insight SQL Testing ⚫ まとめ
  3. © 2025 Insight Technology, Inc. • PostgreSQLではRDSとAuroraは基本的に同タイミングで標準サポート終了 • PostgreSQL 11と12は既に標準サポートが終了

    • Aurora PostgreSQLの最新のLTSは16.8 (※2025年11月12日現在、日本語のLTSドキュメントでは15.10まで記載) - 5 - 直近のRDS/Aurora標準サポート終了 (PostgreSQL) 標準サポート終了日 延長サポートの終了日 Aurora PostgreSQL 11 2024 年 2 月 29 日(既に終了) 2027 年 3 月 31 日 Aurora PostgreSQL 12 2025 年 2 月 28 日(既に終了) 2028 年 2 月 29 日 Aurora PostgreSQL 13 2026 年 2 月 28 日 2029 年 2 月 28 日 Aurora PostgreSQL 14 2027 年 2 月 28 日 2030 年 2 月 28 日 Aurora PostgreSQL 15 2028 年 2 月 29 日 2031 年 2 月 28 日 Aurora PostgreSQL 16 2029 年 2 月 28 日 2032 年 2 月 28 日 https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/aurorapostgresql-release-calendar.html https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/PostgreSQLReleaseNotes/postgresql-release-calendar.html https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Updates.LTS.html
  4. © 2025 Insight Technology, Inc. - 6 - 直近のRDS/Aurora標準サポート終了 (MySQL)

    標準サポート終了日 延長サポートの終了日 Aurora MySQL 2 (5.7互換) 2024 年 10月 31 日(既に終了) 2027 年 2 月 28 日 Aurora MySQL 3 (8.0互換) 2028 年 4 月 30 日 2029 年 7 月 31 日 標準サポート終了日 延長サポートの終了日 RDS for MySQL 5.7 2024 年 2 月 29 日(既に終了) 2027 年 2 月 28 日 RDS for MySQL 8.0 2026 年 7 月 31 日 2029 年 7 月 31 日 RDS for MySQL 8.4 2029 年 7 月 31 日 2032 年 7 月 31 日 • Aurora MySQLの8.4互換バージョンは未発表 • Aurora MySQL 3の標準サポート終了日が2027年4月30日までだったものが更 新されていた https://docs.aws.amazon.com/AmazonRDS/latest/AuroraMySQLReleaseNotes/AuroraMySQL.release-calendars.html https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/MySQL.Concepts.VersionMgmt.html#MySQL.Concepts.VersionMgmt.ReleaseCalendar
  5. © 2025 Insight Technology, Inc. • SQLの仕様変更: - 構文チェックが厳しくなる -

    予約語の追加 • SQL実行結果が変わる: - 演算の仕様変更 - 関数の仕様変更 • 関数内でのエラーチェックの厳密化: - 動作仕様の変更 • 性能の変化: - オプティマイザ仕様変更による性能変化 - 8 - DBのバージョンアップでありがちな問題
  6. © 2025 Insight Technology, Inc. • DBの違いやバージョンアップにおける非互換情報などを確認 • アプリのソースコードから修正が必要な部分を探して修正対応 -

    ソースコードから必要箇所を探すのは容易か? - DBバージョンアップであれば通常はあまりクリティカルな変更はない、はず、、 • DB移行/バージョンアップ後のテストDBを用意 • テストシナリオに従って動作確認 - シナリオによっては膨大なテスト工数 - 発行され得るSQLをどれだけ網羅できている? - ほとんど問題ないであろう中でごくわずかにあるかもしれない問題を探す作業 軽めの確認をして「問題ないだろう」で バージョンアップを実施しているケースも多いのでは、、、、 - 9 - 一般的なDBバージョンアップの確認手順
  7. © 2025 Insight Technology, Inc. • 計画的なアップグレードサイクルの確立: - メジャーバージョンアップを数年ごとに計画に組み込み、開発サイクルに連動させる。 これにより、技術的負債化を防ぎ、緊急対応ではない安定的な実行体制を構築。

    • 継続的な非互換性の早期検出(シフトレフト): - アップグレード時だけでなく、日々の開発・テストで次のターゲットバージョンとの互 換性をチェックする。問題の早期発見(シフトレフト)により、直前の手戻りを回避。 • 本番同様のリハーサルによる確実性の確保: - 本番環境と同一構成・データの環境で、性能影響を測定。 • 手順の自動化と標準化: - バージョンアップの工程をIaCやスクリプトで自動化し、人的ミスを排除する。この手 順を標準化し、誰でも実行できる状態にすることで、持続的な運用を実現。 - 10 - バージョンアップを持続可能にするために、、、
  8. © 2025 Insight Technology, Inc. • 基本的な考え方 - アプリケーションから発行されるSQLに対して、 返す結果や実行速度などを含めて全く同じ挙動をするなら、

    DBエンジンやバージョンが変っても問題ない! • SQLテストとは? - SQLテストではこれまで運用し動作してきたSQLが アップグレード後も “きちんと” 動作するかを確認するテスト • SQLテストを活用すると - データベースバージョンアップ時のSQL互換性テスト - データベース移行時の移行アセスメント(アプリ改修コストの見積もり)に利用 SQLテスト活用によるバージョンアップテスト省力化 - 13 -
  9. © 2025 Insight Technology, Inc. SQLテストをどう実現する? 1. “これまで運用してきたSQL”(=テストケース) を集める 2.

    テスト用DBを用意する 3. 集めたSQLをテスト用DBに対して実行する 4. 実行した結果を確認する ➔ Insight SQL Testing を使うと簡単にできます SQLテストはどう実施するか? - 14 -
  10. © 2025 Insight Technology, Inc. 特許番号:第7295541号 特許名:情報処理システム、情報処理装置及び情報処理方法、並びにプログラム 概要:データベース移行テスト • 本番環境でアプリケーションが発行するSQLを自動収集

    (=テストケースの自動生成) • 収集したSQLをテスト - 構文チェック実行可否、実行結果比較(Select、更新DML)、実行速度比較 • テスト結果の確認・評価 - サマリー画面、生成AIによるエラー説明・修正案提示 Insight SQL Testingの機能 テスト環境 現行バージョン (現行環境) 現行バージョン (テスト環境) 新バージョン (テスト環境) - 16 -
  11. © 2025 Insight Technology, Inc. • SQL取得元(DB移行元、バージョンアップ元) - Oracle Database,

    RDS for Oracle - Microsoft SQL Server, RDS for SQL Server - PostgreSQL, Aurora PostgreSQL, RDS for PostgreSQL - MySQL, Aurora MySQL, RDS for MySQL - Insight PISOがサポートしている環境 - ※SQLを何らかの形で取得できればファイル連携が可能 • SQL実行先(DB移行先、バージョンアップ先) - Oracle Database (RDS, OCI, ..) - Microsoft SQL Server (RDS, Azure SQL, …) - PostgreSQL (RDS, Aurora, Azure, YugabyteDB, …) - MySQL (RDS, Aurora, Azure, TiDB, …) - Snowflake - 標準ライブラリで接続可能なものであれば “互換” データベースでも可 対応データベース ※SQL取得元の詳細についてはお問い合わせください ※現在DB2には対応しておりません - 17 -
  12. © 2025 Insight Technology, Inc. • 「PostgreSQL → PostgreSQL」「MySQL →

    MySQL」(バージョンアップ) - バージョンアップ時のSQL互換性確認 (特にRDSやAuroraのメジャーバージョンアップ) - 「Aurora MySQL 2 ➔ 3」や「Aurora PostgreSQL 12, 13 ➔ xx」など • 「Oracle → PostgreSQL」(移行) - 異なるデータベースへの移行 - オンプレのPostgreSQLではなく、ほぼRDSやAuroraをターゲットにされる • 「Oracle → Oracle」(バージョンアップ) - バージョンアップ時のSQL互換性確認 - オンプレ→オンプレ or オンプレ→RDS for Oracleも とくに多い使われ方や問い合わせ - 18 -
  13. © 2025 Insight Technology, Inc. - 19 - 一般的な構成 AWS

    Cloud Virtual private cloud (VPC) Private subnet Public subnet Insight SQL Testing Manager Server Test Database SQLs Existing database (Aurora MySQL 2) Amazon RDS API (or CloudWatch Logs API) SQLs general.log general.log Private subnet Aurora MySQL 2 Aurora MySQL 3 Bedrock AWS Marketplace テスト環境 現行環境
  14. © 2025 Insight Technology, Inc. • 標準:クエリーをgeneral.logに出力 (クラスターパラメータグループの変更) - RDS

    API経由、またはCloudWatch Logs API経由でInsight SQL Testingから自動取得 - ログファイルをコンソールなどからダウンロードしておき、ログファイルをアップロー ドしてSQLを取得することも可能 - スケジュール設定により継続的にSQL取得とテスト実行を実施することが可能 • その他の方法 - 監査ログやDAS(Database Activity Streams)などでSQL情報を既に取得している場 合、その情報からInsight SQL Testingへ取り込むためのCSVファイルへ変換して取り 込むことが可能 ※Databaseエンジンによりサポートしている取り込み方法が異なります RDS/AuroraからのSQL収集 - 20 -
  15. © 2025 Insight Technology, Inc. - 21 - https://www.insight-tec.com/case/coconala_0023/ Amazon

    Aurora MySQLへの移行で 限られた時間の中で8億を超えるSQLを網羅したテスト 導入事例:ココナラ様 株式会社ココナラ 個人のスキルや経験、知識を売り買い できる日本最大級のスキルマーケット 「ココナラ」を運営する株式会社ココ ナラ。スキルマーケットの会員数は 423万人を超え、450種類以上の幅広い カテゴリーに79万件以上のサービスが 登録されている。 導入背景 • ビジネスの主力であるココナラスキル マーケットの基幹システムに利用して いるデータベースであるAmazon RDS for MySQL 5.7を、ストレージ自体の IOPS(I/O毎秒)の限界とデータベー スのEOLから、Amazon Aurora MySQLへの移行を予定していた • 移行は内製でエンジニア2名体制とな るため、短期間で網羅的なテストを実 施するなど万全の準備で安心できる状 態にしたうえで移行を実施する必要が あった。 導入実績 • Insight SQL Testingを利用したことで、 8億以上もあるSQLの網羅的なテストが実現できた • Amazon RDS for MySQL 5.7の標準サポートが終了する前に テストを完了でき、安心して移行することができた Insight SQL Testing がなければ、限られた 時間の中で8億を超えるSQLを網羅したテストは できませんでした" “ ” システムプラットフォーム部 部長 川崎氏
  16. © 2025 Insight Technology, Inc. 1日に600万を超えるクエリが実行されるシステムの根幹である データベースにおいて、バージョンアップでの失敗は許されない 導入事例:リバスタ様 https://www.insight-tec.com/case/rvsta_0026/ 株式会社リバスタ

    『「つくる」の現場から、世界を変え る。』のミッションのもと、建設業界 が抱えるさまざまな課題をITで解決す るため、幅広いソリューションを提供 し新たなスタンダードを創造する――。 2007年に創業したリバスタの社名には、 「STANDARD(常識)をREVERSE (ひっくり返す)」との意味が込めら れている。電子マニフェストサービス の「e-reverse.com」、建設現場施工 管理サービスの「Buildee」、建設現場 ICT機器ソリューションの「BANKEN」 等のサービスを、主にSaaS(Software as a Service)モデルで提供している。 なかでも「e-reverse.com」は、ゼネ コンの完成工事高トップ100社のうち9 割以上の企業が導入するなど、圧倒的 なシェアを誇る。 導入背景 • 「Amazon Aurora MySQL バージ ョン2」の保守期限への対応 • 1日で600万クエリが発行される大 規模システムで、すべてのクエリ を手動でテストするのは非現実的 • バージョンアップ後も同様の性能 を発揮するかどうかを最重要視。 バージョンアップが原因でサービ スが停止すれば、顧客に多大な迷 惑がかかる 導入実績 • 本番環境で利用されるパターンのクエリをカバーし、実行エラ ーや並び順の違い、パフォーマンスの低下を自動で検出するの で、問題点の洗い出しが効率的に実施できた • 網羅的なSQLの検証はを現実的な時間で実施できた • 一時テーブルの使用方法変更によるメモリ不足の問題を早期発 見することができた • 検証期間を短縮することができた SQLの収集とテストを自動化する『Insight SQL Testing』は『Amazon Aurora MySQL』のバージョンア ップテストに最適なツールでした “ ” サービス開発本部 インテグレーション開発二部 副部長 兼 第一開発グループ長 丸山氏 - 22 -
  17. © 2025 Insight Technology, Inc. 23 © 2024 Insight Technology,

    Inc. 画面例:アセスメントサマリー
  18. © 2025 Insight Technology, Inc. 25 © 2024 Insight Technology,

    Inc. 画面例:エラーSQL(日付へ変換できないときの取り扱い変更)
  19. © 2025 Insight Technology, Inc. 26 © 2024 Insight Technology,

    Inc. 画面例:エラーSQL(日付へ変換できないときの取り扱い変更)
  20. © 2025 Insight Technology, Inc. 27 © 2024 Insight Technology,

    Inc. 画面例:結果が異なるSQL(GROUP BYによる暗黙的なソートがなくなった)
  21. © 2025 Insight Technology, Inc. 28 © 2024 Insight Technology,

    Inc. 画面例:結果が異なるSQL(GROUP BYによる暗黙的なソートがなくなった)
  22. © 2025 Insight Technology, Inc. Aurora PostgreSQL 13.9 ➔ Aurora

    PostgreSQL 16.8 バージョンアップの非互換の例
  23. © 2025 Insight Technology, Inc. Aurora PostgreSQL 13.9 ➔ 16.8

    バージョンアップ非互換の例 実行SQL 実行結果 SELECT 123abc; prepare p1(int,int,int) as update t1 set a = $1, b = $2where a = $3; select extract (minute FROM '2021-10-05'::date) SELECT array_to_tsvector(ARRAY['']) これらは全部 Aurora PostgreSQL 16.8 では実行できません! - 31 -
  24. © 2025 Insight Technology, Inc. Aurora PostgreSQL 13.9 ➔ 16.8

    バージョンアップ非互換の例 実行SQL 実行結果 SELECT 123abc; エラー 数値リテラルの後に続く非数値文字が禁止されました。 (PostgreSQL 15) prepare p1(int,int,int) as update t1 set a = $1, b = $2where a = $3; エラー 数値リテラルの後に続く非数値文字が禁止されました。 (PostgreSQL 15) select extract (minute FROM '2021-10-05'::date) エラー EXTRACT(date) は date型に含まれない部分を要求したとき にエラーを返すように変更。(PostgreSQL 14) SELECT array_to_tsvector(ARRAY['']) エラー array_to_tsvector()に空文字列の配列要素が渡された場合に エラーが発生するようになりました。 (PostgreSQL 15) これらは全部 Aurora PostgreSQL 16.8 では実行できません! - 38 -
  25. © 2025 Insight Technology, Inc. RDS for MySQL 8.0 ➔

    RDS for MySQL 8.4 バージョンアップ非互換の例
  26. © 2025 Insight Technology, Inc. RDS for MySQL 8.0 ➔

    8.4 バージョンアップ非互換の例 実行SQL 実行結果 create temporary TABLE table3 (PARALLEL int) create table tablesample (id int) select empno as parallel from emp create temporary TABLE $$tmp_table7 (id int) これらは全部 RDS for MySQL 8.4 では実行できません - 40 -
  27. © 2025 Insight Technology, Inc. RDS for MySQL 8.0 ➔

    8.4 バージョンアップ非互換の例 実行SQL 実行結果 create temporary TABLE table3 (PARALLEL int) エラー MySQL 8.4 で PARALLEL が予約語となりました。 create table tablesample (id int) エラー MySQL 8.4 で TABLESAMPLE が予約語となりました。 select empno as parallel from emp エラー MySQL 8.4 で PARALLEL が予約語となりました。 create temporary TABLE $$tmp_table7 (id int) エラー MySQL 8.4 で $ を識別子の先頭に使うことができなくなりま した。 これらは全部 RDS for MySQL 8.4 では実行できません - 43 -
  28. © 2025 Insight Technology, Inc. • バージョンアップを持続可能にするためには 計画と自動化/省力化 が重要 •

    Insight SQL Testingは “SQLテスト自動化ツール” であり、 SQLテストによりRDS/Auroraのバージョンアップテストを省力化 • 具体的な機能としては - SQL情報をAuroraのログから取得しテストケースを自動生成 - SQLテストの実行により以下を確認可能 ✓ 実行可否、エラー理由、SQL修正案 ✓ クエリ実行結果差異比較 ✓ クエリパフォーマンス比較 ✓ 実行計画取得 - 45 - Insight SQL Testing紹介まとめ