Cloud SQL のメンテナンスについて理解する: メンテナンスの必要性
Google Cloud Japan Team
※この投稿は米国時間 2021 年 8 月 18 日に、Google Cloud blog に投稿されたものの抄訳です。
私が Cloud SQL チームに参加して以来、サービスに関する質問のうち、お客様からいただく機会が圧倒的に多いのは「Cloud SQL のメンテナンス中にはどのようなことが起きますか」というものです。もっともな質問です。私も自分のデータベースの可用性に影響が出るようなことがあれば、知りたいと思うでしょう。
このブログシリーズでは、Cloud SQL のメンテナンスについて詳しくご説明します。パート 1 では、メンテナンスやその他のシステム更新によって、ユーザーのデータベース運用がいかにシンプルになるかをご案内します。パート 2 では、メンテナンス プロセスを順を追って説明し、データベースのダウンタイムを最小限に抑えるために行われたエンジニアリングの舞台裏をご紹介します。最後にパート 3 では、ユーザーが Cloud SQL のメンテナンス設定を使用し、またアプリケーションの設計を通して定期メンテナンスのエクスペリエンスを最適化する方法についてご説明します。
さっそく始めましょう。
Cloud SQL インスタンスとは
まず、Cloud SQL インスタンスを構成するシステム コンポーネントについて説明する必要があります。各 Cloud SQL インスタンスは、ホストである Google Cloud サーバー上で実行されている仮想マシン(VM)を利用しています。各 VM は、MySQL、PostgreSQL、SQL Server などのデータベース エンジンと、ロギングやモニタリングなどのサポート サービスを提供するサービス エージェントを実行します。高可用性オプションをご利用のユーザーの場合は、プライマリ VM と同じ構成で、同じリージョンの別のゾーンにスタンバイ VM が設定されます。データベースのデータは、スケーラビリティと耐久性に優れたネットワーク ストレージ デバイスに保存されます。このデバイスは永続ディスクと呼ばれ、VM にアタッチされます。最後に、静的 IP アドレスが各 VM に割り当てられます。これにより、アプリケーションの接続先 IP アドレスが、メンテナンスや自動フェイルオーバーの時間を含む、Cloud SQL インスタンスの全存続期間を通じて持続するようになります。
Cloud SQL インスタンスで行われるデータベースの更新とは
Cloud SQL インスタンスの利用期間中に行われる更新は 2 種類に分けられます。ユーザーが実行する構成の更新と、Cloud SQL が実行するシステムの更新です。
データベースの使用量が増加し、新しいワークロードが追加されるのに応じ、ユーザー側でデータベースの構成を更新することができます。こうした構成の更新には、コンピューティング リソースの追加、データベース フラグの変更、高可用性の有効化などが含まれます。こうした更新は、Cloud SQL を使用すればボタンをクリックするだけで可能ですが、構成を更新するとなるとダウンタイムが必要な場合があります。アプリケーションの可用性を総合的に考えるなら、ユーザーはこれらの構成の更新について事前に計画を練る必要があります。
データベース インスタンスの稼働状態を維持するには、構成の更新以外にも運用上の多くの作業が求められます。サーバーやディスクの交換およびアップグレードが必要ですし、新しい脆弱性が発見された場合には、オペレーティング システムにパッチを適用しなければなりません。データベース ソフトウェア プロバイダが新機能をリリースし、新しい問題を修正するたびに、データベース エンジンをアップグレードする必要も生じます。データベース管理者は通常、システムの信頼性と保護を維持し、常に最新の状態に保つために、これらの更新を定期的に行う必要があります。Cloud SQL はこうしたシステムの更新をユーザーに代わって処理するため、ユーザーはデータベース管理の工程を削減し、優れたアプリケーションの開発により多くの時間を費やすことが可能になります。実際、マネージド型のシステム更新は、多くの方に Google のマネージド サービスをご利用いただくきっかけとなっています。
システムの更新におけるメンテナンスの位置づけ
一般に、Cloud SQL のシステム更新は、ハードウェアの更新、オンラインの更新、メンテナンスの 3 つのカテゴリに分類されます。
ハードウェアの更新により、基盤となる物理インフラストラクチャが向上します。これには、不具合が発生したマシンホストの交換や、古いディスクの交換が含まれます。Google Cloud では、ユーザーのアプリケーションを中断することなくハードウェアの更新が行われます。たとえば、データベース サーバーを更新する場合、Google Cloud はライブ マイグレーションを使用します。これは、VM を実行中のまま、元のホストから新しいホストに確実に移行する高度なテクノロジーです。
オンラインの更新により、データベース エンジンと合わせて配置されるサポート サービス エージェントのソフトウェアが強化されます。この更新は、データベースが稼働してトラフィックを処理している間に実行されます。オンラインの更新により、ユーザーのアプリケーションにダウンタイムが発生することはありません。
メンテナンスにより、オペレーティング システムとデータベース エンジンが更新されます。これらの更新ではインスタンスを再起動する必要があるため、ダウンタイムが発生します。このため Cloud SQL では、アプリケーションへの影響が最も少ない時間帯にメンテナンスが行われるよう、ユーザーがスケジュールできるようになっています。
このように、Cloud SQL のシステム更新の大部分は、アプリケーションに影響を与えることなく行われます。唯一、システムのうちサービスを中断しなければ更新できない部分を更新する必要がある場合は、メンテナンスを注意深くスケジュールします。アプリケーションへの影響を緩和するため、重要な更新をまとめてメンテナンス イベントとして数か月に一度のペースでスケジュールしているほか、ユーザーのアプリケーションがすぐに稼働を再開できるよう、メンテナンスのワークフローも迅速に完了するように設計しています。これについては、パート 2 で詳しくご説明します。メンテナンスをより管理しやすくするために、メンテナンスの時間枠や不要期間などの設定も利用できます。こうした機能はパート 3 で取り上げます。
Cloud SQL の数々の強力な機能と合わせてメンテナンスを活用する方法について詳しくは、マネージド データベース サービスの価値をテーマにしたこちらのブログをご覧ください。
パート 2 では、メンテナンスの所要時間とそこで行われる更新の内容、ユーザーのインスタンスへの影響を最小限に抑える Cloud SQL の仕組みについて、詳しくご説明します。引き続きご注目ください。
-プロダクト マネージャー Akhil Jariwala