[速報] SQL ServerからAurora PostgreSQLへの移行を促進するBabelfish for Aurora PostgreSQL (Preview) が発表されました #reinvent

コードの変更を一切せずにSQL ServerからAurora PostgreSQLへの移行ができる!?
2020.12.02

しばたです。

re:Invent 2020初日から盛り上がってますね。
Andy Jassyさんのキーノートの中でSQL ServerからAurora PostgreSQLへの移行のための新しいサービスBabelfish for Aurora PostgreSQL (Preview)が発表されたので現時点でわかっていることをまとめてみました。

注意事項

Babelfish for Aurora PostgreSQLは本日時点ではプレビュー版です。
本記事の内容は今後変更される可能性があります。

Babelfish for Aurora PostgreSQL とは?

Babelfish for Aurora PostgreSQL(以後 Babelfishと表記)に関する情報は、現時点では以下のサービスページと公式ブログでのアナウンスが存在しています。

サービスの概要に

Run Microsoft SQL Server applications on PostgreSQL with little to no code change

および

Babelfish is a new translation layer for Amazon Aurora PostgreSQL that enables Aurora to understand commands from applications written for Microsoft SQL Server.

とあり、BabelfishはDatabase Migration Serviceの様なデータ変換による移行を行うものではなく、Aurora PostgreSQLにSQL Serverで使用するTabular Data Stream Protocol(TDS)やTransact-SQL(T-SQL)の通信・クエリを受け付けるエンドポイントを設けアプリケーションの変更をゼロまたは最低限にして移行を図る仕組みとされています。

(図は https://aws.amazon.com/rds/aurora/babelfish/ より引用)

上図の様にAurora PostgreSQLにSQL Serverクライアント用のエンドポイントが増えるイメージですね。

どこまでの互換性があるのか?

現時点でどこまでの互換性があるのかは明らかにされていません。

AWS Open Source Blogの記事では

Babelfish adds an endpoint to PostgreSQL that understands the SQL Server wire protocol Tabular Data Stream (TDS), as well as commonly used T-SQL commands used by SQL Server. Support for T-SQL includes elements such as the SQL dialect, cursors, catalog views, data types, triggers, stored procedures, and functions.

とあり完全互換を目指している雰囲気は感じます。

費用

BabelfishはAurora PostgreSQL組み込みの機能として提供され追加コストはかからないとされています。

利用するには?

現時点では「Register for the preview」ということで申し込みだけできる様です。
とりあえず申し込んでみましたがすぐに試せる感じではありませんでした。

OSSとしての公開

サービスページに

Coming soon: Babelfish for PostgreSQL Open Source Project
Babelfish source code will soon be available on GitHub under the Apache 2.0 license.

とありオープンソースとしてその実装が2021年の第一クオーターを目標に公開される予定となっています。

コミュニティからのフィードバックによるサービスの発展と、Babelfish for PostgreSQLという名前の通りAurora PostgreSQLだけでなく通常のPostgreSQL向けの機能としての提供を意図している様です。

(https://babelfish-for-postgresql.github.io/babelfish-for-postgresql/ より引用)

最後に

取り急ぎ現時点でわかることは以上となります。
新たな情報がわかれば随時更新していきます。