Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
2024-03-29 SRETT9 Cloud SQLの可用性について
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
SUZUKI Masashi
March 29, 2024
Technology
610
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-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
8
2026-09-18 gotanda.sre Terraformで複数環境作ったり、複数Stateに分割したりそれとTerragrunt / Terraform multi envs and multi states
masasuzu
4
720
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
2
330
2026-08-15 JAWS-UG 茨城 #16 Secrets ManagerにおけるSecret値の管理(Terraformの場合) / Secrets Manager Secrets
masasuzu
2
880
2026-07-28 3-shakeテックランチ Cloud Run のデプロイパラメータを考える / Cloud Run Deploy Parameter
masasuzu
0
110
2026-07-24 tfpolicyを試してみたのですが、、、、
masasuzu
1
180
2026-06-18 ecspressoのtfstate参照が便利すぎた話
masasuzu
1
520
2026-04-14 Jagu'e'r Cloud Native分科会 Terraform Stateにおけるシークレットの平文保存という課題とその解決
masasuzu
1
95
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
1
520
Other Decks in Technology
See All in Technology
AWS DevOps Agent スキルをつかいこなそう / Master AWS DevOps Agent Skills
kinunori
1
380
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
300
AIに書かせて、プラットフォームで縛る ― EKSプラットフォームで実践した責任境界と権限設計
elmodev09
0
300
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
730
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
6
740
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
550
What the customer really needed
kawaguti
PRO
3
220
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
450
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2.4k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
人にやさしく、AIにやさしく、書き手を選ばないIaCのガードレール再考 / Rethinking IaC Guardrails for Humans and AI Alike
kohbis
5
880
aws-iot-platform-architecture-use-cases.pdf
ma2shita
0
630
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
Are puppies a ranking factor?
jonoalderson
2
3.9k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Test your architecture with Archunit
thirion
2
2.4k
Paper Plane (Part 1)
katiecoart
PRO
2
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
540
The Limits of Empathy - UXLibs8
cassininazir
1
690
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
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ライフを!