TiDB Serverless ~理想のServerless DBを考える~
by
soso
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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
ご静聴ありがとうございました