orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。

Amazon Auroraを選択する前に知っておいた方がいい話

f:id:orangeitems:20191018170836j:plain

 

※2019年10月18日時点の話です。

Auroraの話

Amazon Auroraってありますよね。

この前、AmazonがOracle DBをAmazonのサービスに移したゾって言うニュースが流れていました。

tech.nikkeibp.co.jp

米アマゾン・ドット・コム(Amazon.com)がついに米オラクル(Oracle)に「勝利宣言」をした。アマゾンは2019年10月15日(米国時間)、社内からOracle Database(DB)を「全廃」したと発表したのだ。最盛期には約7500ものOracle DBが存在し、eコマースや物流、決済、受発注、広告、動画・音楽配信などのバックエンドで長年使われてきた。それらはほぼすべて姿を消したという。

 Oracle DBからの移行先は、アマゾンがクラウドサービスAmazon Web Services(AWS)で提供するDBサービスだ。今後はMySQLやPostgreSQLと互換性のある分散型リレーショナルDB(RDB)サービスのAmazon Auroraをはじめ、NoSQLのDBサービスであるAmazon DynamoDB、データウエアハウス(DWH)のサービスであるAmazon Redshiftなど様々なDBサービスを使い分ける。

 

その中でもAuroraの出番は多かったと思うのですが。

「ウチのOracle DBも、Auroraというデータベースに載せ替えたら、安くなるうえにパフォーマンスも良くなるんじゃないか?え?」

なんていう経営者も出てきそうなので少し状況を整理したいと思います。

結構複雑な話じゃないかと思いまして。

 

Auroraの種類

Auroraは、(ざっくり言うと)AWSでしか動かないデータベースです。

オンプレミスのサーバーでは動きません。

 

2種類あります。

・MySQL との互換性を持つ Amazon Aurora

・PostgreSQL との互換性を持つ Amazon Aurora

 

なんだびっくりした。「AWSでしか動かない」なんて言うけど、MySQLや、PostgreSQLと互換性があるのなら、最悪オンプレでMySQLやPostgreSQLを動かせば持ってこれるんだね。

それは正しいんですがここからは話がややこしいのです。

 

MySQLとの互換性を持つ Amazon Aurora

AuroraはまずMySQL版からリリースされましたし世界的に見てもこちらのほうが人気が高いのですが、互換性を持つといっても注意点があります。

互換性のあるMySQLのバージョンは、5.6か、5.7です。

で、現在のMySQLの最新バージョンは、2018年4月にリリースされた8.0です。

5.6/5.7と、8.0じゃ、大分古いね!と思った人は待ってください。

MySQLのメジャーバージョンは、

5.6 → 5.7 → 8.0

なのです。ちなみに5.6は2013年2月。5.7は2015年10月です。

ま、とにかくAuroraの「MySQL互換」は、バラ色ではないことはわかってください。

もう一つややこしい話が。MySQL自体はオープンソース(OSS)ですが、現在商標権も著作権も、Oracleが保持しているということです。

Oracle DBをAuroraに移しましょう、というときMySQL互換のAuroraだとするとちょっと話がややこしいと思いませんか?

もしAuroraとのつきあいを将来辞めるとなったとき、MySQLに返ってくることを考えるとするならばその後ろにはORACLEがいます。どこまでAmazonがMySQLの互換性を最後まで担保するかも不明です。

ちなみに、AWS RDSではMySQL 8.0もサポートしており、MySQLと縁を切りたくないのであればこっちの方が現実的なのかもと、野次馬的には思っています。

 

PostgreSQL との互換性を持つ Amazon Aurora

Auroraが言うPostgreSQL互換も、またバージョン9.6.8~10.7までのことを指します。

一方で、PostgreSQLの最新バージョンは12です。バージョン10が出たのが2017年10月、11は2018年10月、12は2019年10月。

MySQLとは違って、企業が著作権や商標権を握っているわけではありません。

この前、OracleDBからAuroraに移った住信SBIも、PostgreSQL互換でしたね。私も選択するならPostgreSQLのほうかなと思います。

 

tech.nikkeibp.co.jp

 

とにかく、互換と言ってもそれそのものではない。最新バージョンを実装するかも不明、ということは覚えておくべきかと思います。

 

Auroraはどこかで独立するのではないか?

Aurora自体は、MySQL互換にしろPostgreSQL互換にしろ、本家の仕様を引き継ぎながらクラウド最適化し、パフォーマンスで本家を乗り越えるぞというのがビジョンなのではないかと思います。

ただ、このビジョンをいつまで継続するかは不明だと思います。

OracleもMySQLのモノマネをいつまでもすることを、このまま許すのか。5.6、5.7の後のバージョンを8.0にしたことや、AWSがバージョン8.0互換をリリースしないことも含めて、確実なことは言いきれないのではないかと思います。

 

Oracleエリソン会長もすごく攻撃してたし・・ね。

japan.zdnet.com

 

PostgreSQLのほうは最新バージョンにゆっくり対応していきそうなものですが。

元のxTECHの記事では、

 AWSが提供するOracle DB移行の支援サービスにこうした苦い経験から得た知見が盛り込まれているならば、そのサービスの内容はかなり充実したものになるだろう。単なる社内失業対策ではなく、AWSのDBサービスを売り込む上で大きな武器になりそうだ。

 

と結ばれていました。

まあAWSがAuroraを使うのは社内プロダクト(内製)なので全然問題ないものの、他社が複雑なシステムでAuroraを採用するのは、AWSロックインそのものなのかもしれないな、と思っています。

まあ、戦略的にロックインされに行く、という考え方ももちろんアリです。

私は、オンプレでもマルチクラウドでも動かせるDBMSを採用すべきとは思いますが、これはもう考え方の話ですね。