【初心者向け】Cloud SQL を触ってみましょう!

Google Cloud

2024.11.8

Topics

はじめに

こんにちは、Koo です。
今回の記事では、Google Cloud が提供しているデータベースである Cloud SQL をご紹介します。
Cloud SQL を一緒に学んで、初心者の方でも簡単に利用できるようにハンズオンを行いますので、
ぜひ最後までご覧ください!

Cloud SQL とは

Cloud SQL は、Google Cloud が提供しているフルマネージドなリレーショナルデータベースです。
インフラの管理や運用を Google Cloud に任せることができ、データベースの管理負担を大幅に軽減します。
Cloud SQL で提供されているデータベースエンジンには、以下の3つがあります。

  • MySQL
  • PostgreSQL
  • SQL Server

これらのエンジンは、それぞれのアプリケーションに適した選択肢を提供し、スケーラビリティや高可用性の面でも強力なサポートが得られます。

参考:Cloud SQL の概要

Cloud SQL の特徴

(1) 自動バックアップとリカバリ

Cloud SQLは、毎日自動的にデータをバックアップする機能があり、万が一の障害が発生しても過去の状態にすばやく復元できます。
これにより、予期せぬトラブルでデータが失われるリスクを大幅に減らせます。
たとえば、誤ってデータを削除してしまった場合でも、バックアップからデータを復元して作業を続けられるため、ビジネスへの影響を最小限に抑えることができます。

(2)読み取りレプリケーション

Cloud SQLでは、複数の読み取り専用インスタンス(レプリカ)を作成することで、データベースへの負荷を分散し、パフォーマンスを向上させます。
これにより、多くのユーザーが同時にデータを読み取っても、スムーズにアクセスできます。
たとえば、大量のレポートや分析を行う場合、この機能が役立ちます。また、メインのインスタンスが問題を抱えた場合も、レプリカがあることでサービスの停止を防ぎ、高い可用性を維持できます。

(3)強力なセキュリティ

Cloud SQLは、データベースの安全性を確保するためにいくつかのセキュリティ機能を備えています。
データは転送中と保存中のどちらでも暗号化されており、不正アクセスから守られています。
また、ネットワークのファイアウォール設定や、Google CloudのIdentity and Access Management(IAM)を通じて、ユーザーごとにアクセス権限を細かく管理することが可能です。
これにより、企業の重要なデータを安全に保護できます。

料金体系

Cloud SQL の料金について説明します。
Cloud SQL の料金は、以下のリソース使用量に基づいています。

■インスタンス料金
インスタンスのサイズ(vCPU数とメモリ容量)によって料金が決まります。 高可用性(HA)設定にした場合、料金は高くなります。

Enterprise エディション (金額/時間) Enterprise Plus エディション (金額/時間)
vCPUs $0.0537 per vCPU $0.0698 per vCPU
Memory $0.0091 per GB $0.0118 per GB
HA vCPUs $0.1074 per vCPU $0.1396 per vCPU
HA Memory $0.0182 per GB $0.0237 per GB
Data Cache Storage N/A $0.0003 per GB
HA Data Cache Storage N/A $0.0006 per GB

※ 試算は Tokyo(asia-northeast1) になります。
※ Data Cache Storage と HA Data Cache Storage は、SQL Serverでは利用できません。

■ストレージ料金
データベースに保存するデータ量に応じて料金が発生します。
これは、インスタンス料金とは別に計算されます。ストレージ料金は、インスタンスサイズに比べて全体コストに占める割合が比較的少ないケースが多く、ここでは割愛します。

■ネットワーク料金
データベースへのアクセスやデータの送受信に伴い、ネットワーク使用量に応じた料金が発生します。
この料金は、データ転送量、ネットワークのタイプ、そしてリージョン間の距離など様々な要因によって大きく変動するため、ここでは割愛します。

Google Cloud Pricing Calculatorを用いて、具体的な状況に基づいた見積もりを取得することを推奨します。

参考:Cloud SQL の料金

Cloud SQL のエディション

Cloud SQL では2つのエディションが提供されています。
どちらを選ぶかは、ウェブサイトやアプリがどれだけ重要で、どれだけの性能が必要なのかによって決まります。

(1)Enterprise エディション

一般的なウェブサイトやアプリに最適なプランです。 安定した動作と十分な性能を提供してくれるので、多くの場合これで十分です。
「普通マンション」のようなイメージです。コストパフォーマンスも高く、はじめて Cloud SQL を使う方にもおすすめです。

(2)Enterprise Plus エディション

より高い信頼性とパフォーマンスが必要な、重要なアプリケーションに最適です。
「高級マンション」のようなイメージで、セキュリティや安定性、そしてスピードを重視する方におすすめです。

具体的に、Enterprise Plus を選ぶメリットは下記の通りです。

■ 99.99%の可用性
ほぼ常に稼働しているので、サービスが止まる心配が少ないです。

