大規模分散DBのCloud Spannerが、RailsのActive Recordに対応。スケーラブルで高可用なRubyアプリケーションの開発が容易に

Googleは、同社がクラウドサービスとして提供しているCloud SpannerをRailsのActive Recordに対応させるアダプタ「activerecord-spanner-adapter」が正式版となったことを発表しました

fig

Cloud Spannerは、Googleの多数のデータセンターにまたがる地球規模で大規模分散処理を行うリレーショナルデータベースです。事実上無制限とされる高いスケーラビリティと99.999%の高可用性を備えつつ、強い一貫性とトランザクション処理、SQLによるクエリなどを実装しています。

メルカリの決済サービスであるメルペイがバックエンドデータベースにCloud Spannerを採用し、数百万ユーザーの処理を行っているとされています

このCloud SpannerをRailsのActive Recordのバックエンドデータベースとして使えるようにするアダプタ「activerecord-spanner-adapter」がRuby Gemとして公開されており、12月7日付けでバージョン1.0に到達しました。

RailsのActive Recordは、SQLを意識することなくRubyでデータベースの検索や更新などを行えるライブラリです(単体やほかのフレームワークで利用することもできます)。

このActive RecordでCloud Spannerをバックエンドデータベースにすることにより、Rubyで高い可用性とスケーラビリティを持つアプリケーションの開発が容易になったといえます。

対応するActive RecordとRubyのバージョンは以下の通りです。

  • ActiveRecord 6.0.x with Ruby 2.6 and 2.7.
  • ActiveRecord 6.1.x with Ruby 2.6 and higher.

PythonからもORMで利用可能に

同時に、Cloud SpannerがPythonのORM(Object Relational Mapper)としてよく使われているSQLAclhemyの方言として実装した「sqlalchemy-spanner 1.0.0」もバージョン1.0に到達したことが発表されました

Active Recordでの例と同様に、SQLを意識することなくPythonのオブジェクト操作によってCloud Spannerデータベースの操作を行うことができるため、Pythonで容易にスケーラブルなアプリケーション開発が可能になります。