【図解】Cloud SQL のメンテナンスを徹底解説!概要や対応方法、最新アップデートまで一挙に紹介
- Cloud SQL
- メンテナンス
本記事は、2021年9月9日に開催された Google の公式イベント「データクラウドサミット」において、データベーススペシャリストの江川大地氏が講演された「 Cloud SQL メンテナンスの本当のところ〜メンテナンスへの対応の仕方と最新アップデート〜」のレポート記事となります。
今回は Cloud SQL の概要をご紹介しながら、 Cloud SQL メンテナンスの概要やメンテナンスへの対応方法(ベストプラクティス)について、図解を交えてわかりやすくご説明します。 Cloud SQL に関心のある方は、ぜひ最後までご覧ください。
なお、本記事内で使用している画像に関しては、データクラウドサミット「 Cloud SQL メンテナンスの本当のところ〜メンテナンスへの対応の仕方と最新アップデート〜」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
Cloud SQL とは?
Cloud SQL はフルマネージドなリレーショナルデータベースサービスです。高可用性(レプリケーション)、バックアップ、暗号化、パッチ適用、容量増加などが組み込まれた RDBMS (リレーショナルデータベース管理システム)のマネージドサービスとなっています。クライアントやドライバーを用いた接続だけではなく、 Google Cloud (GCP)の各種サービスと容易に連携できる点が大きな特徴です。
例えば、データ分析基盤であるBigQueryと連携をしてCloud SQLに対してクエリを実行できます。これは、リアルタイム分析をする際に、大きく役立ちます。
Cloud SQL を利用するメリットとして、導入や運用のコスト・負荷を軽減できる点が挙げられます。一般的なデータベース管理システムでは、ラックの導入・管理やホストメンテナンス、 DB のバックアップと監視などを自社で対応する必要があります。しかし、 Cloud SQL のようなマネージドデータベースであれば、サーバー管理やスケーリング、バックアップなどをサービスの一部として提供しているため、運用コストや作業工数を気にせずに利用できます。
以下、 Cloud SQL のアーキテクチャを図で示します。
Application の向き先としては静的な IP が用意されており、この IP を通じて Cloud SQL の本体にアクセスすることが可能になります。上図の真ん中の部分が Cloud SQL の VM であり、内部的には Database のプロセスが動きつつ、 Cloud SQL として運用管理を行うための複数のエージェントが動いています。
そして、最下部の Disk に対して書き込みを行い、データの永続化を図ります。なお、 Cloud SQL の高可用性オプションを有効にした場合は、上図左側に記載されている HA Standby インスタンスが作られます。
リレーショナルデータベースに関心のある方は以下の記事が参考になります。
RDB(リレーショナルデータベース)とは?NoSQLデータベースとの違いを徹底解説
Cloud SQL に関心のある方は以下の記事が参考になります。
Cloud SQL とは何か?メリット、できること、データベースの移行方法まで徹底解説!
Cloud SQL メンテナンスの概要
一般的なデータベースにおけるメンテナンスや設定変更としては以下のような項目が挙げられます。
このように、データベースのメンテナンスや設定変更は多くの作業を伴いますが、 Cloud SQL を利用することで、これらの作業を簡素化し、業務負荷を軽減することができます。
以下、 Cloud SQL を活用した場合のイメージです。
パラメータの変更やコンピュートリソースの増強は Cloud SQL インスタンスの編集(設定変更)でユーザーによる数クリックの操作で変更可能ですし、ストレージ拡張は Cloud SQL インスタンスの設定をすることで自動で拡張します。さらに、サーバー・ディスクの交換や OS ・ DBMS に対するパッチ適用は Cloud SQL インスタンスのシステムアップデートとして、サービス側で自動的に対応します。
ここで、「システムアップデート」という言葉が出てきましたので、 Cloud SQL のシステムアップデートについて簡単にご説明します。
Cloud SQL では、以下内容のシステムアップデートを行なっています。具体的には、ハードウェアアップデートやオンラインアップデート、メンテナンスなどが挙げられます。ちなみにハードウェアアップデート、オンラインアップデートはダウンタイムなしでのアップデートが可能です。
ここからは、上図に記載のある「メンテナンス」について詳しく見ていきましょう。
Cloud SQL におけるメンテナンスとは、インスタンスを更新するためのソフトウェアロールアウトです。メンテナンスを実行することで、安全で高い信頼性、パフォーマンスを持つデータベースをユーザーに提供しています。
メンテナンスの具体的な内容としては、 Cloud SQL における新機能のリリースやデータベースバージョンのアップグレード、 OS パッチの適用などが挙げられます。数が多く記載されているため、頻繁に行われているイメージを持ってしまうかもしれませんが、まとめてできるメンテナンスはまとめて行っているため、そこまで頻繁に行われるものではありません。
Cloud SQL によるメンテナンス詳細(図解)
ここからは Cloud SQL のメンテナンス詳細や内部動作、ダウンタイムについて、図解を用いてわかりやすくご説明します。
Cloud SQL メンテナンスの内部動作
以下は Cloud SQL のアーキテクチャを図解したものです。メンテナンスを開始する前は、内部的にこの一般的なアーキテクチャとなっています。
実際にメンテナンスを開始すると、 Cloud SQL の裏側で最新のデータベースエンジンや OS を持つ新しい VM を準備し、ソフトウェアアップデートを行います。また、 HA 構成の場合は新しいスタンバイ VM も用意されます。アプリケーションは元々の Cloud SQL インスタンス( VM Original )へアクセスするため、この時点ではダウンタイムは発生しません。
続いて、図の最下部にある Disk をデタッチするための準備作業として、元々の VM を停止します。内部的には進行中のトランザクションをコミットし、既存の接続がなくなるまで待機します。
一定期間待機しても終了しないトランザクションに関してはロールバックします。なお、この間は新規の接続は受け入れ停止となります。以降、インスタンスへのアクセスは不可となり、ダウンタイムが発生します。
元々の VM が停止した段階で Disk をデタッチし、更新された新しい VM に対してアタッチします。このとき、静的 IP アドレスが更新された VM を指すように設定変更が入ります。なお、この間ダウンタイムは継続します。
次に Disk のアタッチが完了した更新された VM を起動します。同じ Disk を使用しているため、メンテナンス開始前に書き込まれたトランザクションが、メンテナンス後も更新されたインスタンスから使用可能になります。
ロールバックが完了しなかったトランザクションはないため、クラッシュリカバリは発生しません。なお、起動が完了するまでダウンタイムは継続します。
そして、 VM の起動が完了次第、新規の接続を受け入れ可能になります。この時点でダウンタイムは終了し、改めてデータベースとして利用できるようになります。
以上が Cloud SQL のメンテナンスの内部動作になります。
Cloud SQL のメンテナンスダウンタイム
Cloud SQL のダウンタイムは短く、かつ、継続して Google が改善を行なっています。直近1年間のダウンタイムの削減率は以下の通りです。
このように、エンジンごとに若干の違いはありますが、平均30秒〜120秒という短いダウンタイムとなっています。また、メンテナンスに要する時間を事前に把握できる点も Cloud SQL の強みとなっており、ダウンタイムを踏まえてエンドユーザーへ通知を行うことが可能なため、安心して利用することができます。
Cloud SQL のメンテナンスへの対応方法(ベストプラクティス)
最後に、メンテナンスに対してユーザーが実施できる作業や役立つ機能をご紹介します。
Cloud SQL には、メンテナンスをコントロールするための様々な機能が搭載されています。順番に詳しく見ていきましょう。
メンテナンスウィンドウ
メンテナンスウィンドウは、メンテナンスが実行される曜日や時間帯を指定する機能です。仮に指定しない場合、任意の時間帯にメンテナンスが実行されるため、必ず指定するようにしましょう。自社システムにとって、メンテナンスダウンタイムによる影響が最も小さいと思われる曜日・時間を設定することが大切です。
Cloud SQL インスタンスのメンテナンス事前通知
Cloud SQL インスタンスのメンテナンス事前通知は、メンテナンスをいち早く知るための設定です。メンテナンス実施日の1週間前までに通知を確認可能になります。なお、メンテナンスウィンドウを設定していない場合は通知がされないので、その点は注意しておきましょう。
更新の順序指定
更新の順序指定は、検証用インスタンスで事前にメンテナンスの準備をするための設定です。メンテナンスの実施時期を調整可能であり、以下のように様々な設定を行うことができます。
メンテナンスのリスケジュール
メンテナンスのリスケジュールは、不測の事態に対応するためのスケジュール指定であり、メンテナンス通知を受信後、実施日を変更することができます。日時を厳密にコントロールしたい場合は、任意の時間に「すぐに更新する」をクリックすることで適用可能です。
メンテナンス不要期間の設定
メンテナンス不要期間の設定は、メンテナンスを避けたい時期を設定することができるものです。この設定を行うことで、繁忙期のメンテナンスを回避するなど、自社に合わせたメンテナンス計画を立てられます。なお、メンテナンスの不要期間は1年間につき1回のみ(最大90日間)設定可能となっています。
その他の考慮事項
今回ご紹介した内容以外に考慮すべき事項をまとめました。メンテナンスにおいて大切なポイントになるので、確実に理解しておきましょう。
Cloud SQL に関する FAQ
Q.ダウンタイムなくメンテナンスを実施するための工夫はありますか?
A.結論から言うと、メンテナンスを実施する際にダウンタイムを完全に無くすことはできません。メンテナンスとは OS 部分や データベース部分へのパッチ適用であり、どうしても再起動を伴います。
しかし、この再起動時間については改善を重ねてきており、現在では、例えば Cloud SQL for PostgreSQL では平均 30 秒で再起動が完了するようになっています。一度メンテナンスがスケジュールされると、メンテナンス時間の変更が可能になるため、深夜など影響の少ない時間帯にメンテナンス再起動をスケジュールしてください。
また、稼働率の要件が非常に高く、メンテナンス再起動を一切受け入れられないシステム用のデータベースであれば、 Cloud SQL の代わりに Cloud Spanner をご検討ください。 Cloud Spanner はクラウド環境用に再設計して開発されたデータベースであり、メンテナンスによるダウンタイムを完全に無くしています。
Q.Maintenance Deny Periods は毎年決まった日付を繰り返し指定するように設定可能ですか?
A.コンソール画面から設定する際、「繰り返し」のオプションを有効にすることで可能になります。
Q.ライブマイグレーションとはどのようなものですか?
A.ライブマイグレーションとは、 VM の実行中に元のホストから別のホストに移行するテクノロジーです。 Google Cloud (GCP)では、これにより VM の処理を妨げることなく、インフラストラクチャのメンテナンスを行い、保護状態と信頼性を維持しています。
まとめ
本記事では、 Cloud SQL の概要をご紹介しながら、 Cloud SQL メンテナンスの概要やメンテナンスへの対応方法(ベストプラクティス)について、図解を交えてわかりやすくご説明しました。
一般的なデータベースのメンテナンスは多くの作業工数がかかりますが、 Cloud SQL は直感的かつ簡単にユーザーが操作できるように設計されています。また、パッチ適用などはシステムアップデートとしてサービス側で自動的に対応してくれます。
データ活用が強く叫ばれている現代において、データベースは欠かせないツールの一つとなっていますが、せっかくなら運用コストや工数を削減できる Cloud SQL を検討してみてはいかがでしょうか?企業が Cloud SQL を活用することで、メンテナンスコストの削減やデータベース管理の効率化など、様々なメリットを享受することができます。
Cloud SQL を使うには Google Cloud (GCP)を契約する必要がありますが、 Google Cloud (GCP)を契約するのであれば、トップゲートがオススメです。弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、
- Google Cloud (GCP)支払い代行
- システム構築からアプリケーション開発
- Google Cloud (GCP)運用サポート
- Google Cloud (GCP)に関する技術サポート、コンサルティング
など幅広くあなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!