【Next Tokyo ’24】8/1 - 2 パシフィコ横浜にて開催!最新技術やトレンド、顧客事例、専門家によるセッションなど、ビジネス変革を加速させるヒントが満載です。

セルフマネージド MySQL と Cloud SQL for MySQL

MySQL は、世界で最も広く使用されているオープンソースのリレーショナル データベースの一つです。広く利用される理由の一つは、ユーザーのワークロード要件に合わせて、さまざまな方法でデータベースをホストおよび管理できることです。ユーザーは、データベースをオンプレミスでセルフマネージドにするか、クラウド上の仮想マシンでセルフマネージドにするか、クラウド プロバイダのフルマネージド サービスを使用するかを選択できます。この記事では、セルフマネージド MySQL オプションと、Google Cloud が提供するフルマネージド ソリューションの Cloud SQL for MySQL について説明します。それぞれの方法の長所と短所を説明します。

セルフマネージド MySQL

セルフマネージド MySQL オプションとは、データベース、オペレーションシステム(OS)、ネットワーク、ストレージ、仮想マシン(VM)インスタンス、およびデータベース インスタンスとサーバーをホストするハードウェアのセットアップ、インストール、構成、メンテナンスに関連するアクティビティのほとんどを、ユーザー(ほとんどの場合はデータベース管理者)が担当することを意味します。ハードウェア、VM インスタンス、ストレージ、ネットワーキング、オペレーティング システムのタスクなど、これらのタスクの一部は、Google Cloud のようなクラウド サービス プロバイダを活用することでより簡単に達成できます。ユーザーがオンプレミスのデータベースを自分で管理する場合でも、クラウドで自分で管理する場合でも、システムのスムーズな運用に必要ないくつかの主要なデータベース管理タスクは、ユーザーが担当します。以下のようなタスクがあります。

  • 可用性: ハードウェアとソフトウェアのコンポーネントは必ず障害となります。ただし、ハードウェアとソフトウェアの障害に耐え、データベース、サーバー、アプリケーションの継続的な可用性を確保できるようにシステムを設計する責任は、ユーザーにあります。 
  • データベースのメンテナンス: セルフマネージド MySQL オプションでは、ユーザーはアプリケーション スタックのさまざまなレイヤをソフトウェアの最新バージョンに更新し、ハードウェア、オペレーティング システム、その他のソフトウェアのサポート終了バージョン、サポート対象外バージョン、以前のバージョンのサポートを決定する必要があります。さらに、ユーザーはデータベースを大きな中断なく稼働させながら、ソフトウェア、OS、MySQL のパッチを定期的にインストールする必要があります。
  • スケーラビリティ: 時間の経過とともにアプリケーションの使用量が増加するにつれて、データベースのパフォーマンスを向上させる必要性が高まります。同様に、大規模なワークロードや顧客ベースをサポートするために、ハードウェア リソースをスケールアップまたはスケールアウトする必要があります。 セルフマネージド MySQL では、ユーザーが責任を負います。オンプレミス環境でのハードウェア リソースのスケーリングは、非常に時間がかかり複雑な作業であり、場合によってはシステムのダウンタイムが発生します。
  • セキュリティ: 最近では、ハードウェアの物理的保護をはじめ、ネットワーク ファイアウォールの構成、データベース接続の保護など、データベース システムの複数のレイヤにまたがるセキュリティが最も重要な要素となっています。セルフマネージド設定の場合、これらは、多大な労力と専門知識を必要とする複雑なアクティビティです。
  • モニタリング: MySQL のセットアップ、インストール、構成とは別に、ユーザーは、ハードウェア レベル、OS、MySQL でのモニタリングなど、スタックのすべてのレイヤ全体でさまざまなコンポーネントのモニタリングを行い、障害発生時の是正措置を行う必要があります。

下の図は、セルフマネージド設定を選択した場合のユーザーの責任を示しています。Google Cloud の自己管理により、ハードウェア、コンピューティング、ネットワーキング、ストレージに関連する一部のタスクは軽減されますが、スタックの残りのレイヤの管理責任は、引き続きユーザーが負います。データベース管理者とアプリケーション開発者は、MySQL の管理に十分な時間、エネルギー、リソースを費やす必要があります。

データベース管理者のすべての責任がセルフマネージド データベース ホスティングであることを示す画像

Cloud SQL for MySQL とは

