45
Amazon RDS for Aurora 2015.02.07

jaws-ug kansai-special_aurora_20150207

Embed Size (px)

Citation preview

Page 1: jaws-ug kansai-special_aurora_20150207

Amazon RDS for Aurora2015.02.07

Page 2: jaws-ug kansai-special_aurora_20150207

#jawsug で色々tweetしてもらえると 喜びます

Page 3: jaws-ug kansai-special_aurora_20150207

金春利幸(Toshiyuki Konparu)

R3 institute Ltd.Manager, Solution Architect

JAWS-UG Osaka Core Member

Work

Community

Official kintone Evangelist

SocialFacebook: t.konparuTwitter: t_konparu

JOIN US!

Page 4: jaws-ug kansai-special_aurora_20150207

R3 instituteのご紹介

2000年創業のシステムによる問題解決会社

2012年からAWSのパートナー

2014年からサイボウズ(kintone)のパートナー

業務設計 仕様検討 設計 開発 教育 運用

すべてをワンストップで提供

http://www.r3it.com/

アールスリー 検索

Page 5: jaws-ug kansai-special_aurora_20150207

Amazon RDS for Aurora は現在プレビュー中です

Page 6: jaws-ug kansai-special_aurora_20150207

Amazon RDS for Aurora プレビュー来た人?

Page 7: jaws-ug kansai-special_aurora_20150207

私は間に合いませんでした

Page 8: jaws-ug kansai-special_aurora_20150207

今回の内容はAuroraのドキュメントをベースにしていますが私の個人的推測が含まれています

Page 9: jaws-ug kansai-special_aurora_20150207

Auroraをざっと説明すると

• MySQL5.6互換で • MySQL5.6よりも最大5倍高速で • 可用性が高く • ストレージ容量が自動的に拡張する • Amazon RDSの5番目のDBエンジン

Page 10: jaws-ug kansai-special_aurora_20150207

Auroraの設計思想

• サービス指向で分散型のアーキテクチャ • AWSの既存サービスを活用する • 従来のDBでは密結合されていた構成要素(SQL、Transaction、Logging、Storage)を分離し、マルチテナント化し疎結合にする

Page 11: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ

SQL

Transaction

Caching

Logging

Storage

モノリシックなアーキテクチャ

Page 12: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ

SQL

Transaction

Caching

Logging

Storage

レプリケーション (同期型と非同期型がある)

SQL

Transaction

Caching

Logging

Storage

モノリシックなアーキテクチャ

Page 13: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ2

SQL

Transaction

Caching

Logging

Storage

Page 14: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ2

SQL

Transaction

Caching

Logging

Storage

SQL

Transaction

Caching

Logging

Storage

シャーディング(Shared Nothing) (データの種類や特定のキーによって読み書き先を切り替える)

Page 15: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ

SQL

Transaction

Caching

Logging

Storage

Page 16: jaws-ug kansai-special_aurora_20150207

従来のDBでのアプローチ

SQL

Transaction

Caching

Logging

共有ストレージ型分散

SQL

Transaction

Caching

Logging

Storage

Page 17: jaws-ug kansai-special_aurora_20150207

Auroraの設計思想

SQL

Transaction

Caching

Logging

Storage

Page 18: jaws-ug kansai-special_aurora_20150207

Auroraの設計思想

SQL

Transaction

Caching

Logging

Storage

Amazon S3

DynamoDB

Route53

SimpleWorkFlow

処理をする機能

データを保存する機能

Page 19: jaws-ug kansai-special_aurora_20150207

Auroraをざっと説明すると

• MySQL5.6互換で • MySQL5.6よりも最大5倍高速で • 可用性が高く • ストレージ容量が自動的に拡張する • Amazon RDSの5番目のDBエンジン

Page 20: jaws-ug kansai-special_aurora_20150207

MySQL5.6互換

EC2 Instance

RDS for MySQL

Page 21: jaws-ug kansai-special_aurora_20150207

MySQL5.6互換

EC2 Instance

RDS for Aurora

アプリケーションの修正なく移行できる

Page 22: jaws-ug kansai-special_aurora_20150207

MySQL5.6より最大5倍高速

• 600万 insert /分 • 3000万 select / 分 • RDS for MySQLの最高性能よりも最大5倍高速 • EC2の最高インスタンスで稼働させるMySQLよりも最大5倍高速

