Aurora MySQLのような重要なデータベースのアップグレードは、慎重さが求められる作業です。パフォーマンスの向上やシステムの安定化が期待できる一方で、ダウンタイムやデータ損失のリスクも伴います。本記事では、SupremeTechがダウンタイム2時間以内・データ損失なしでAurora MySQLのアップグレードを完了させた6ステップのプロセスと、そこから得られた教訓を解説します。

本記事は、AWSとMegazoneCloudが主催したイベント「Harnessing AI on AWS: Transforming Software Builders for the Future」の午前セッションで、当社インフラマネージャーのPhuoc Phamが行った講演をもとにしています。このイベントは、ソフトウェア企業がAIを活用してイノベーションを起こし、パフォーマンスを高め、グローバルに成長するためのツール、戦略、実践的なソリューションを紹介するものです。Phuocは講演の中で、リスクを最小限に抑え、データを守り、効率を高める当社の6ステップのプロセスを紹介しました。

AWS・MegazoneCloudのイベントでのSupremeTechの登壇

SupremeTechはAWSおよびMegazoneCloudと提携(英語)し、技術的な課題を解決するための知見を共有しています。午前のセッションでは、Phuoc PhamがAurora MySQLアップグレードの教訓について発表し、ソフトウェア企業がインフラを最適化するための実践的なヒントを紹介しました。午後には、当社会長のTruong Dinh HoangがISV(独立系ソフトウェアベンダー)の今後のトレンドに関するパネルディスカッションに登壇し、成長とイノベーションのための戦略について語りました。

AWSとMegazoneCloudのイベントで行われたパネルディスカッション

午後のパネルディスカッションでは、Truong Dinh HoangがISVの市場拡大と今後のトレンドについて語りました。

Aurora MySQLアップグレードの課題

Phuocはまず、あるクライアントのAurora MySQLアップグレードで当社が直面した、実際の課題を共有しました。

  • ダウンタイムの最小化:必要な場合のロールバック時間も含めて、2時間以内に完了させる必要がありました。
  • システムの安定性:データベースは複数のサービスを支えているため、アップグレード後も安定して稼働し続けなければなりませんでした。
  • 迅速なロールバック:問題が起きた場合に、データを失うことなくすばやく元に戻せる手段が必要でした。
  • ユーザーへの影響:サービスの中断を最小限に抑え、お客様の信頼を維持するプロセスが求められました。

システムのアップグレードを経験したことがある方なら、思い当たる課題ではないでしょうか。これらを乗り越える鍵は、体系化され、十分にテストされたアップグレードプロセスにあります。

クライアントシステムのアップグレードにおける課題を説明するPhuoc Pham氏

クライアントシステムのアップグレードにおける課題を説明するPhuoc Pham

データベースアップグレードの6ステップ

SupremeTechでは、スムーズな移行を実現するために6つのステップでアップグレードを進めています。

ステップ1:アップグレード前に情報を収集・分析する

最も重要なのは準備です。変更を加える前に現在のデータベース構成を評価することで、潜在的なリスクを洗い出し、スムーズな移行に備えられます。

Phuocが特に重視したのは、次の項目の確認です。

  • データベーススキーマとオブジェクト:新バージョンとの競合がないことを確認します。
  • 接続しているアプリケーション:データベースを利用しているすべてのサービスを特定します。
  • カスタムデータベース設定:バージョン間のパラメータの変更点を比較します。
  • パフォーマンス指標:CPU、メモリ、クエリレイテンシ、トランザクション速度を監視します。

これらの情報は、データベースのログやセキュリティグループ、SHOW FULL PROCESSLISTなどのクエリを使って収集します。このステップが、スムーズなアップグレードの土台になります。

アップグレード前の情報収集と分析のステップを説明するスライド

6ステップのアップグレードプロセスの一部を紹介するPhuoc

ステップ2:C.I.D.D.E.Rフレームワークで最適なアップグレード手法を選ぶ

アップグレード手法はひとつではありません。システムの要件に応じて、次のいずれかを選択します。

  • Snapshot Restore:信頼性は高いものの、フルバックアップが必要でダウンタイムが長くなります。
  • Clone Cluster:すばやくロールバックできますが、追加のストレージが必要です。
  • In-Place Upgrade:ダウンタイムは最小限ですが、リスクは高くなります。
  • Blue/Green Deployment:最も安全にロールバックできますが、コストがかかります。

SupremeTechでは、C.I.D.D.E.Rフレームワークを使い、次の観点から最適な手法を判断しています。

  • Complexity(複雑さ):アップグレードの難易度はどの程度か?
  • Infrastructure Cost(インフラコスト):予算への影響はどれくらいか?
  • Downtime(ダウンタイム):どれくらいの時間がかかるか?
  • Dependencies(依存関係):データベースに依存しているものは何か?
  • Expertise(専門性):必要なスキルはチームにあるか?
  • Rollback Strategy(ロールバック戦略):どれだけ簡単に元に戻せるか?