Cloud SQL は、Google Cloud 上で MySQL、PostgreSQL、SQL Server データベースの設定構成、メンテナンス、管理、アドミニストレーションを簡単に行うためのフルマネージド データベース サービスですCloud SQL は、MySQL データベースのハードウェア、ネットワーク、OS、セキュリティ、モニタリング、メンテナンス、可用性、スケーリングに関するあらゆる側面を管理します。これらの責務はすべてユーザーの目につかないため、ユーザーはアプリケーションの開発と顧客への価値の提供に集中できます。

以下の図は、MySQL データベースのさまざまなレイヤの管理にかかわるタスクを示していますが、唯一異なる点は、Cloud SQL がユーザーに代わって管理するすべてのタスクが青色で示されています。

フルマネージド データベース ホスティングの画像

Cloud SQL には、上に示した多くのタスクを管理する以外にも、セルフマネージド環境でネイティブには利用できないさまざまな機能やソリューションが用意されています。Cloud SQL の主な機能は次のとおりです。

信頼性: バックアップと復元はデータベース管理で最も重要な作業です。Cloud SQL には自動バックアップオンデマンド バックアップが用意されており、破損した場合にデータベースを特定の時点に復元できます。予期せぬデータ変更が発生したりします。

可用性: Cloud SQL は、複数のゾーンにわたってデータベースをホストする複数のサーバーをインスタンス化し、自動フェイルオーバー機能によって VM やデータセンターに障害が発生した場合に高可用性を提供します。Cloud SQL は、世界のどこにいても 99.95% を超える可用性を保証しています。

高可用性機能に加えて、Cloud SQL は 24 時間 365 日対応のサイト信頼性エンジニアリング(SRE)チームを提供し、Google Cloud 上の Cloud SQL for MySQL データベース インスタンスの信頼性を確保しています。

クロスリージョン リードレプリカも、障害時の障害復旧メカニズムとして使用できる機能です。これにより、ビジネスへの影響を最小限に抑えながら、影響を受けるデータベースを別のサイト(リージョン)ですばやく起動できます。

スケーラビリティ: Cloud SQL では、同じリージョンまたはリモート リージョンで MySQL の読み取り専用インスタンスなどの MySQL リードレプリカを作成して、読み取りパフォーマンスを向上させます。リードレプリカはレポート作成の目的で使用することも、ビジネスニーズが満たされた後に破棄することもできます。

Cloud SQL では、最小限のダウンタイムでリソース(CPU、メモリ、ストレージ)をスケールアップし、MySQL インスタンス上のリソースをスケールダウンできます。一方、セルフマネージド設定の場合、これらの複雑な作業には多大な労力、専門知識、計画が必要になります。

セキュリティ: Cloud SQL for MySQL データベース サーバーは、最高レベルのセキュリティを保証する Google Cloud の安全なデータセンターに配置されています。さらに、Google Cloud は Virtual Private Cloud によるプライベート接続と、ファイアウォールで保護されたユーザー制御のネットワーク アクセスも提供します。これにより、悪意のある行為者の手の届かない場所にユーザー データベース サーバーが配置されるようになります。

セキュリティのもう一つの側面は、セキュリティ規制の遵守です。Cloud SQL は、SSAE 16、ISO 27001、PCI DSS、HIPAA など、広く知られている規制を遵守しています。

Cloud SQL では、IAM の統合により、ユーザーとデータベースへのアクセス権を管理できます。このインテグレーションは、Google Cloud のユーザーの認可と認証を管理し、特定の Google Cloud リソースに対するきめ細かなアクセスを提供することで、データベースへの不正アクセスを防止します。さらに、Cloud SQL では、Cloud SQL リソースへのアクセスを制御するように設計された事前定義ロールが提供されるため、ID とアクセス制御を簡単に管理できます。

Cloud SQL の別つのセキュリティ機能は、保存中および転送中のデータを暗号化して、権限のないユーザーがユーザーデータにアクセスできないようにすることです。

Cloud SQL にはデータベース ユーザー向けのパスワード検証機能が備わっています。この機能により、お客様はパスワードの複雑さ、パスワードの最小長、パスワード変更間隔、インスタンス レベルでのパスワードでのユーザー名の使用に関するパスワード ポリシーを定義できます。お客様は、パスワードの有効期限、パスワードの入力失敗回数、以前のパスワード変更要件に関するポリシーを個々のユーザーレベルで定義することもできます。Cloud SQL のこれらの機能は、セキュリティ コンプライアンスのベスト プラクティスを提供し、重要なデータに対する不正アクセスのリスクを軽減します。

