Babelfish登場!話題のAWSの互換エディションとは?
thumb_BabelfishforAuroraPostgreSQL_01
Babelfish登場!話題のAWSの互換エディションとは?
アンドエンジニア編集部
2021.12.08
この記事でわかること
Babelfish for Aurora PostgreSQLは、2021年10月28日リリースのデータベースサービス用新機能です
Amazon AuroraのPostgreSQL互換エディションで提供されます
追加料金なしに、Microsoft SQL ServerのT-SQLコマンドと通信レイヤを翻訳実行します

さようなら Microsoft SQL Server、こんにちは Babelfish

img_badefishforaurorapostgresql_01

2021年11月2日、AWSのブログにこのように衝撃的な見出しが踊りました。それは2021年10月28日、「Babelfish for Aurora PostgreSQL」のサービス一般利用開始の見出しです。

参考:AWS ブログ さようなら Microsoft SQL Server、こんにちは Babelfish

今からおよそ1年前、2020年12月の「AWS re:Invent 2020」の基調講演で表明された「Babelfish for Aurora PostgreSQL」はデータベースの新しいサービス機能です。Microsoft SQL Server用に作成されたアプリケーションの移行促進のために、T-SQLコマンドを通信レイヤを介して翻訳処理しSQL Serverライセンスに無駄な費用を払う必要はない、という表明でした。

Babelfish for Aurora PostgreSQL概要

Babelfish for Aurora PostgreSQLは、Amazon AuroraのPostgreSQL互換エディションで提供される新機能です。 Microsoft SQL Server用コマンドを翻訳し実行します。

参考:Babelfish for Aurora PostgreSQL

メリットはT-SQLコマンドと通信レイヤを翻訳実行しますので、データベース移行の工数が削減できることです。さらにこれまでのMicrosoft SQL Server資産を活かしながら、順次PostgreSQLのAPIへの移行を進めることができるため移行リスク低減が図られます。

Babelfishはオープンソース化され、オープンソースライセンスに基づき利用することができます。Apach License Version2.0とPostgreSQL Licenseに基づきコードが公開され、AWSがサポートすると公表しています。GitHubでソースコードやドキュメントが公開されており、必要な修正やバージョンアップが計画されています。

参考:Babelfish for PostgreSQL

Amazon Auroraとは?

Amazon Auroraとはクラウド向けリレーショナルデータベースで、Amazon Relational Database Service(RDS)によるフルマネージドサービスです。

MySQL・PostgreSQLと互換性があり、公式サイトによると標準的な MySQL データベースと比較し最大5 倍、PostgreSQL データベースと比較し最大3 倍のスループットを実現していることを利点に挙げています。MySQL・PostgreSQLとは完全互換で新しいリリースのサポートが順次追加されています。

参考:Amazon Aurora

MySQLとは?特徴から使い方・学習方法まで詳しく解説!
PostgreSQLとは?MySQL・Oracleとの違いを解説

Amazon Relational Database Service(RDS)概要

Amazon RDSはAmazon Aurora・PostgreSQL・MySQL・MariaDB・Oracle データベース・SQL Serverの6種類のデータベースエンジンから選択することができます。最適なデータベースエンジンを選択し、必要な管理タスクを自動化することで運用負担を低減しアプリケーション作業に注力することができます。

Amazon Auroraの提供リリースとサポートバージョン

Amazon AuroraのPostgreSQLデータベースは、Aurora PostgreSQL リリース 13.3が最新リリースのバージョンです。

参考:Amazon Aurora PostgreSQL リリースとエンジンのバージョン

Aurora PostgreSQLでは順次マイナーバージョンのサポートを終了しています。2022 3月16 日には、10.11、10.12、11.6、11.7がサポート終了期限を迎えます。引き続き10.14以降、11.9以降がサポートされます。

参考:Amazon Aurora PostgreSQL バージョン10.11、10.12、11.6、11.7のサポート終了のお知らせ

