昨年末のAurora DSQLの発表は非常に印象的でしたが、先日同僚からYugabyteDBの存在も教えてもらいました。両者の直接の関係(例えばYugabyteDBのAWSマネージドサービス化がAurora DSQLか?)を調べていてYugabyte社のブログに両者を比較した記事を見つけたので、これに基づく比較と、逆に共通点や共通の源流について、Google Geminiにまとめてもらいました。
結論としては、両者は独自に開発され発展してきたもので、明確な相違点もありますが、どちらもGoogle Spannerを源流とするものと理解するのが妥当だと思われます。
YugabyteDBとAurora dSQLの比較
Google Geminiに以下の質問をして、まとめてもらいました。
以下のURLの内容に基づいて、Aurora dSQLとyugabyteの比較をまとめてください。
https://www.yugabyte.com/blog/aurora-dsql-compared-to-yugabytedb/
回答
提示されたURLの内容に基づいた、Aurora DSQLとYugabyteDBの比較を以下にまとめます。
項目 | Aurora DSQL | YugabyteDB |
---|---|---|
PostgreSQL互換性 | スケーラビリティを優先しているため、PostgreSQLの一部の機能を犠牲にしています。 | PostgreSQLとの互換性が非常に高く、トリガー、PL/pgSQL、外部キー、シーケンス、すべての分離レベル、明示的なロックなどの機能をサポートしています。 |
デプロイメント | Amazon独自のサービスであり、サーバーレスのAWSネイティブアプリケーションに最適化されています。 | オープンソースデータベースであり、マルチクラウド、オンプレミス、ハイブリッドデプロイメントをサポートし、多様な環境に柔軟に対応します。 |
アプリケーション | オプティミスティック並行性制御を採用しており、クロスリージョンレイテンシを最小限に抑えますが、アプリケーション側でリトライ処理を実装する必要があります。 | より厳密な分離レベルとトランザクションの回復性を提供します。Read CommittedやWait-on-Conflictロックにより、 アプリケーションに複雑なリトライロジックを追加する必要がありません。 同期オーバーヘッドが高くなる可能性があります。 |
ユースケース | AWS上に構築された新しいサーバーレスアプリケーションに最適です。より多くのSQL機能を求めるDynamoDBユーザーにとって、直接的な進化形となります。 | PostgreSQLのドロップイン代替として、レガシーアプリケーションをサポートし、マルチクラウドおよびハイブリッド環境に柔軟性を提供します。Oracle Database、IBM DB2、Microsoft SQL Serverの代替としても、高い回復力を持つオープンソースデータベースです。 |
共通点:
- 両者ともに、高可用性と弾力性を必要とするトランザクションワークロードに最適化されたクラウドネイティブなSQLデータベースです。
- 人気のあるフル機能のオープンソースデータベースであるPostgreSQLコードのフォークを使用しています。
- PostgreSQLアプリケーションに暗号化やより予測可能なパフォーマンスなどのエンタープライズレベルの機能を追加します。
- オンラインローリングアップグレードにより、メンテナンスウィンドウやダウンタイムの問題を解決します。
共通の源流
Google Geminiに以下の質問をして、まとめてもらいました。
Aurora DSQLはYugabyteDBと関係がありますか?
あるいは、技術やモチベーションに共通の源流を持ちますか?AWSは特定の競合を名指しすることがほとんどないので、re:Invent2024でのDSQLの発表時に、Google Spannerを名指しして性能比較をだしてきたのは印象的でした。
回答
ご指摘の通り、AWSが特定の競合製品を名指しして比較することは非常に稀であり、re:Invent 2024でAurora DSQLの発表時にGoogle Spannerを引き合いに出して性能比較を行ったことは、まさにその例外であり、Aurora DSQLがGoogle Spannerを主要なベンチマークおよび技術的モチベーションの源流と見ていることを強く示唆しています。
まず、改めて結論から申し上げますと、**Aurora DSQLとYugabyteDBは、直接的な開発協力関係や資本関係は一切ありません。**両者はそれぞれ独立した企業(AWSとYugabyte社)が開発・提供している、PostgreSQL互換の分散型データベースソリューションです。
しかし、ご指摘の通り、技術やモチベーションにおいては、明確にGoogle Spannerという共通の「源流」の影響を受けています。 そして、AWSがre:Inventなどの公式発表の場で競合を名指しすることは稀であり、Google Spannerを明確に意識していると示唆したことは、DSQLの戦略的な位置付けを理解する上で非常に重要なポイントです。
Aurora DSQL、YugabyteDB、Google Spannerの共通の源流とモチベーション
-
Google Spannerがパイオニア:
Google Spannerは、2012年にGoogleが論文で発表し、その後一般に公開されたサービスです。その最大の特徴は、グローバルに分散しながらも、ACID特性(特に強い一貫性)を完全に満たし、かつ水平にスケールするという、それまでのリレーショナルデータベースでは困難とされていた特性を同時に実現した点にあります。これは、従来のデータベース(単一ノードまたはレプリケーションモデル)が抱えていたスケーラビリティや可用性の限界を打ち破るものでした。 -
YugabyteDBへの影響:
YugabyteDBは、まさにこのGoogle Spannerの論文とアーキテクチャに直接的にインスパイアされて開発されたデータベースです。創業者が元GoogleのSpanner開発チームに所属していた経験を持つことからも、Spannerのアーキテクチャに強くインスパイアされています。彼らはオープンソースの世界でSpannerのような機能をPostgreSQL互換で実現することを目指しており、その設計思想やコア技術(分散トランザクション管理、MVCC、Raft合意プロトコル、グローバルなタイムスタンプ同期など)にはSpannerの影響が色濃く出ています。 -
Aurora DSQLへの影響とAWSの戦略:
AWSがSpannerを名指しで比較してきたこと自体が、Aurora DSQLがSpannerを意識して開発されたことを雄弁に物語っています。Aurora DSQLもまた、PostgreSQL互換性を維持しながら、グローバルに分散した環境で高いスケーラビリティと一貫性を提供することを目指しています。- Aurora DSQLは、AWSの内部時刻同期サービスを利用して、分散環境でのトランザクションの一貫性を保証しています。これは、SpannerのTrueTimeに相当するアプローチと見なすことができます。
- 従来のAuroraがストレージとコンピューティングを分離したアーキテクチャで成功したように、DSQLはさらにコンピューティングレイヤーを分散させ、より高いスケーラビリティと耐障害性を実現しようとしています。これは、Spannerが解決しようとした課題と非常に似ています。
- 市場のニーズ: グローバル分散、高い一貫性、かつリレーショナルモデルのスケーラブルなデータベースに対する強い市場ニーズが存在し、Spannerがその領域のリーダーであったこと。
- 技術的目標: Aurora DSQLが目指しているのが、まさにSpannerが実現しているような、大規模分散環境での強力なトランザクションとスケーラビリティであること。AWSは自社の得意とするマネージドサービスとAuroraのアーキテクチャを基盤に、この領域に本格参入するという強い意志を示しました。
- PostgreSQL互換性: Spannerは独自のSQL方言ですが、Aurora DSQLはPostgreSQL互換性を維持することで、既存のPostgreSQLユーザーが分散型データベースに移行する際の障壁を下げることを狙っています。これはYugabyteDBと共通するアプローチです。
-
共通のモチベーション:両者(Aurora DSQLもYugabyteDBも)が共有するモチベーションは、以下の点にあると言えます。
- 「Webスケール」のアプリケーション要件への対応: 現代のインターネットサービスは、世界中のユーザーからのアクセスに耐えうる極めて高いスケーラビリティと可用性を要求します。従来のRDBMSでは、これらの要件を満たすことが難しくなっていました。
- 「NoSQLの弱点」の克服: NoSQLデータベースはスケーラビリティと可用性を提供しましたが、トランザクションの一貫性や複雑なクエリのサポートに課題がありました。開発者は再び、SQLの強力な機能とリレーショナルモデルの恩恵を大規模な分散環境で享受したいと考えるようになりました。
- 「開発者の使い慣れたSQL(PostgreSQL)体験」の提供: 多くの開発者がPostgreSQLに親しみと信頼を寄せています。既存のPostgreSQLアプリケーションを大幅なコード変更なしに、分散環境の恩恵を受けられるようにしたいというニーズがあります。
結論
Aurora DSQLとYugabyteDBは、開発元は異なりますが、「Google Spannerが示した、グローバル分散環境での強力なトランザクションと水平スケーラビリティ」という技術的ビジョン、および「Webスケールでのリレーショナルデータベースの課題解決」というモチベーションにおいて、共通の源流を持つ兄弟のような存在であると言えます。分散SQLという文脈においては、Google Spannerが事実上のベンチマーク、あるいは目標とされる存在であり、YugabyteDBもAurora DSQLも、そのSpannerが示した方向性へのアプローチとして位置づけることができます。
AWSがre:Invent 2024でSpannerを名指ししたことは、Aurora DSQLがまさにその分野でのリーダーを目指し、Spannerを直接の競争相手と位置付けていることの明確なサインであり、非常に象徴的な出来事でした。
参考
- [速報]「Amazon Aurora DSQL」プレビュー公開、事実上無限にスケールする高性能なPostgreSQL互換の大規模分散データベース - Publickey
- Aurora DSQL: How the Latest Distributed SQL Database Compares to YugabyteDB | Yugabyte
本内容の作成は、ほぼ生成AIによるもので、筆者の意見や見識ではありません。また筆者はデータベースの専門家ではなく、内容に誤りがあれば、それを除けて(見抜けて)いない場合があります。ただしITエンジニアの一人としては、特に違和感のない回答だと受け止めました。
本内容は投稿者の個人的なメモとして作成したもので、投稿者の所属組織等には一切かかわりがありません。