Cloud SQL では、監査ログプラグインを使用して、MySQL データベースに対するアクションとオペレーションを監査することもできます。監査ログでは、いつ、誰が、どのオブジェクトに対して、どのような操作を行ったかについての分析情報を提供します。データベース監査を使用すると、テーブルの更新、読み取りクエリ、ユーザー権限の付与など、データベース内の特定のユーザー アクションを追跡できます。

オブザーバビリティ: Cloud SQL はさまざまなモニタリング ソリューションを提供し、データベースの状態に関する分析情報を提供するすぐに使える指標のリストを拡張しています。ユーザーは指標を使用してアラートを作成し、管理者がデータベースの健全性を常に把握できるようにします。

Cloud SQL は Query InsightsRecommender などの機能も提供し、ユーザーが、クエリまたはワークロードのパフォーマンスのボトルネックをトラブルシューティングして特定できるようにします。これらの機能は、セルフマネージド MySQL 環境では実現が困難です。

インテグレーション: Cloud SQL は、Google Kubernetes EngineCompute EngineCloud Runなど、Google Cloud 内の他のサービスとの簡単なネットワーク接続と統合を提供しており、緊密に統合されたソリューションを簡単に開発できます。Cloud SQL は、BigQuery および Looker とネイティブに統合されており、Cloud SQL 内に存在するデータの分析処理に使用できます。

パッチ適用: Cloud SQL はマネージド サービスとしてインスタンスを自動的に更新し、基盤となるハードウェアとオペレーティング システムの信頼性、パフォーマンス、安全、最新性を確保します。これらの更新のほとんどは、Cloud SQL インスタンスの稼働中に行われます。ただし、システム アップデートによっては、サービスの短い中断が必要になる場合があります。そのため、ユーザーはアップグレード アクティビティのメンテナンスの時間枠を定義できます。

バージョンのアップグレード: Cloud SQL では、データベース(MySQL)のバージョンを自動的にアップグレードするプロセスも用意されています。ユーザーは、データを上位のバージョンのインスタンスに移行して、メジャー バージョンをアップグレードすることもできます。  

Cloud SQL for MySQL で MySQL データベース インスタンスを作成する方法

セルフマネージド MySQL の長所と短所

メリット

  1. MariaDB や Percona などの MySQL エコシステムからの任意の MySQL フォーク を使用して MySQL を設定できます。
  2. ユーザーがインスタンス、リソース、オペレーティング システムを完全に制御できるため、MySQL の構成と設定が柔軟に行えます。さらに、ユーザーは任意の OS を使用し、必要に応じて OS を構成し、必要に応じて制限なしで MySQL を構成できます。
  3. ユーザーが Cloud SQL の制限(最大ストレージ サイズ 64 TB など)による制約を受けません。ユーザーは、64 TB のストレージ上限を超えて、はるかに高いコンピューティング インフラストラクチャを使用して MySQL をホストできます。
  4. ユーザーは、MySQL インスタンスに対する完全アクセス権(SUPER 権限を含む)と、オペレーティング システム(sudo 権限を含む)に対する完全アクセス権を持ちます。
  5. ユーザーは、Cloud SQL でサポートされていない場合でも、要件に応じて高可用性とレプリケーション トポロジを設定できます。

短所

  1. ユーザーは、オンプレミス環境での複雑なハードウェア インフラストラクチャ、ネットワーク、データセンター オペレーションの管理を担当します。クラウドで MySQL を自己管理する場合であっても、ユーザーは、複雑な設定、永続ディスクとインスタンスの構成を行い、高可用性クラスタの設計と管理、セキュリティ、障害復旧およびスケーラビリティに対応する必要があります。
  2. バグやセキュリティの脆弱性を回避するため、データベースのバージョン、オペレーティング システムのバージョン、ハードウェア システムを最新のパッチで更新することは、コスト、リソース、複雑さ、ダウンタイムの大幅な増加をもたらす可能性があります。
  3. データベースの設定とともに、ユーザーはデータベース自体だけでなく、すべてのレイヤでセキュリティを構成して管理する必要があります。たとえば、SSL を使用して転送中の接続が確実に暗号化されるようにする、証明書を最新の状態に保つ、保存データを暗号化する、ユーザーとサービス アカウントのデータベースへのログイン アクセスを管理するといったことが含まれます。
  4. インスタンスの可用性を確保するために、データベース システムのさまざまなレイヤで障害が発生していないかモニタリングする必要があります。ユーザーは、モニタリング ツールの設定と構成に追加のリソースを費やす必要があります。アラートは、エラー発生時に通知するよう定義し、エラーがあれば是正措置を取る必要があります。
  5. ユーザーは、アプリケーション開発に集中する代わりに、データベースの設定と管理に多くの時間、リソース、労力を費やす必要があります。