長期サポートが必要でしたらAurora PostgreSQL 長期サポート(LTS)バージョンを選択したいところです。現在のLTSリリースは、「PostgreSQL 11.9、Aurora PostgreSQL リリース 3.4」となります。

現行LTSリリースがBabelfishサポートとなるか明記されていませんが、Babelfish公式サイトではPostgreSQL リリース 13以降がサポート対象とされています。Babelfish対応バージョンのLTSリリースが待たれます。

参考:Aurora PostgreSQL 長期サポート (LTS) リリース

参考:Babelfish: Frequently asked questions Which Babelfish versions are available?

Babelfish for Aurora PostgreSQLの料金

Babelfish for Aurora PostgreSQLはAmazon Auroraに搭載されている機能のため、追加の費用負担なく利用できます。ベースとなるAmazon Auroraの料金はデータベースインスタンス・データベースストレージとI/O消費量・バックアップストレージ・バックトラック・Snapshot Export・データ転送により、決定します。

参考:Amazon Aurora の料金

Babelfish for Aurora PostgreSQLの基本動作

img_badefishforaurorapostgresql_02

Amazon Aurora PostgreSQLの通信レイヤでは「T-SQL over TDS」「PL/pgSQL」の2種類のプロトコルで通信処理を行います。

SQL Serverアプリケーション

アプリケーションの「SQL Server Client Driver」が「T-SQL over TDS」を通じて「Babelfish」によりセマンティック解釈され、Amazon Auroraと通信します。

PostgreSQLアプリケーション

アプリケーションの「PostgreSQL Driver」が「PL/pgSQL」を通じて「PostgreSQL」によりセマンティック解釈され、Amazon Auroraと通信します。

Babelfish for Aurora PostgreSQLの利用方法

Babelfish for Aurora PostgreSQLを利用するには、TDS(Tabular Data Stream)を通じてクライアントとの通信を行います。TDS 7.1 以降がサポートされています。さらに並行してPostgreSQLとのネイティブ接続を行うことも可能です。

参考:Working with Babelfish for Aurora PostgreSQL

Babelfishを用いてPostgreSQLに資産移行することもできます。この場合Babelfishを有効化しSQL ServerのT-SQLを解釈できるように、Aurora PostgreSQL DBクラスタを作成します。そしてBabelfishアセスメントツールであるBabelfish Compass toolを用いて変更点を確認します。

参考:Using Babelfish to migrate to PostgreSQL

Babelfish for Aurora PostgreSQLの制限

Microsoft SQL Serverは登場してから30年以上の技術蓄積があり、BabelfishのT-SQLとの互換性は100%とはいきません。Babelfish for Aurora PostgreSQLで実装されているBabelfishの仕様はドキュメントとして公式オープンソースサイトに掲載されています。

今現在、未実装の機能やシンタックスが多数あり、一部機能のみのサポートのもの多くあります。詳細は以下のリンクでご確認ください。

参考:Babelfish for PostgreSQL T-SQL limitations

参考:Differences between Aurora PostgreSQL with Babelfish and SQL Server

互換性100%とはいかないことはすでに表明されており、どのように違いを吸収するか検討する必要があります。公式サイトのドキュメントではデータベース環境から言語体系・バックアップ方式等多岐に渡る差分と回避策が調査掲載されています。詳細は以下のドキュメントに掲載されていますので、ご興味がありましたらご確認ください。

参考:Managing differences in behavior

Babelfishはまずは情報収集から始めましょう

img_badefishforaurorapostgresql_03

Babelfish for Aurora PostgreSQLは新しく追加されたサービス機能です。実装されているBabelfishはT-SQLを100%実装できていないことを自ら公表しています。

AWSのブログのような「さようなら Microsoft SQL Server、こんにちは Babelfish」というほど、Microsoft SQL Serverに別れを告げるのはむしろリスクがあります。当面は他のユーザの事例を待つか果敢に挑戦してみるかのいずれかになります。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【年収±診断】6つの質問に答えて、真の市場価値をチェック!
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT