rdbのdbaから見た gcp managed database
TRANSCRIPT
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
GCPUGGoogle 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
宣伝 その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 InstanceMasterDB障害検知・コマンド発行で切り替え
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!