Cloud SQL for MySQL の長所と短所

長所

  1. Cloud SQL for MySQL は、データベースに関する専門知識がないデベロッパーやエンジニアにも、MySQL データベースを作成、管理、アクセス、モニタリングするためのユーザー フレンドリーなインターフェースを提供します。Cloud SQL では、すぐに使い始めることができるように、既存の MySQL データベースをオンプレミスや他のクラウドから Google Cloud の Cloud SQL for MySQL に簡単に移行することもできます。
  2. Cloud SQL for MySQL は、マイクロサイト用のデータベースから、極めて重要で大規模なエンタープライズ アプリケーション、ゲーム アプリケーション、分析ユースケース用のデータまで、さまざまなアプリケーション向けの MySQL データベースのホスティングに必要な豊富な機能セットを提供します。これらの豊富な機能を使用することで、ユーザーは信頼性とスケーラビリティに優れたアプリケーションを構築できます。
  3. Cloud SQL は、セキュリティの責任をユーザーと共有します。Cloud SQL は下位レベルのインフラストラクチャやネットワークでもセキュリティを確保できるため、ユーザーは上位レベルのアプリケーションの構成と開発に集中できます。
  4. Cloud SQL には、パスワード検証プラグイン監査ロギングなどのさまざまなセキュリティ機能がありますが、これらはコミュニティ バージョンではすぐには利用できず、セルフマネージド環境での実装が複雑です。Cloud SQL はこれらの機能を簡素化し、ユーザーが簡単に利用できるようにします。
  5. Cloud SQL では、さまざまな方法でデータベースを操作できます。ユーザーは、GUI、CLI、API を使用して、最小限の労力で、ニーズに応じてオペレーションをカスタマイズできます。
  6. Cloud SQL は BigQuery などの他のソリューションやプロダクトと簡単に統合できるため、最小限の労力で分析ソリューションを開発できます。
  7. Cloud SQL は、可用性の高いインフラストラクチャ、自己修復ソリューション、そして最も重要な 24 時間 365 日対応の SRE チームによって、データベース インスタンスの信頼性に対する責任を引き受けます。
  8. ユーザーはデータベースの運用タスクに費やす時間と労力を減らし、代わりにアプリケーション開発に集中することで、ビジネスニーズをより効率的に満たすソリューションを提供できるようになります。
  9. Cloud SQL はデータベースの管理を支援するだけでなく、Query Insights推奨事項などの機能を使用してデータベースのパフォーマンスを改善するためのヒントと推奨事項も提供します。これらの機能により、クラウド上でのデータベースのホスティングと管理が、シンプルかつ安全で、費用対効果の高いものになります。
  10. Cloud SQL は、データベースに関連する問題やリクエストに必要なサポートを簡素化、合理化するために、カスタマーケア サービスを提供しています。

短所

  1. MariaDB や Percona などの MySQL エコシステムからの MySQL フォークは、Cloud SQL ではサポートされていません。
  2. MySQL の一部の機能はサポートされていません。詳しくは、サポートされていない機能をご確認ください。
  3. Cloud SQL では、最大 624 GB の RAM と 96 個の CPU を備えたマシンタイプがサポートされています。最大 64 TB のストレージがサポートされています。今のところ、データベースに大容量が必要な場合は、セルフマネージド オプションが唯一の選択肢になります。

次のステップ

$300 分の無料クレジットと 20 以上の Always Free プロダクトを活用して、Google Cloud で構築を開始しましょう。

Google Cloud
  • ‪English‬
  • ‪Deutsch‬
  • ‪Español‬
  • ‪Español (Latinoamérica)‬
  • ‪Français‬
  • ‪Indonesia‬
  • ‪Italiano‬
  • ‪Português (Brasil)‬
  • ‪简体中文‬
  • ‪繁體中文‬
  • ‪日本語‬
  • ‪한국어‬
コンソール
  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud