「Aurora(オーロラ)は、AWS史上、もっとも速いスピードで成長を続けているサービス」―7月28日、アマゾン ウェブ サービス ジャパンが行った報道陣向けの説明会において、同社 技術本部 エンタープライズソリューション部長/シニアソリューションアーキテクトの瀧澤与一氏は、データベースサービス「Amazon Aurora」への注目度の高さをこう表現しました。2014年の「AWS re:Invent」で発表されて 以来、MySQL互換のマネージドデータベースサービスとして多くのユーザを獲得してきたAuroraですが、その勢いはリリースから2年経った現在も衰えることを知りません。なぜAuroraはこれほど力強い支持を得られているのでしょうか。説明会の内容をもとに、Auroraというデータベースエンジンのいまに迫ってみたいと思います。
説明会のスピーカを務めたアマゾン ウェブ サービス ジャパン 瀧澤与一氏(右)と岡嵜禎氏
なぜAmazon Auroraなのか?
前述したように、AuroraはAWSが提供するマネージドデータベースサービス「Amazon RDS(Relational Database Service) 」のラインナップメニューのひとつで、MySQLと互換性をもつエンジンです。もっとも他のRDSとは異なり、Auroraは「パフォーマンスやスケーラビリティなど、クラウド時代のニーズに最適化させるためにAWSがゼロから再設計したデータベース」( 瀧澤氏)という位置づけがされています。MySQLと互換性はありますが、はじめから"クラウドありき"で開発されたAuroraは、MySQLやその他のRDBMSにはない特徴をいくつも備えているのです。
AWS史上最速のスピードで成長を続けるAurora。リージョン内の3つのAZにまたがって6本のディスクを配置しデータベースの可用性を担保しているのが最大の特徴。
たとえば「1つのリージョン内で3つのAZ(Availability Zone)にまたがって6本のディスクを配置し、それぞれのディスク上でレプリカを作成する。仮に2本のディスクに障害が起こってもリード/ライトは保証される。3本の障害でもリードは可能」( 瀧澤氏)という点はクラウドにおけるデータベースの可用性を考慮するとき、非常に魅力的な特徴です。これらのレプリケーションは自動で行われるため、ユーザ側に余計な負荷は生じません。また万が一、データベースクラッシュが起こっても、キャッシュとログをAuroraのプロセスから分離できるため、Aurora再起動時にもキャッシュは残ったままで利用できます。気になるレプリケーションのレイテンシも10~20ミリ秒程度と、数秒前後のMySQLに比べて非常に低く抑えられているのがわかります。
スケーリングに関しても「64テラバイトまではディスクがシームレスにスケールする」( 瀧澤氏)仕様になっており、ユーザ側で事前にプロビジョニングする必要はありません。この点も、クラウド時代のニーズ - 増え続けるデータを捨てることなく、スケーリングで解決したいというユーザの要望に応えた特徴だといえます。
Auroraが他のRDSと異なるのは機能面だけではありません。価格体系も"クラウドネイティブ"であることを前提にしており、ユーザは「実際に利用したディスク容量」に応じて料金を支払う、いわゆる従量課金制が基本です。このほかバックアップストレージ容量に応じて課金がされますが、プロビジョニングに関する料金は不要です。
進化するAurora
AWSがパブリッククラウド市場でNo.1の座を維持し続けている理由はいくつもありますが、「 新機能追加などのイノベーションのスピードが年々加速している」( アマゾン ウェブ サービス ジャパン 技術本部 本部長 岡嵜禎氏)ことは大きなポイントのひとつです。たとえば2009年の時点では1年間でリリースされた機能改善や新サービスの数は24程度でした。しかしその5年後の2014年には516に、そして2015年には722にも上っています。おそらく今年もその数を更新することになるでしょう。
年々加速するAWSのイノベーションのスピード。2015年に追加された新機能や新サービスの数は700を超えた
こうした絶え間ないイノベーションはもちろんAuroraに対しても行われています。以下、瀧澤氏が紹介したここ数ヵ月のAuroraアップデートの概要を挙げておきます。
Auroraクロスリージョンレプリカサポート
6月2日よりリージョン間でのリード/ライトが可能になりました。たとえば東京リージョンと米国東部リージョンをまたいでレプリカを作成することができるようになっています。クロスリージョンを利用するためのセットアップなどはすべてマネージドサービスに含まれているので、ユーザ側が行う必要はなく、コンソール経由で簡単に立ち上げることができます。ディザスタリカバリ環境、または他のリージョンにデータベースを移設するといったケースでの利用に適しています。リージョン障害が発生した場合には、クロスリージョンレプリカをマスターとして昇格することも可能です。
スナップショットをアカウント間で共有可能に
5月19日よりAuroraのスナップショットを他のAWSアカウントだけでなくパブリックに共有できるようになりました。また、同じリージョン内の他のAWSアカウントで起動しているAuroraスナップショットからリストアすることも可能になっています。データベース環境を分離したいとき、あるいはデータの共同利用を進めたいときなどに有効です。
Auroraで暗号化されていないスナップショットから暗号化クラスタを作成可能に
Auroraはリリース当初、暗号化機能は利用できなかったのですが、2015年12月から暗号化クラスタを作成できるようになりました。そして新たな機能として、暗号化されていないAuroraクラスタを、KMS(Key Management Service)を使って暗号化されたAuraraクラスタに移行できるようになっています。スナップショットからのリストアも可能ですが、その際は「Enable Encryption」を"Yes"に設定してから使用するキーを選択する必要があります。
ムンバイ(インド)リージョン対応
6月28日にAWSの最新リージョンがインド・ムンバイに開設されました。ムンバイリージョンでは最初から対応サービスが非常に多く、Auroraも最初から使えるようになっています。
MySQLバックアップからAuroraクラスタを作成可能に
7月21日より、オンプレミスやAmazon EC2上にMySQL環境を構築している場合、そのバックアップのスナップショットをAmazon S3にロードし、そこからAuroraクラスタを作成することができるようになりました。これにより、MySQL→Auroraのマイグレーションが非常に効率的に行えるようになります。Auroraにすでに備わっているMySQLからレプリケーションを実行する機能とあわせて利用すれば、アプリケーションを停止することなくMySQL→Auroraのマイグレーションが可能になります。「 2テラバイト以上の大容量データのマイグレーションでもパフォーマンスのインパクトを最小限に抑えて移行することが可能。mysqldump utilityを利用した場合と比較すると20倍高速」( 瀧澤氏)
Aurora in Japan
Auroraはグローバルでの成長が著しいサービスですが、国内企業でもAuroraに注目しているところは少なくありません。とくにエンタープライズ企業や大規模Webサービス企業によるAuroraの検証/導入は日本でも進みつつあります。瀧澤氏は国内事例の一部として、毎日新聞、グラニ、ドワンゴの名前を挙げています。
毎日新聞
2015年12月からWebサイトをAWS上にフルマイグレーション。コンテンツを格納しているデータベースはすべてAuroraで構築。当初はRDS for MySQLを検討していたが、「 高速なフェイルオーバー」「 障害耐性」「 MySQLより低コスト」が理由で本番移行2週間前にAurora採用を決断(アプリケーションの変更はいっさいなし)
毎日新聞のAWSアーキテクチャ。記事データはすべてAuroraに格納している
グラニ
2015年10月にRDS for MySQLからAuroraへ移行。トランザクションのレスポンスタイムが平均15ミリ秒から5.5ミリ秒に。また、データベース統合も実施し、年間2200万円超のコスト削減効果
グラニではMySQLからAuroraに移行したことで3倍以上のパフォーマンス向上を得られれたほか2200億円の経費削減効果も
ドワンゴ
旧ライブドアから譲り受けた国産RSSリーダー「LDR」の移行先としてAuroraを採用。古くて特定データセンターで動くことを前提とした10テラバイト以上のコードがMySQL上に存在していたが、5系統の記事データベースをアプリケーションレイヤで水平分割して格納、5倍のスループットを実現(現在は1系統のAuroraへの集約を検討)
「データレイク」という考え方
冒頭でも触れたとおり、Auroraはクラウドに最適化したデータベースエンジンです。したがって既存のRDBMSを使ったデータ分析では前提に入っていなかった「データレイク」「 API指向」という概念を取り入れています。データの収集→分析→可視化というプロセスにおいて、集積と分析の間に「データレイクによる保存」というステップを組み込み、「 データの全期間保存および共通APIによるアクセス」を実現しているのです。川のように流れこむデータをクラウド上のレイク(湖)でいったんすべて受けとめる ―データがどんなに増えてもクラウドというレイクがあることで、ユーザはデータを選んで捨てるという作業から解放されることになります。
クラウド時代のデータ分析は「データレイク」にすべてのデータをスケール前提で保存しAPI経由でアクセスする
であれば、クラウド上に構築されたデータベース、中でもクラウドに最適化されたデータベースを使えば、データ分析も効率化/高速されると考えるのは当然のことです。クラウドへのデータ移行が進めば進むほど、Auroraへの注目度が高まるのは自然な現象といえるかもしれません。
しかし、多くの企業はすでに既存のデータベース環境に大量のデータを格納しています。これらをAuroraやその他のクラウド上のするのはコスト、時間、作業負荷などを考えても容易ではありません。そこでAWSはAuroraや他のRDSに移行を支援するため、現在2つのサービスを提供しています。
AWS Database Migration Service
オンプレミスまたはEC2上のデータベースからAmazon RDSのいずれかのデータベースに移行するサービス。RDS間での移行も可能。同一でも異なるエンジン間でも移行できる
AWS Database Migration Serviceではレプリケーションの方法としてフルロードと差分更新による継続的なロード(CDC)の2つを用意している。
AWS Schema Conversion Tool
OracleやSQL Serverからオープンソース系のデータベースエンジン(MySQL/Aurora/MariaDB/PostgreSQL)に移行するために必要なスキーマやコード変換といったタスクを自動化。移行の難易度も診断
AWSが提供する移行ツールを使ったデータベース移行のステップ
これらの移行サービスにおいても「Auroraの注目度は非常に高い」( 瀧澤氏)とのこと。単なるRDBMSにとどまらず、クラウドネイティブなデータベースエンジンとしてユーザのニーズに応じて絶え間なく変化しているからこそ、ユーザも自社のアセットであるデータの格納先として期待と信頼を寄せるのかもしれません。「 AWS史上、もっとも成長スピードが速いサービス」として、これからもAuroraのダイナミックな進化は続いていきそうです。