■ 高速処理と大量データ対応
たくさんのユーザーが同時にアクセスしても、サクサク動きます。

■ データのバックアップ機能が充実
万が一のトラブルにも備え、最大35日間分のデータの履歴を保存できます。
大切なデータを守るタイムマシンです。

■ メンテナンスもスムーズ
メンテナンスによるサービス停止時間も短いため、運用への影響が少ないです。

各エディションの機能についてはこちらをご覧ください。
参考:Cloud SQL エディションの機能

Cloud SQL を実際に触ってみましょう!

これからは Cloud SQL のインスタンスから作成してみましょう!
今回は、GUI でインスタンスの作成、Cloud Shell でデータベースとテーブルの作成、データを追加してみます。

1.Cloud SQL の画面


Cloud SQL の最初の画面です。
インスタンスを作成を押してください!

2.データベースエンジンの選択


Cloud SQL は「MySQL」、「PostgreSQL」、「SQL Server」合計3つのエンジンが提供されています。
今回は「MySQL」を利用してみます。

3.エディションの選択


上の「Cloud SQL のエディション」で説明しましたので説明は省略します!
「Enterprise」を選択して「エディションのプリセット」は「サンドボックス」を選択します。
そしてデータベースのバージョンは「MySQL 8.0」を選択します。
マイナーバージョンを選択することもできます。

※ MySQL 8.0のデフォルトは8.0.31です。

4.環境設定

続いて、「インスタンス ID」と「パスワード」を入れてください。
リージョンは「asia-northeast1 (東京)」を選択しました。
ゾーンは「シングルリージョン」と「複数のゾーン」を選ぶことができます。

5.構成オプション設定

最後に「構成オプションを表示」を押してください!
多様なオプションの中で「データの保護」で「削除からの保護を有効にする」がデフォルトでチェックしています。このチェックを外します。
オプションの名前通り、データを保護するので、インスタンスを削除することができません。

設定が終わったらインスタンスを作成を押しましょう!
※インスタンスの作成まで時間が少しかかりますので、画面のいろんなところを探検してみてください!
(私は5分くらいかかりました)

6.インスタンスの画面


インスタンスの作成ができました。
CPU やメモリなど使用率が見られるグラフやインスタンスの構成などいろいろ確認できます。
多様なオプションがありますが、今回は簡単に触ってみるハンズオンですので、詳しい説明は次回の記事でお伝えしますので、お楽しみにしてください!

7.Cloud Shell 使用

  • Cloud Shell ハンズオンは、以下の手順となります。
    (1)データベースを作成、選択
    (2)テーブルを作成
    (3)テーブルにデータ追加
    (4)追加したデータを取得


画面の右上にある Cloud Shell アイコンを押すと、ターミナル環境が表示されます。
表示されたら以下のコマンドを入力します。

gcloud sql connect test-instance --user=root --quiet

// このコマンドは、test-instance インスタンスに接続します。
--user=root: rootユーザーとして接続します。
--quiet: 接続時の詳細な出力を抑制します。

パスワードは、インスタンスを作る時入力したパスワードです。
終わったら設定した MySQL 8.0.31に接続できました!

8.データベース作成

データベースを作成していきます。
「test_database」というデータベースを作成します。
以下のコマンドを入力します。

// 現在のデータベースを確認
SHOW databases;

// データベースを作成
CREATE database test_database;

「Query OK」が表示されたら、作成に成功です。

9.テーブル作成

テーブルを生成する時は、データベースを選択しければいけません。
以下のコマンドを入力します。

// データベースを選択
USE test_database;

// テーブル作成
CREATE TABLE test_table (
  id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
  firstName VARCHAR(20), 
  content VARCHAR(255)
);

// テーブルを確認
SHOW tables;

「SHOW tables;」コマンドで「test_table」が生成されたことを確認できます。

10.データ追加

テーブルの作成が終わったら、データを追加してみましょう!
以下のコマンドを入力します。

// データを追加
INSERT INTO test_table (firstName, content) values ("Koo", "Hello, Cloud SQL");

// データを確認
SELECT * FROM test_table;

すると、データがうまく入ったことを確認できます!

※ハンズオンが終わったら必ずインスタンスを「削除」してください!

さいごに

今回の記事では、Cloud SQL の基礎知識をお伝えしつつ、実際に触ってみました。
MySQL、PostgreSQL、SQL Server を触ったことがある方はすぐに使用できると思います。
次回は Cloud SQL が持ってる特徴の深い内容をご紹介したいと思います!
最後までお読み頂きありがとうございました!

テックブログ新着情報のほか、AWSやGoogle Cloudに関するお役立ち情報を配信中!

Koo

2024年新卒入社。
料理と音楽が好きなデータベースエンジニアです。 MySQL と Google Cloud、特に Cloud Spanner への関心が高いです。

Recommends

こちらもおすすめ

Special Topics

注目記事はこちら