https://gcpug.jp
RDBのDBAから見た
GCP Managed Database
(Cloud SQL / Big Query)
熊野 良(Ryo Kumano)
第21回 中国地方DB勉強会 in 山口 (2017/08/26)
https://gcpug.jp
- 本スライドは発表後、アップロードします。
- レイアウト崩れや明らかに間違った表現などは
修正後にアップロードをする場合があります。
- 基本的に自分で触って経験した内容を
発表させていただきます。
- H/W構成など、いわゆる「クラウドの向こう側」は
別途公開されている資料などを参照ください。
最初に
https://gcpug.jp
熊野 良 (Ryo Kumano)
Twitter: @ryok0607
2014/06 〜 株式会社グルーヴノーツ(福岡)
- 肩書:『サーバエンジニア・DBエンジニア』 -> 『クラウドエンジニア』
実務で触ったRDB(GCP Managed DB以外)
- Oracle Database: 7.3.4 / 8.1 / 9.0.1 / 9.2 / 10.1 / 10.2 / 11.2
- MySQL: 4.0 / 5.1 / 5.5 / 5.6
過去に携わったDB関連業務
- DBA (動画配信サイト・ブログ・ソシャゲ / 営業支援ツール・大学講義履修)
- Oracle Database サポートエンジニア
- SI (DB設計・構築・コンサル)
自己紹介
https://gcpug.jp
2点 宣伝させてください。
早速ですいませんが
https://gcpug.jp
宣伝 その1
https://gcpug.jp
GoogleCloudPlatform
略してGCP
使ってますか??
宣伝 その1
https://gcpug.jp
情報収集
どうすればいいの?
GCP、興味あるし使いたいけど...
https://gcpug.jp
GCPUG
Google Cloud Platform User Group
https://gcpug.jp
Slack: GCPUG Slack entry form (Google Forms)
https://docs.google.com/forms/d/e/1FAIpQLScYxAGwuosFFNvH-5yOj-_p-pAKdqZpmM2cgKh9Q8Zu6531Bw/viewform
GCPのユーザコミュニティがあるらしい
https://gcpug.jp
https://gcpug-hiroshima.connpass.com/
中国地方には広島にある!
https://gcpug.jp
https://plus.google.com/communities/115366422273280046817
そして、岡山にもある!
https://gcpug.jp
https://gcpugfukuoka.connpass.com/
福岡にもあるよ!
https://gcpug.jp
宣伝 その2
https://gcpug.jp
機械学習による様々な分析
- 需要予測
- 分類予測
- 画像解析
- 音声解析
- 言語翻訳
- 自然言語解析
もっと簡単に使いたいなぁ。。。
機械学習(ML)に興味あるんだけど
https://gcpug.jp
https://www.magellanic-clouds.com
MAGELLAN BLOCKS
https://gcpug.jp
ここから本題
https://gcpug.jp
GCP Managed Database
- RDBのDBAから見た Cloud SQL
- RDBのDBAから見た BigQuery
Agenda
https://gcpug.jp
RDBのDBAから見た
Cloud SQL
https://gcpug.jp
フルマネージドの
MySQL および PostgreSQL の
データベース サービス
(https://cloud.google.com/sql/?hl=ja より)
PostgreSQLは2017/8/26現在はbeta
Cloud SQL とは
https://gcpug.jp
レプリケーション、管理、バックアップで
ユーザーの操作が不要になり、デベロッパーは
他の作業に時間を充てることができます。
(https://cloud.google.com/sql/?hl=ja より)
ユーザーの操作? 他の作業?
「フルマネージド」とは
https://gcpug.jp
操作が不要な訳ではない。
ALTER文やツール(mysqldump)ではなく
ブラウザベースの画面(CloudConsole)から
レプリケーション・管理・バックアップを
実施することが可能。
ユーザの操作が不要、とは
https://gcpug.jp
- スキーマ・テーブル設計/構築/メンテナンス
- DBチューニング
- セキュリティ
といった
DBA本来の業務に注力できる!
他の作業、とは
https://gcpug.jp
Instanceあたり
●vCPU:32core
●RAM:208GB
●SSD:10TB
まで搭載可能。
https://cloud.google.com/sql/pricing?hl=en#2nd-gen-instance-pricing
Machine Type(H/Wスペック)
https://gcpug.jp
db-n1-highmem16
(vCPU:16core / RAM:104GB)で測定。
パフォーマンスは?(sysbenchで測定)
Qiita: Amazon Auroraと同じbenchmark testをGoogle Cloud SQLでやってみた
http://qiita.com/kumanoryo/items/7141cbe4fe4d0a6f1de4
https://gcpug.jp
Read Replica
参照専用のCloud SQL Instance
いわゆるMySQLの Slave Database
Failover Replica
ホットスタンバイのCloud SQL Instance
MasterDB障害検知・コマンド発行で切り替え
Replication
https://gcpug.jp
Read Replica
Read Replicaを追加するケース
アクセス過多によるDB高負荷が発生している
QPSがサービス要件を満たせない
CPU(user)の高騰
コネクション数過多によるメモリ不足
https://gcpug.jp
Read Replica
ダメなRead Replica追加例
Read Replicaを1台だけ追加するのはダメ、絶対!
Masterの負荷は下がったがRead Replicaの負荷が増設前と同等
増設前のMasterと同等の負荷
https://gcpug.jp
Read Replica
理想のRead Replica追加例
readが分散されるようRead Replicaを
複数台構築。
Read Replicaが2台の場合
1台が応答不能になると
前述のダメな状態になるので
3台以上で構築する必要がある。
https://gcpug.jp
Failover Replica
Failover Replicaを追加するケース
サービスの停止が許されない環境
Master障害時にStandbyしているCloudSQLに切り替える
MasterがSPOF(単一障害点)
https://gcpug.jp
Failover Replica
Failover Replicaの追加例
障害発生時やメンテナンス時にMasterが切り替わってくれる
https://gcpug.jp
昔はAPIでしかFailoverできなかったが
gcloudコマンドでfailoverを手動で実行できる。
手動でFailoverさせる方法
$ gcloud sql instances failover INSTANCE
https://cloud.google.com/sdk/gcloud/reference/sql/instances/failover
https://gcpug.jp
注意
オンプレミスのMySQLと
ここが違う!
https://gcpug.jp
rootにSUPER権限がないので
- sessionのkillができない。
- app用DBアカウントでログインしてkillする運用。
- change master コマンドが実行できない。
- 手動オペレーションによるslave設定不可。
- Cloud SQLをmaster / 他環境をslaveは可能。
- Auroraをmaster / Cloud SQLをslaveにしたい。
rootにSUPER権限がない
https://gcpug.jp
replication中に
select now() from dual
を実行し、応答有無を測定。
10回測定したところ
- replication直後
- 50-80secの間
にそれぞれ応答が無い時間帯
があることがわかった。
Failover時に応答できないタイミングがある
replication直後
20-30sec応答なし 5-10sec応答なし
https://gcpug.jp
RDBのDBAから見た
Big Query
https://gcpug.jp
フルマネージド の
エンタープライズ 向け
アナリティクス データ ウェアハウス
です。
(https://cloud.google.com/bigquery/?hl=ja) より
Big Query とは
https://gcpug.jp
- H/W障害対応作業
- オンプレだったら数百台規模のnodeやdiskを管理
- 毎月何かしらH/W交換するのしんどい
- H/W増設作業
- オンプレの場合、データが増えてくるとnodeやdiskの
増設作業が発生する場合がある
- サーバーラックに設置位置を決めるパズルは勘弁
フルマネージド・サーバーレスであることのメリット
https://gcpug.jp
BigQueryは大量のH/W管理作業から
解放される!
データサイズもGB・TBはもちろん
PBでもドンとこい!
フルマネージド・サーバーレスであることのメリット
https://gcpug.jp
SQL:2011に準拠しているので
DBAで培ったSQLスキルをBigQueryで使える。
機能(一部)
- with句
- select句やwhere句でのサブクエリ
- 相関サブクエリ(EXISTS)
- ユーザ定義関数
SQL:2011 に準拠している
https://gcpug.jp
BigQueryはサーバレスなのでH/Wリソースを管
理・監視する必要がない。
故に
「誰だよ本番マスタDBに重いクエリ流した奴!」
っていうDBA警察をやる必要がなくなる。
Replication遅延もないしシステムも止まらない。
クソクエリを流してもシステムが落ちることがない
https://gcpug.jp
注意
オンプレミス・クラウドの
RDBとここが違う!
https://gcpug.jp
料金体系はクエリとデータ量で課金される
https://gcpug.jp
複雑なクエリだとさらに費用がかかることも
https://gcpug.jp
非正規形にして一つのデータの中に複数行とか
BigQueryではよくある。
JOINを避けて料金を抑えるテクニック。
RDBに慣れてると非常に違和感を感じる。
あと取得用のSQLがパッと出てこない。
正規化をしないという選択
https://gcpug.jp
OLTP用途のDBではないので、チューニングで速
度を稼ぐ、という事はやらない。(できない)
同じクエリでも実行速度はバラバラで、
連続で実行しても10sec単位で違うこともある。
チューニングで速度をあげる概念がない
https://gcpug.jp
BigQueryのコンセプトが
H/Wを並べて力技(フルスキャン)
という理由からかIndexがない。
前述のとおり速度チューニングの概念がないので
そういうものだと割り切る。
tableにIndexがない
https://gcpug.jp
https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language#quotas
DML文の実行回数制限(quota)がある
https://gcpug.jp
オペミスしてもROLLBACKできないよ!
やるときは腹を括って実行しましょう。
transactionがない
https://gcpug.jp
GCPの無料トライアルを開始した時点で
BigQueryのサンプルデータも触れる状態になっています。
ぜひBigQueryを触ってみて体験してみてください。
無料トライアル ($300/最大12ヶ月有効)
https://cloud.google.com/free/?hl=ja
ウェブ UI を使用したクイックスタート
https://cloud.google.com/bigquery/quickstart-web-ui
BigQueryを触ってみよう
https://gcpug.jp
https://cloud.google.com/bigquery/sample-tables
BigQueryのサンプルテーブル一覧
https://gcpug.jp
サンプル:シェイクスピアの作品から単語と数を格納
https://gcpug.jp
Thank You!

RDBのDBAから見た GCP Managed Database