セルフマネージド 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 データベース インスタンスの信頼性を確保しています。

クロスリージョン リードレプリカは、障害が発生した場合に障害復旧メカニズムとして使用できるもう 1 つの機能です。これにより、ビジネスへの影響を最小限に抑えながら、影響を受けたデータベースを別のサイト(リージョン)で迅速に立ち上げることができます。

スケーラビリティ: 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