10年前の時代で止まってるRDBの知識をアップデートする

RDBは最初の設計が死ぬほど大切。柔軟にスケールアウトしたいならNoSQLを使え。RDBはサーバーを借りてそこにインストールするものだ。バックアップのスケジュールも忘れるな。基本的にOracleを使えば大丈夫。理論的に説明できないけどMySQLやPostgresはなんとなく怖いからやめておこう…
なんて時代ありましたよね。
それらの概念をまだ持っている場合は黄色信号かも。
現代はRDBで
- サーバーレス
- オートスケール
- ブランチ
- 無料枠
なんて10年前には考えられなかった機能がどんどん出てきます。この機会に知識をアップデートしようと思い、スクラップに調べた内容を積んでいきます。
メモ
#Neon #AlloyDB #PlanetScale #Hasura

Amazon Aurora
サーバーレスDBの中では古株。
MySQL互換と、Postgres互換のどちらかを選択する。
3つのAZに合計6つのストレージにデータを保存しているので耐久性抜群。
リクエスト数に応じてリードレプリカを増やしたり、ストレージをオートスケールすることが可能。
コンピューティング部分のオートスケールは未対応だが、現在開発中の Amazon Aurora Serverless v2 ではそれにも対応してるそう。
バックアップは元から有効になっており、保持期間は最長35日でS3に保存される。35日以上のバックアップが必要な場合は別途設定が必要。
MySQLの場合はバックトラック機能という特定の時刻の状態に状態を「巻き戻す」機能もある。
無料枠は新規のAWS会員にのみ提供されているようだ。
ちなみに料金は通常のRDSを使うより高い。人的コストに掛かる費用をどう見るかといったところ。
ブランチ機能はない。

PlanetScale
YouTubeの急成長に耐えうるクラスタリングシステムのVitess、これを基盤とすることでMySQL8に欠けているスケーラビリティと柔軟性を実現したサーバーレスDBです。
Vitessにより、水平方向へのスケーリングをサポートしていることで、ほぼ無制限の接続数を持つことができます。
また、開発者ファーストの思想により、スキーマの変更や、CI/CDのプロセスを容易に管理できるように設計されています。
ブランチの機能もその一環で、GitのようにDBを管理することができ、開発ブランチから本番ブランチへのスキーマの反映が容易な作りになっています。
バックアップもデフォルトで12時間毎に自動で作られ、バックアップを使用して新しいブランチを作ることもできそうです。
可用性も非常に高く、DBで障害を検知したらそれを検知し、自動で復旧する機能があり、ダウンタイムを最小限に抑えることができるそう。
※ 具体的な冗長構成については調べて追加したい。
YouTubeを始めSlack、Figma、GitHubによる使用実績もあり、直近で1億ドル以上の資金調達にも成功している。調べた感じ、大本命っぽい。
無料枠の制限も緩いので週末に試し使いしたい。

勘違いしてた。
ストレージだけスケーリングするのかと思ったけど、それぞれのシャードがデータベースっぽい。だからシャードが増えると書き込みも分散されるから書き込み性能も上がる。複数のデータベースに分散しているが、呼び出す側は1つのデータベースのように振る舞う。
なんてデータベースなんだ…
ほかのDBサービスもこの視点もって見直さないと。、

PlanetScale は、ユーザーがデータベースをロックしたりダウンタイムを引き起こすことなくスキーマを変更できる。

PlanetScaleをPrismaで使用する方法。
Prismaが頑張って対応してくれている印象。

2024/4/8 から無料プランなくなるらしい。

Neon
MySQL の次世代型フルマネージドDBサービスが PlanetScale だとすると、それの PostgreSQL 版がこの Neon と言える。
ブランチ機能あり。
無料枠あり。
PostgreSQL のコミッターの方が立ち上げたプロジェクトで Aurora のようにストレージとコンピューティングを分離したアーキテクチャを採用してます。
これにより、バックアップとリカバリを容易にし、高い可用性も実現しています。
また、このストレージを分離したアーキテクチャにより、ストレージの水平方向へのスケールを可能にしています。
まだ、実績は少ないプロジェクトのように感じるが、個人的には MySQL よりも PostgreSQL のほうが愛着があるので応援したい。
オートスケールは有料会員のみの機能のよう。

Vercel Postgres の内部で使用されている。

AlloyDB for PostgreSQL
こちらは2022年12月15日にリリースされた GCP による PostgreSQL 完全互換のフルマネージドサービス。
パフォーマンスは通常のPostgresの4倍、最大 100 倍高速な分析クエリ、データベースのパッチ適用、バックアップ、スケーリング、レプリケーションを自動的に処理する、機械学習に対応した自動パイロット システムを搭載しているらしい。
もちろんフルマネージドで、上記で説明した機能は一通り揃っていそうだが、ブランチの機能については、なさそう。
ちょっと機能が凄すぎて整理できていないけれど、リリースから日も浅いこともあり、もう少し情報出回るのを待ちたい気持ち。
Google様の本気をみよ!となるかも。

Hasura
いままではDBの紹介だけだったが、こちらはDBから自動的に GraphQL サーバーを建てくれるサービス。
今回、次世代DBサービスを調べるきっかけになったのが、これ。
認証認可もあり、リッチなUIも提供している。実際に採用ページで「当社のプロダクトは全てHasuraを使用しています」と書かれている企業もあった。
GraphQL には疎く、Hasura に関しては初めて聞いた名前でしたが、もう見ないふりはできないなと感じます。(特にGraphQL)
今回上げた内容は、ただ記事を読んだだけで「良いところ」しか見えていないはずです。
キャッチアップして解像度を高めたら、またまとめてみたいと思います。

もう見ないふりはできないなと感じます。(特にGraphQL)
まだ見ないふりしてる。
実践的な資料追加。