Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
2024-03-29 SRETT9 Cloud SQLの可用性について
Search
SUZUKI Masashi
March 29, 2024
Technology
590
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
2024-03-29 SRETT9 Cloud SQLの可用性について
SUZUKI Masashi
March 29, 2024
More Decks by SUZUKI Masashi
See All by SUZUKI Masashi
2026-06-18 ecspressoのtfstate参照が便利すぎた話
masasuzu
0
46
2026-04-14 Jagu'e'r Cloud Native分科会 Terraform Stateにおけるシークレットの平文保存という課題とその解決
masasuzu
1
61
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
430
2026-03-23 Ops-JAWS Meetup39 Session Managerを使った セキュアなサーバーアクセス
masasuzu
2
160
2026-03-11 JAWS-UG 茨城 #12 改めてALBを便利に使う
masasuzu
3
490
2026-03-03 Jagu'e'r Tech Writer Meetup #19 登壇のネタ作りについて
masasuzu
0
290
2026-02-24 月末 Tech Lunch Online #10 Cloud Runのデプロイの課題から考えるアプリとインフラの境界線
masasuzu
0
200
2025-11-21 社内エンジニア勉強会 改めて理解するVPC Endpoint
masasuzu
0
460
2025-11-08 Security JAWS TerraformによるIAM Policy記述ガイド
masasuzu
2
1.5k
Other Decks in Technology
See All in Technology
Agentic AI 時代のテスト手法: Kiro とはじめるプロパティベーステスト (AWS Summit Japan 2026 | DEV212)
ymhiroki
0
210
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
4
3.1k
Road to SRE NEXTの今までとこれから
hiroyaonoe
0
140
記録をかんたんに、提案をパーソナルに ── AIであすけんが目指すもの
oprstchn
0
160
Zoom2Youtube.Claude
kawaguti
PRO
2
440
Claude Code 珍プレー好プレー
shinyasaita
0
270
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
160
Amazon EVS で VCF 9.0 / 9.1 のサポート開始まとめ
mtoyoda
0
270
CIで使うClaude
iwatatomoya
0
120
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
300
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
290
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
430
Featured
See All Featured
Navigating Weather and Climate Data
rabernat
0
280
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
RailsConf 2023
tenderlove
30
1.5k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Bash Introduction
62gerente
615
220k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
320
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
440
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
A designer walks into a library…
pauljervisheath
211
24k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
330
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
250
Transcript
Cloud SQLの可用性について Copyright © 3-shake, Inc. All Rights Reserved. 株式会社スリーシェイクSreake事業部
鈴木勝史
Copyright © 3-shake, Inc. All Rights Reserved. おまえだれよ 2 •
すずきまさし • 株式会社スリーシェイク Sreake事業部所属 • クラウドインフラなんでも屋さんしてます ◦ 設計支援、運用支援、構築支援、支援以外も実作業もする • AWSちょっとわかる ◦ AWS Community Builder 2024 • Google Cloudなにもわからない • Terraformちょっとわかる
Copyright © 3-shake, Inc. All Rights Reserved. シナリオ 3 あなたはGoogle
Cloud上で稼働するWebアプリケーションのインフラ運用を任されたエンジニアです。 グローバルに展開するアプリケーションであるため、リージョンに障害が起きた際にもアプリケーションを稼働させ続ける必要 があります。 さしあたってアプリケーションで使用している Cloud SQL をゾーン障害、リージョン障害に備えた構成にしてほしいと言われ ています。 ここからどのような方策が取れるかを考えていきます。
Copyright © 3-shake, Inc. All Rights Reserved. 目次 4 1.
Cloud SQLについて 2. ゾーン障害に備える 3. リージョン障害に備える 4. ダウンタイムをさらに少なくする 5. まとめ
Copyright © 3-shake, Inc. All Rights Reserved. Cloud SQL 01
5
• Google CloudのマネージドRDBサービス • MySQL、PostgreSQL、SQL Server対応 • EnterpriseとEnterprise Plusのエディションがある •
Enterprise Plusの方がSLAが高く、パフォーマンスに優れる ◦ Enterprise 99.95% ◦ Enterprise Plus 99.99% ◦ MySQLとPostgreSQL対応 ◦ 取りうるDBのバージョンに制限あり ▪ MySQL 8.0 ▪ PostgreSQL14, 15 • 参考: Cloud SQL の各エディションの概要 | Cloud SQL ドキュメント | Google Cloud Copyright © 3-shake, Inc. All Rights Reserved. Cloud SQL 6
Copyright © 3-shake, Inc. All Rights Reserved. ゾーン障害に備える HA構成 02
7
Copyright © 3-shake, Inc. All Rights Reserved. HA構成 8 •
プライマリゾーンとセカンダリゾーンにインスタンスを構成する ◦ AWSのRDSでいうところのMulti AZと考えてもらえると ◦ スタンバイのインスタンスを起動させておくので料金は 2倍 ◦ ゾーン障害に備えることができる • 高可用性構成を適用した場合に完全な SLAが適用される ◦ 参考: Cloud SQL Service Level Agreement SLA | Google Cloud • クライアントから見えるDBエンドポイントは一つ ◦ フェイルオーバー時に自動で IPの向け先が変わるので クライアント側で切り替える必要がない • DBへの書き込みはリージョン永続ディスクにされる • ハートビートは1秒間隔 • フェイルオーバー時のダウンタイムは 60秒ほどの想定 • 参考: 高可用性について | Cloud SQL for PostgreSQL | Google Cloud
Copyright © 3-shake, Inc. All Rights Reserved. リージョン障害に備える クロスリージョンレプリカ 03
9
Copyright © 3-shake, Inc. All Rights Reserved. リードレプリカ 10 •
それぞれのRDMSのレプリケーションの仕組みをマネージドで利用できる • 読み込みクエリはリードレプリカに差し替えることで負荷分散をすることができる • 読み込み負荷が高い場合は、リードレプリカを複数台立てることもできる ◦ ワークロードごとに発行するクエリを分けて影響を抑える方法も ▪ ex: Webアプリと分析でクエリを分割等 • 非同期レプリケーションを使用するのでレプリカラグには注意
Copyright © 3-shake, Inc. All Rights Reserved. クロスリージョンレプリカ 11 •
別リージョンにリードレプリカを作ることができる • プライマリとは別のリージョンにリードレプリカを構築することによりリージョン障害に備える • リージョン障害時にクロスリージョンレプリカを昇格させる • クライアント側のエンドポイント設定を変更する。
Copyright © 3-shake, Inc. All Rights Reserved. クロスリージョンレプリカの課題 12 •
マネージドでフェイルオーバーする仕組みがない ◦ 自前で障害検知して、レプリカを昇格する必要がある ◦ クライアント側でエンドポイントを切り替える必要がある ▪ 高可用性構成のようにエンドポイントが共通のものではなく、別々になっている ▪ マネージドなDBプロキシが用意されていないので何かしら切り替える仕組みが必要
Copyright © 3-shake, Inc. All Rights Reserved. ダウンタイムをさらに少なくしたい Spanner 04
13
Copyright © 3-shake, Inc. All Rights Reserved. Spannerという選択肢 14 •
マネージドな分散RDBサービス • 高い可用性 ◦ マルチリージョン99.999% ◦ シングルリージョン 99.99% • コンピュートとストレージが分離 ◦ クラウド向けに設計されている • PostgreSQLとGoogleSQLをサポート ◦ DB作成時にSQL方言を選択する • ノード、プロセッシングユニットを増やすことで水平スケール可能 ◦ 1000プロセッシングユニット = 1ノード • マルチリージョン構成を取ることでリーション障害時にも可用性を維持可能 • ダウンタイム無しで構成変更することが可能
Copyright © 3-shake, Inc. All Rights Reserved. Spannerも銀の弾丸ではない 15 •
PostgreSQLと完全互換ではない ◦ 参考: Spanner 向け PostgreSQL Interface | Google Cloud PostgreSQL と完全な互換性はありません。ストアド プロシージャ、トリガー、拡張機能、構成可能な隔離レベ ルなど、PostgreSQL の機能に依存する既存のアプリケーションでは、 Spanner で実行する再作業が必要に なります。ただし、Spanner がサポートする SQL 構文はセマンティックに同等な PostgreSQL である • 接続方法 ◦ Spannerクライアントライブラリ ▪ 既存のアプリケーションのライブラリを差し替える必要がある ◦ PGAdapterプロキシ経由で接続する ▪ Cloud Runアプリケーションから接続する際はサイドカーで PGAadaperを立てる必要がある ▪ 参考: PGAdapter を起動する | Spanner | Google Cloud • Cloud SQLの最小構成と比べるとコスト高になる。 ◦ 開発環境で使うには工夫が必要となる
Copyright © 3-shake, Inc. All Rights Reserved. まとめ 05 16
Copyright © 3-shake, Inc. All Rights Reserved. まとめ 17 •
今回はリージョン障害に備えた構成を考えてきました。 • サービスの特性により求める可用性が異なります。それぞれの特性にそった構成を選択してください。 ◦ 使い捨てのサービスであれば、 1台ぽんとてれば良いし ◦ リージョン障害に備えるならクロスリージョンレプリカも選択肢に上がるでしょう ◦ 予算が許し、移行コスト払えるなら Spannerを使うという選択肢もあるでしょう • 今回はCloud SQLを例にしましたが、AWSでもAzureでも求められる可用性に対してどのような選択肢が取れるのか 把握してきましょう。 • それでは良いDBライフを!