Cloud SQL基礎
はじめに
こんにちは。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にアタッチされます。
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エディションと比べて以下がメリットになります。
より品質や性能が求められるワークロードでは、Enterpris Plusエディションが推奨されます。
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ではサポートされない
詳細な制限事項は公式ドキュメントを確認してください。
Cloud SQLのコンソール画面からCloudSQL Studioをクリックし、
以下の内容を入力し、認証するをクリック
- データベース:app
- ユーザー:app-user
- パスワード:app-userのパスワード
認証に成功すると、Cloud SQL Studio経由でCloud SQLへ接続できたことが確認できました。
この後は、エディタからSQLクエリを実行したりしてデータベースを操作することができます。
おわりに
今回はCloudSQL基礎について以下の項目について解説していきました。
- CloudSQLの基礎的な解説
- コンソール画面からCloudSQLの構築
- CloudSQL Studioを用いたCloudSQLへの接続
CloudSQLには、ネットワーク構成やセキュリティ、メンテナンス等考慮するべき設計観点があります。
そちらに関してはまた別の記事で記載したいと思います。
最後までご覧いただきありがとうございました。
Discussion