TiDB Serverless ~理想のServerless DBを考える~
by
soso
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
@sosomuse TiDB Serverless ~理想のServerless DBを考える~
Slide 2
Slide 2 text
自己紹介 普段はWebサービス開発してます。 最近はAWS CDK,CDKTFが推しです。 西村 爽 So Nishimura フロントエンド: React バックエンド: Go,TypeScript インフラ: AWS,Cloudflare @sosomuse
Slide 3
Slide 3 text
アジェンダ 2. TiDB Serverlessとは 3. Cloudflare Workers&TiDB Serverless 1. なぜServerless DBなのか
Slide 4
Slide 4 text
皆さんサーバーレスなDBサービス使ってますか? 突然ですが
Slide 5
Slide 5 text
メインで使っているDBサービス RDB(Amazon Aurora) NoSQL(Amazon DynamoDB) その他(Redisなど。ここでは扱わない) メインで使ってきた(使っている)DBサービス
Slide 6
Slide 6 text
RDB(Amazon Aurora) 実家のような安心感 SQLが書ける!! 設計の知見が豊富 課題 いいところ スケーリング問題 常時稼働でコストが発生。開発環境の料金嵩みがち マネージドとはいえ運用管理の手間が発生しがち
Slide 7
Slide 7 text
NoSQL(Amazon DynamoDB) サーバーレス!! 高速な読み書き トランザクション(上限あり) 強整合性サポート(条件付き) 課題 いいところ 設計が難しい! 検索が制限されるので、RDBに逃がすなど調整が必要になる
Slide 8
Slide 8 text
理想のDBサービスって? サーバーレスであること トランザクション・強整合性 運用コストは掛けたくない 低コスト RDB程度の検索機能&パフォーマンス 個人的にSQLも書けるとグッド! マネージドサービス 従量課金 オートスケーリング
Slide 9
Slide 9 text
どんな選択肢を考えた?① Amazon Aurora Serverless(v2) Auroraから移行するなら一番適性あり エッジ上で動作するSQLiteベースのDB 最大DBサイズ10GBやクエリ実行時間30秒など制限あり https://developers.cloudflare.com/d1/platform/limits/ それなりに最低料金がかかる バージニア北部: 約$43/月 東京: 約$73/月 Cloudflare D1
Slide 10
Slide 10 text
どんな選択肢を考えた?② Supabase BaaS(DB内包) サーバレスなMySQLサービス Aurora Serverlessと同じく最低料金がかかる フロントエンドから呼び出してバックエンドはSupabaseということも可能 独自的な設計は必要になる PlanetScale
Slide 11
Slide 11 text
どんな選択肢を考えた?③ CockroachDB Serverless NewSQL NewSQL MySQL互換 PostgreSQL互換 TiDB Serverless(今回試してみる)
Slide 12
Slide 12 text
アジェンダ 2. TiDB Serverlessとは 3. Cloudflare Workers&TiDB Serverless 1. なぜServerless DBなのか
Slide 13
Slide 13 text
TiDBとは NewSQL(分散型DB) OSS MySQL互換 SQLで書ける https://github.com/pingcap/tidb 一部違いはあるが、大抵の場合困ることは無い印象 https://docs.pingcap.com/ja/tidbcloud/mysql-compatibility#unsupported-features トランザクション・強整合性 スケーラビリティ MySQL互換
Slide 14
Slide 14 text
TiDB構成 参考: [変化と挑戦:NoSQLとNewSQL Serverless Databaseの技術革新とマルチテナンシーの秘密] ( ) https://speakerdeck.com/yoshiitaka/serverless-database
Slide 15
Slide 15 text
TiDB Serverless サーバーレス!! 現状 Provider が AWS のみ セルフホストのTiDBやDedicatedに比べていくつか制限あり シングルAZ Public接続 or AWS Private Link経由で接続
Slide 16
Slide 16 text
アジェンダ 2. TiDB Serverlessとは 3. Cloudflare Workers&TiDB Serverless 1. なぜServerless DBなのか
Slide 17
Slide 17 text
前提 社内の技術実験用プロジェクトで試してみる テックブログのようなもの API Server: ECS&NestJS→Cloudflare Workers×Hono DB: DynamoDB→TiDB Serverless 置き換えと検証が一通り終わったらどこかで資料にしたい 実験プロジェクトなのでダイナミックに置き換える 本スライドではWorkersとTiDBの接続のところまで
Slide 18
Slide 18 text
WorkersとTiDBの接続 TiDB公式ドキュメントで接続方法がサポートされている https://docs.pingcap.com/tidbcloud/integrate-tidbcloud-with-cloudflare/ Public接続
Slide 19
Slide 19 text
(2)スナップショットテストの導入 Workers作成
Slide 20
Slide 20 text
(2)スナップショットテストの導入 接続確認用コード
Slide 21
Slide 21 text
(2)スナップショットテストの導入 DATABASE_URLのenv追加 TiDB Cloudから取得したDBのPublic URLをWorkersのEnvに追加 WorkersのURLにアクセスしてデータが取れていることを確認
Slide 22
Slide 22 text
ご静聴ありがとうございました