適切なアップグレード手法を選ぶことで、リスクを抑え、時間を節約できます。今回のケースは、10GBのデータベースに複数のサービスが接続し、チームもまだ経験を積んでいる段階でした。そこで当社は、In-Place Upgradeを採用し、データベースクラスターのリネームで迅速にロールバックできるようClone Clusterによるバックアップを組み合わせました。これにより、エンドポイントを変えることなく、ダウンタイムを2時間以内に抑えることができました。

ステップ3:ドライランでテストする

「本番環境に勝る場所はない」と冗談を交えつつ、Phuocはリハーサルの必要性を強調しました。

ドライランとは、実際のユーザーに影響が出る前に問題を見つけるため、ステージング環境で行うテスト用のアップグレードです。当社では、クローンしたデータベースとDEV/STG環境でドライランを実施し、次のことを実現しています。

  • 本番環境に影響する前に問題を検出する
  • 想定外のダウンタイムを減らす
  • 実際のアップグレードにかかる時間を見積もる

このひと手間が、後のトラブルシューティングにかかる膨大な時間を削減します。

ステップ4:ドライランの結果をもとに調整する

テスト後は、次のようにプロセスを調整します。

  • データベース設定を調整する
  • ドライランで見つかったエラーを修正する
  • ダウンタイムを短くするために実行時間を短縮する
  • ロールバック手順を改善する
  • チーム向けの手順書を更新する

アップグレード前のわずかな調整が、アップグレード後の大きな問題を防ぎます。

ステップ5:本番環境でアップグレードを実施する

テストと調整がすべて完了したら、いよいよ本番環境でアップグレードを実行します。

成功させるためのポイントは次のとおりです。

  • トラフィックの少ない時間帯に実施する
  • ロールバック計画をすぐに実行できるよう準備しておく
  • ログをリアルタイムで監視し、エラーを確認する

明確な手順に沿ったデプロイ計画があれば、直前の想定外のトラブルを防げます。

ステップ6:アップグレード後に監視する

アップグレード後は、次のような主要な指標を追跡します。

  • リソース:CPU、メモリ、ディスク使用量
  • パフォーマンス:クエリの応答時間、QPS、TPS
  • エラー:不具合やスロークエリの有無
  • データ整合性:データの欠損や破損がないこと

アップグレード後も継続して監視することで問題を早期に発見でき、トラブルシューティングの時間を減らし、お客様への影響を最小限に抑えられます。当社では、新旧両方のデータベースの主要なパフォーマンス指標を監視して比較しています。さらに、レイテンシ、トラフィック、エラー、サチュレーションという4つのゴールデンシグナルも確認し、システムの健全性を総合的に把握しています。

SupremeTechでは、Amazon QなどのAIツールを活用してデータベースのログを分析し、手動での監視よりも速く異常を検知しています。

アップグレード後の監視が重要な理由:

  • 隠れたパフォーマンスの問題をすばやく特定できる
  • アップグレードが完全に成功したことを確認できる
  • データベースの効率をさらに最適化できる
パフォーマンス向上と顧客の信頼をテーマに講演するPhuoc Pham氏

アップグレードでは、パフォーマンスの向上とお客様の信頼が重要な評価基準になります。

結果と教訓

結果

この6ステップのプロセスに沿って、SupremeTechは次の成果とともにAurora MySQLのアップグレードを完了しました。

  • ダウンタイム2時間以内で完了
  • 計画の工夫によるインフラコストの削減
  • パフォーマンスの向上とお客様の信頼の向上

主な教訓

Phuocは講演の最後に、次のポイントをまとめました。

  • 準備がすべて:アップグレード前の情報収集と分析が、リスクを早期に発見する鍵です。
  • データ検証を計画する:しっかりとした検証計画でデータの整合性を確保します。
  • 適切なアプローチを選ぶ:クライアントの業務に合ったデプロイ方法とロールバック方法を選択します。
  • 監視を続ける:継続的な追跡で、問題に先手を打てます。
  • AIで自動化する:AIやツールを活用することで、スピードが上がりミスも減ります。

まとめ

データベースのアップグレードは、適切な準備、テスト、監視があれば、リスクの高いストレスの大きな作業である必要はありません。Phuoc Phamの講演で紹介したとおり、SupremeTechの6ステップのプロセスは、Aurora MySQLのアップグレードにおいてリスクを抑え、データを守りながら、システムをより強固にできることを示しています。

データベースのアップグレードを計画していて専門家のサポートが必要な場合は、SupremeTechまでお問い合わせください。業務を止めることなく、重要なデータベースのアップグレードを支援します。

AWSに関する関連記事: