RDSにMySQL互換のデータベースAmazon Aurora登場 - AWS re:Invent 2014 参加レポート #4
sparkgene
こんにちは、sparkgeneです。
初日のKeynoteで発表がありましたAmazon Auroraのセッションを聞いてきました。
元々のスケジュールでは公開されておらず(当然か)、Keynote後に新規セッションとして登場しました。
もちろん登場してすぐに申し込みをして、早めに移動したので会場には入れました。
今のDBは70年台に登場した構成から大きく変わっていないと言うことで、AWSでは今のクラウドの時代にあった形にre:imageしてみましたと。
AWSが出した結果が Amazon Aurora
- サービスオリエンテッド
- スケールアウトが容易でマルチテナント(まずはストレージから)
- MySQL5.6互換で、既存のアプリケーションでも動く
ロギングとキャッシュ、ストレージレイヤーを分離して、スケールアウトが容易にできるようにした。
AWSの他のサービスと連携した作りで、バックアップはS3を使います。
デフォルトでハイアベイラビリティー。1つのAZに2つのコピーを持ちます。
ストレージはSSD。最大で64TByteまで利用可能で、シームレスに拡張可能。料金は使っているデータ量のみ。
クラッシュリカバリ
- 方法既存のDB:最後のチェックポイントからredoログを元に復帰。
- Aurora:ディスク読み込みの機能として、ブロック毎に持っているredoログからオンデマンドで反映
Auroraのキャッシュはデータベースのプロセスから切り離されてます。その為DBを再起動してもキャッシュは残っている。そのため復帰が速い
Auroraのレプリカ
MySQL:binlogを反映しなければならない。Masterへ負荷がかかる。フェイルオーバーではデータを消失する可能性がある。
Aurora:データストレージは共有されるから、binlogを使って反映する必要がない。15台のレプリカまでであれば、Masterへの負担は少ないストレージを共有しているので、フェイルオーバーしてもデータの消失はない
障害のシュミレートがSQLの発行で可能
- ノード障害
- ディスク障害
- ネットワーク障害
パフォーマンス(r3.8xlarge [コア32 メモリ244GB])
- 書き込み
- DMLスループット:105,000/sec
- DBコネクション:4000
- 読み出し
- SELECTスループット:546,000/sec
- DBコネクション:1000
- レプリケーション遅延
- Aurora:13,800件の更新/secで7.27msぐらい
- MySQL:2,000件の更新/secで2secぐらい
テーブル数が増えてもMySQLの用に劣化することがほとんど無い
コネクション数が増えて同時に処理が走っても、劣化が少ない
キャッシュを有効(デフォルトON)にすると更に速いと
更新処理が増えたとしても、リードレプリカの遅延も大きく劣化しない。
「MySQLなんて秒だよw(ドヤ顔)」で説明してました。
Auroraはデータベースを運用するのをもっと簡単にします。
料金
r3.largeを24時間30日使っても、24,000円を切る(114円=$1)
現在はベータ版で2015年の早い段階でリリース予定
プレビュー版を申し込めます→https://aws.amazon.com/jp/rds/aurora/preview/
Auroraの開発チームの皆様
質疑応答
Q:データの暗号化は対応しているか?
A:プレビュー版ではまだ暗号化のサポートは していない
Q:ローカルで動作確認できるバージョンは提供されるのか?
A:Local versionは存在しない。開発ではMySQLを使えばいいい。
Q:今後出てくるMySQLのバージョンとも互換性はあるか?
A:どのような機能が入ってくるかはわかないから、今後出てくるバージョンのことはまだわからない。
Q:オーロラから、MySQLへのデータ移行はできるか
A:ダンプしたデータをインポートすればいい
Q:オーロラは何ベース?
A:ストレージとかはAmazon製。それ以外は・・・。
Q:クライアントライブラリはあるのか?
A:MySQL互換なので、ODBC、JDBCドライバは同じものが使える
他にも質問はありましたが、聞き取れたものだけ書いてます。