ソロソロ来るゾ! Google Cloud Platform!

第4回RDBMSサービスのCloud SQL

Cloud SQL

Google Cloud Platformの中で、RDBMSをPaaSとして提供しているのがCloud SQLです。今のところMySQL 5.5、5.6(プレビュー)を利用できます。

作成はWeb管理画面のDevelopers Consoleから実行でき、デフォルトの起動画面はインスタンス名、地域、階層(英語だとTier。スペックだと思って良いです)を指定するだけです。

図1 ⁠詳細設定を表示...」画面
図1 「詳細設定を表示...」画面

これだけで、以下の環境が利用可能になります。

  • 自動で複数ゾーンに複製
  • 自動でデータを暗号化
  • 自動でフェイルオーバー
  • エンドポイント(利用時のアクセス先)はFQDNではなくIPアドレス
    • ただしデフォルトはIPv6(IPv4も付与可能)
  • 自動バックアップ、Point In Time Recovery(MySQL 5.5のみ⁠
    • 費用内で7世代(データに変更があった場合のみ)

エンドポイントがFQDNではなくIPアドレスだというのはとても嬉しいですね。

まだベータ版ですがRead Replicaも利用できます。なお今のところRead Replicaが利用できるのはMySQL5.5のみです。

多彩なオプションを設定可能

Cloud SQLでは多彩なオプションを設定可能です。

Developers Consoleでインスタンス作成時に詳細設定を開くと、以下のような設定が可能です。バックアップはチェック1つで設定できますし、バイナリログを有効にすることでレプリケーションができるようになります。

特徴的なのがアクティベーションポリシーです。おそらくGoogle App Engineの影響を強く受けているのだと思いますが、インスタンスを常に起動しておくのではなく、接続があったときに起動するオプションがあります。

  • 常にオン(インスタンスへの接続を気にせず常にオン)
  • 常にオフ(インスタンスへの接続を気にせず常にオフ)
  • オンデマンド

この内オンデマンドを選択すると、インスタンスへの接続があると自動的にオンになり、アクティブでない状態が数分続くと自動的にシャットダウンされるようになります。

Google App Engineとの親和性は、インスタンスの設置場所をCompute Engineゾーン、App Engineアプリケーション準拠から選択できる点にも表れています。

図2 Cloud SQLでは多彩なオプションを設定可能
図2 Cloud SQLでは多彩なオプションを設定可能

インスタンス作成時にMySQLのパラメータを指定することができます。

図3 インスタンス作成時にMySQLのパラメータを指定することができる
図3 インスタンス作成時にMySQLのパラメータを指定することができる

かなり生のMySQLに近い感覚で利用できるので、今までMySQLを自前で運用してきた方はとっつきやすいと思います。

スペックと料金体系

料金体系はパッケージ、従量制の2種類があります。パッケージはスペックごと日額の料金体系、従量制はリソース利用量に応じた料金体系です。

またパッケージ、従量制いずれの場合も、別途以下の費用がかかります。

  • ディスク1GB1ヵ月あたり$0.24
    • ※ディスクサイズに関わらず利用量に対して課金
  • 100万IOリクエストあたり$0.10
  • Google Cloud Platform外との通信はOUTBOUND 1GBあたり$0.12
  • IPv4アドレスは、使っていない期間1時間あたり$0.01

なお最大ディスクサイズまで上げるためにはメールで上限解除の依頼が必要です。

またCPUは⁠Each instance tier comes with the RAM shown above, along with an appropriate amount of CPU.⁠とのことで非公開のようです。

パッケージ(Package Billing Plan)の場合の料金体系は以下のとおりです。

Tier メモリ 費用内ディスク利用量 最大ディスクサイズ 1日あたりの費用内IO 日額 最大同時接続数
D0 0.125GB 0.5GB 500GB 0.20M $0.36 250
D1 0.5GB 1.0GB 500GB 0.85M $1.46 250
D2 1GB 2.0GB 500GB 1.70M $2.93 250
D4 2GB 5.0GB 500GB 4.00M $4.40 500
D8 4GB 10.0GB 500GB 8.00M $8.78 1000
D16 8GB 10.0GB 500GB 16.00M $17.57 2000
D32 16GB 10.0GB 500GB 32.00M $35.13 4000

従量制(Per Use Bililng Plan)の場合の料金体系は以下のとおりです。

Tier 1時間あたりの価格
D0 $0.025
D1 $0.100
D2 $0.190
D4 $0.290
D8 $0.580
D16 $1.160
D32 $2.310

常時稼働し、ある程度の処理をし続ける場合にはパッケージを、たまにちょっと使えれば良いだけであれば従量制を使うのが良いでしょう。ご自身の用途に合ったプランを選択してください。

料金はWebで試算できます。

メンテナンス

Cloud SQLではGoogleが自動的にマイナーバージョンアップを適用します。メンテナンスのためにMySQL再起動することがあるのですが断は数秒とのことです。

この「数秒」という文言はいたるところに登場します。

稼働中のインスタンスに障害が発生しfailoverする際もインスタンスは数秒で起動します(ただしInnoDBのクラッシュリカバリが走った場合はそのぶん追加で時間がかかります⁠⁠。またスペックの変更も数秒の断で適用可能です。

Cloud SQLの制約

Cloud SQLは便利な反面、GCEのインスタンスにMySQLを稼働させるのと比較して以下の制約があります。

  • UDF(User Defined Functions)利用不可
  • 以下の命令は非対応
    • LOAD DATA INFILE
      • ただしLOAD DATA LOCAL INFILEは利用可能
    • SELECT ... INTO OUTFILE/DUMPFILE
    • INSTALL/UNINSTALL PLUGIN ...
    • CREATE FUNCTION ...
    • LOAD_FILE()
  • SUPER権限利用不可
  • mysqlimport--localオプションが使えない
  • mysqldump--tabオプションが使えない
  • Performance schemaが使えない
  • InnoDB memcached pluginが使えない

クラウド全般、特にPaaSについて強く言えることですが、サービスの特性に合わせて制約の中でうまく使いましょう。

次回は

次回は引き続きデータベース系のサービスを紹介します。独自のKVSであるCloud Datastoreと、KVSともストレージとも言えるオブジェクトストレージのCloud Storageを紹介する予定です。

おすすめ記事

記事・ニュース一覧