Page 23: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

Page 24: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

DBの性能で一番のボトルネックはI/O

Page 25: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

DBの性能で一番のボトルネックはI/O

I/Oを分散できれば速くできる

Page 26: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

DBの性能で一番のボトルネックはI/O

I/Oを分散できれば速くできる

I/Oを非同期にできればさらにいい

Page 27: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

DBの性能で一番のボトルネックはI/O

I/Oを分散できれば速くできる

非同期分散I/Oでは、データの一貫性・安全性が問題になる

I/Oを非同期にできればさらにいい

Page 28: jaws-ug kansai-special_aurora_20150207

なぜ速いと言えるのか???

DBの性能で一番のボトルネックはI/O

I/Oを分散できれば速くできる

非同期分散I/Oでは、データの一貫性・安全性が問題になる

分散I/Oの鍵はQuorum

I/Oを非同期にできればさらにいい

Page 29: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

Page 30: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

書き込みは6台のうち4台のディスクに書き込めば完了

Page 31: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

書き込みは6台のうち4台のディスクに書き込めば完了

Page 32: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(読込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

Page 33: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(読込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

読み込みは6台のうち3台のディスクから読み込めれば完了

Page 34: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(読込)

Auroraエンジン

Storage Storage Storage Storage Storage Storage

AvailavilityZone A AvailavilityZone B AvailavilityZone C

読み込みは6台のうち3台のディスクから読み込めれば完了

Page 35: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込と読込の関係)

Storage Storage Storage Storage Storage Storage

4台で書き込めていれば

Page 36: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込と読込の関係)

Storage Storage Storage Storage Storage Storage

4台で書き込めていれば

3台から同じデータが来れば正しいと言える

Page 37: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum(書込と読込の関係)

Storage Storage Storage Storage Storage Storage

4台で書き込めていれば

3台から同じデータが来れば正しいと言える

Page 38: jaws-ug kansai-special_aurora_20150207

AuroraでのQuorum

分散ストレージを利用し、Quorum原理を適用することでI/Oを6台のストレージに分散しつつDBの一貫性、データの安全性を確保している

しかし、常にAZをまたいだ読み書きとなるのになぜ速いのか?????

キャッシュが肝ではないか?(推測)

Page 39: jaws-ug kansai-special_aurora_20150207

AuroraでのRead Replica

Storage

Master Read Replica

ストレージを共有しているのでレプリカラグはほとんどない フェイルオーバー時にデータのロスがない

15台まで作成可能

Page 40: jaws-ug kansai-special_aurora_20150207

Storageの自動拡張

• Storageはマルチテナント化されている • 特定のDBに対して特定の容量が確保されているわけではない • Storageの容量はリージョンごとにAWS全体としてサイジングされ十分な空きが用意されている(推測)

• 10GBから開始し、10GB単位で最大64TBまで自動的に拡張していく

• ストレージが分散していること動的リサイズが可能になっている

Page 41: jaws-ug kansai-special_aurora_20150207

その他の特徴

• データキャッシュはプロセスが分離されておりDB再起動時にもデータキャッシュが存在する形でスタートできる

• キャッシュもSSDに書き込まれておりこれが速さの肝かも(推測)

• S3へ自動的にバックアップが取られる • 1秒単位でのデータ復元 • 従来のRDS for MySQLの約1.2倍の価格

Page 42: jaws-ug kansai-special_aurora_20150207

個人的な注意点

• 5倍の性能は鵜呑みにせず、性能特性をちゃんとみたほうがよさそう

• MySQLとの互換性についても単純なSQL以外を使っているアプリでは検証したほうがよさそう

• ただ、素晴らしいプロダクトと言えそう!

Page 43: jaws-ug kansai-special_aurora_20150207

Save The Date!

3月22日 新宿でJAWS-UGの全国イベントがあります。私、実行委員長なので来てください。お願いします。

Page 44: jaws-ug kansai-special_aurora_20150207

JAWS DAYS 2015 Road Trip

3月21日(土)大阪から東京まで無料のバスが出ます(行きだけ。帰りは自費で)

大阪 名古屋 東京

Page 45: jaws-ug kansai-special_aurora_20150207

Thank you