new cloud design pattern using amazon aurora

29

Upload: -

Post on 07-Jan-2017

2.530 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: New Cloud Design Pattern using Amazon Aurora
Page 2: New Cloud Design Pattern using Amazon Aurora

New Cloud Design Patternusing Amazon Aurora

Amazon RDS for Aurora東京ローンチ記念セミナー

classmethod.jp 2

2015 年 11 月 10 日 クラスメソッド株式会社AWS コンサルティング部 大栗 宗

Page 3: New Cloud Design Pattern using Amazon Aurora

自己紹介大栗 宗(おおぐりはじめ)@maroon1stAWS 環境におけるインフラ環境のコンサルティング、設計、構築

http://dev.classmethod.jp/author/oguri-hajime/

classmethod.jp 3

Page 4: New Cloud Design Pattern using Amazon Aurora

クラスメソッド株式会社• 2004 年設立• 主な事業内容

– AWS コンサル / 監視– モバイルアプリ開発– データ分析環境開発

• APN プレミアコンサルティングパートナー• APN コンピテンシー:ビッグデータ、モバイルclassmethod.jp 4

Page 5: New Cloud Design Pattern using Amazon Aurora

• 社員執筆による技術ブログ

http://dev.classmethod.jp• Aurora 関連 34 本• re:Invent 2015 関連 200 本• AWS 関連: 2000 本以上

classmethod.jp 5

Page 6: New Cloud Design Pattern using Amazon Aurora

Developers.IO の負荷問題• アクセス数 → re:Invent 等イベント

• 投稿数   → 4800 本以上

• 投稿者   → 社員全員

• ランク制  → SNS ポイントの集計

classmethod.jp 6

Page 7: New Cloud Design Pattern using Amazon Aurora

Developers.IO の構成• Elastic Beanstalk + WordPress が基本構成• eb clone で新環境• Snapshot で移行

classmethod.jp 7

Page 8: New Cloud Design Pattern using Amazon Aurora

移行結果

classmethod.jp 8

MySQL Aurora最小値 40 ms 18 ms最大値 110 ms 35 ms中央値 50 ms 25 ms

MySQL Aurorainsert 30~50 ms 9 msother 3 ms 2 msselect 5 ms 3 msdelete 25~30 ms 7 msupdate 25~30 ms 6 ms

Top database operationsby time consumed

Databese response time

Page 9: New Cloud Design Pattern using Amazon Aurora

移行結果• 移行前: db.m3.medium (MySQL Multi-AZ)

移行後: db.r3.large (Aurora)$ 172.8 → $ 252

• 標準でデータが 6 重化されるため十分な対障害性があるので Single-AZ で十分と判断

• 約 1.5 倍のコストで 2~5 倍の性能

classmethod.jp 9

Page 10: New Cloud Design Pattern using Amazon Aurora

AURORA 移行中の事例

SNS サイトでの移行

classmethod.jp 10

Page 11: New Cloud Design Pattern using Amazon Aurora

SNS サイトの DB• RDS(db.r3.8xlarge) • エンジンは MySQL• 9 台のレプリカ• 継続的な書き込み• EC2−Classic 環境

classmethod.jp 11

Page 12: New Cloud Design Pattern using Amazon Aurora

Aurora に対する期待• 高性能化による台数削減

→ ランニングコスト減少  管理対象の減少

• 高可用性→ 現状はコスト削減のため Single-AZ  障害時に高速な回復

classmethod.jp 12

Page 13: New Cloud Design Pattern using Amazon Aurora

classmethod.jp 13

鋭意移行検証中

Page 14: New Cloud Design Pattern using Amazon Aurora

NEW CDP の提案

DB Scheduled Scale Up

classmethod.jp 14

Page 15: New Cloud Design Pattern using Amazon Aurora

CDPAWS クラウドデザインパターン (AWS Cloud Design Pattern, 略して CDP と呼ぶ ) とは、 AWSクラウドを使ったシステムアーキテクチャ設計を行う際に発生する、典型的な問題とそれに対する解決策・設計方法を、分かりやすく分類して、ノウハウとして利用できるように整理したものである。

http://aws.clouddesignpattern.org/index.php/ より

classmethod.jp 15

Page 16: New Cloud Design Pattern using Amazon Aurora

DB の良くある悩み• DB は性能向上を Scale Up で行うため

サービス期間中には切替えられません。そのためピーク時の負荷に合わせたサイジングを行います。常時ピーク性能のスペックを使用するので高コストになりがちです。

classmethod.jp 16

Page 17: New Cloud Design Pattern using Amazon Aurora

解決方針• Aurora は高速なフェイルオーバーが可能。

サービス中に、スペックの異なるインスタンスへ入れ替えが可能ではないか?→ DB Scheduled Scale Up

classmethod.jp 17

Page 18: New Cloud Design Pattern using Amazon Aurora

DB Scheduled Scale Up• 負荷のピーク前に Scale Up でスペック

を上げて、ピーク後に Scale Down でスペックを下げる。

• 高速なフェイルオーバーと定時起動が必要となる。

classmethod.jp 18

Page 19: New Cloud Design Pattern using Amazon Aurora

高速なフェイルオーバー• フェイルオーバーを更に高速に

→ MariaDB Connector/J• Aurora のグローバル変数 (innodb_read_only)

で writer と reader を判断する JDBC ドライバ。

• 1〜 2秒で切り替えが可能。

classmethod.jp 19

Page 20: New Cloud Design Pattern using Amazon Aurora

定時起動• 決まった時刻に API を実行したい

→ Lambda でスケジュール実行

• コードの記述のみ (OS の管理無し ) で実行可能なコンピューティング リソース

• cron形式でスケジュールを記述可能

classmethod.jp 20

Page 21: New Cloud Design Pattern using Amazon Aurora

構造1. 大きなスペックの Aurora を

reader として起動する

classmethod.jp 21

Page 22: New Cloud Design Pattern using Amazon Aurora

構造2. 両方の Aurora へ向くように接続情報を更新する

classmethod.jp 22

Page 23: New Cloud Design Pattern using Amazon Aurora

構造3. Aurora をフェイルオーバー

EC2 の接続先も切り替わる

classmethod.jp 23

Page 24: New Cloud Design Pattern using Amazon Aurora

構造4. 大きいインスタンスのみに接続情報を更新する

classmethod.jp 24

Page 25: New Cloud Design Pattern using Amazon Aurora

構造5. 小さいインスタンスを削除

classmethod.jp 25

Page 26: New Cloud Design Pattern using Amazon Aurora

注意• 現状では Java アプリケーションのみ対応。

(MariaDB Connector/J は JDBC ドライバ )• 接続情報の更新は、 Run Command や Elastic

Beastalk の B/G デプロイ等が考えられる。

• MariaDB MaxScale で対応してくれるとアプリの言語に依存しない。

classmethod.jp 26

Page 27: New Cloud Design Pattern using Amazon Aurora

まとめ

classmethod.jp 27

Page 28: New Cloud Design Pattern using Amazon Aurora

まとめ• Single-AZ でも十分な対障害性。• エンタープライズ DBだけでなく OSS

DB と比較して低価格の場合も。• 高速なフェイルオーバーでダウンタイム

を極小化。 MariaDB Connector/J で更に高速に。

classmethod.jp 28

Page 29: New Cloud Design Pattern using Amazon Aurora