🙌

Cloud SQL基礎

2024/06/02に公開

はじめに

こんにちは。hikaruです。
今回はCloudSQL基礎について解説していきます。
この記事では、以下の項目について記載します。

  • CloudSQLの基礎的な解説
  • コンソール画面からCloudSQLの構築
  • CloudSQL Studioを用いたCloudSQLへの接続

CloudSQLのネットワーク構成や、バックアップ、リストア等の解説は別記事で行いたいと思います。

Cloud SQLとは

Cloud SQLとは、Google Cloudで利用することができるフルマネージドなリレーショナルデータベースです。
利用できるデータベースエンジンは以下の三つになります。

  • MySQL
  • PostgreSQL
  • SQL Server

フルマネージドなため、OSレイヤーのインフラ管理から解放され、データベースエンジンのインストールやもモニタリング、アップデート、バックアップなどのデータベース管理、CPU/メモリの変更が少ない工数で行うことができます。

Cloud SQLインスタンスとは

Cloud SQLインスタンスは、ユーザ管理のネットワーク上(VPC内)のサーバに構築されるのではなく、Google Cloud側のネットワーク内のサーバ上で実行されている仮想マシン(VM)を利用します。
VM内には、データベースエンジン、ロギング、モニタリング等のサービスエージェントが存在し、高可用性のオプションを選択した場合、別ゾーンにプライマリVMと同一の構成を持つスタンバイVMが構築されます。
データベースのストレージは、ネットワークストレージ(persistent disk)に保存され、VMにアタッチされます。

https://cloud.google.com/sql/docs/introduction?hl=ja#what_is_a_instance

Cloud SQLのエディションについて

2023年7月13日にGoogle CloudからCloud SQLのEnterprisエディションとEnterprise PlusエディションがGAになりました。
2023年7月13日以前から存在していたCloudSQLは、自動的にEnterpriseエディションに移行されています。

  • Enterprisエディション

    • 従来のCloudSQLと同様のコスト、パフォーマンス、可用性が提供されます。
  • Enterpris Plusエディション

    • Enterprisエディションと比べて以下がメリットになります。
      • ローカルSSDによるデータキャッシュにより、読み取りパフォーマンスが最大3倍向上
      • 99.99%の高いSLA
      • メンテナンスによるダウンタイムが10秒と短い

より品質や性能が求められるワークロードでは、Enterpris Plusエディションが推奨されます。

https://cloud.google.com/blog/ja/products/databases/announcing-the-cloud-sql-enterprise-plus-edition-for-mysql-and-postgresql?hl=ja

EnterprisエディションとEnterprise Plusエディションの比較は以下の通りです。

項目 Enterprise Enterprise Plus
料金モデル Enterprise料金 Enterprise Plus料金
データベースバージョン MySQL 5.6,5.7,8.0
PostgreSQL 9.6,10,11,12,13,14,15
MySQL 8.0
PostgreSQL 12,13,14,15
マシンタイプ 汎用マシン ファミリー パフォーマンス最適化 N ファミリー
マシン構成の上限 最大96vCPU
最大624GBRAM
最大128vCPU
最大864GBRAM
SLA 99.95% 99.99%
メンテナンスによるダウンタイム 60秒未満 10秒未満
データキャッシュ × ○(MySQL と PostgreSQL)
 ×(SQL Server)
ポイントインタイム ログの保持 最長7日 最長35日

コンソール画面からCloudSQL作成してみる

CloudSQL for MySQLの作成

コンソール画面の検索欄からSQLと入力し、クリック、CloudSQLの画面へ遷移します。

インスタンスを作成をクリック

MySQLを選択をクリック

以下の情報を入力します(コンソール画面)

項目 入力値
インスタンスID test-instance-01
パスワード 以下のパスワードポリシーを満たす値を入力
パスワードポリシー:最小の長さを設定 12
パスワードポリシー:複雑さを要求 チェックする
パスワードポリシー:パスワードにユーザ名を許可しない チェックする
データベースのバージョン MySQL8.0
マイナーバージョン MySQL8.0.31(デフォルト)
CloudSQLのエディションの選択 Enterprise
プリセット サンドボックス
リージョン asia-northeast1
ゾーンの可用性 シングルゾーン
プライマリゾーン 任意
マシン 共有コア(1vCPU, 0.614GB)

他設定はデフォルト設定でインスタンスを作成をクリック
今回は検証のため、コストを抑えた最小構成で構築していますが、本番で利用される場合は、
可用性や、プリセット、ネットワーク構成等検討してから構築してください。

インスタンスの作成には時間がかかります。(20分くらいかかりました)

データベースの作成

Cloud SQLインスタンスの構築は完了したので、新規にデータベースの作成を行っていきます。
Cloud SQL for MySQLでは、インスタンス構築時から以下のシステムデータベースが存在しています。

  • information_schema:データベースメタデータへのアクセス
  • mysql:MySQL サーバーの実行時に必要な情報を格納されている
  • performance_schema:MySQL サーバーの実行を低レベルでモニタリングする機能
  • sys:DBAとデベロッパーがパフォーマンススキーマによって収集されたデータの解釈に役立つ一連のオブジェクト

Cloud SQLのコンソール画面からデータベースをクリックし、データベースの作成をクリック

以下の内容を入力し、作成をクリック

  • データベース名:app
  • 文字セット:utf8
  • 照合:デフォルトの照合

データベース:appが作成されました。

ユーザの作成

データベースの構築は完了したので、新規にMySQLユーザの作成を行っていきます。
MySQLユーザを作成することで、MySQLユーザを利用してCloudSQLにログインすることができます。
Cloud SQLのコンソール画面からユーザをクリックし、ユーザアカウントの追加をクリック
以下の内容を入力し、追加をクリック

  • 組み込み認証
    • ユーザ名:app-user
    • パスワード:パスワードポリシーを満たす値
  • ホスト名
    • 全てのホストを許可する

ユーザ名:app-userが作成されました。

CloudSQL Studioによる接続確認

CloudSQL Studioはコンソール画面から承認済みユーザーは、CloudSQLデータベースへアクセスすることができ、データベースに対して直接SQL操作を行うことができます。
MySQLクライアントツールや、Cloud SQL Auth Proxyを利用せずともコンソール画面から直接データベースに対してSQLクエリを実行できるのは利便性面でもかなりの魅力があります。
こちらの機能は現在はプレビューとなっているので、いち早くGAされることを望みます。
また、制限事項としては以下のような記載があります。

  • Cloud SQL Studio は軽量のクエリのみサポートし、レスポンスが8MBを超えると結果が切り捨てられる
  • 1 分以上かかるリクエストはキャンセルされる
  • Cloud SQL for MySQLクライアントコマンドはサポートされておらず、CloudSQL Studioで実行できない
  • rootユーザーは、Cloud SQL Studioではサポートされない

詳細な制限事項は公式ドキュメントを確認してください。
https://cloud.google.com/sql/docs/mysql/manage-data-using-studio?hl=ja#limitations

Cloud SQLのコンソール画面からCloudSQL Studioをクリックし、
以下の内容を入力し、認証するをクリック

  • データベース:app
  • ユーザー:app-user
  • パスワード:app-userのパスワード

認証に成功すると、Cloud SQL Studio経由でCloud SQLへ接続できたことが確認できました。
この後は、エディタからSQLクエリを実行したりしてデータベースを操作することができます。

おわりに

今回はCloudSQL基礎について以下の項目について解説していきました。

  • CloudSQLの基礎的な解説
  • コンソール画面からCloudSQLの構築
  • CloudSQL Studioを用いたCloudSQLへの接続

CloudSQLには、ネットワーク構成やセキュリティ、メンテナンス等考慮するべき設計観点があります。
そちらに関してはまた別の記事で記載したいと思います。
最後までご覧いただきありがとうございました。

GitHubで編集を提案

Discussion