我参加了亚马逊RDS Aurora东京启动纪念研讨会

简述

我参加了Aurora的研讨会,并记下了我感兴趣的地方。有时候还写下了自己的意见作为备忘录。

只看中某一个方面。

    • RDSでアドバンスド・モニタリングが提供される

50+ system/OS metrics
sorted process list view
1-60 sec granularity
alarms on specific metrics
egress to CloudWatch Logs
integration with 3rd-party tools

大きなテーブルへのAlter Table系の時間はおおきくは改善していない

亚马逊网络服务: 13:30-

    • データベースについて顧客の話を聞いて以下が重要な事だとわかった

障害があっても動き続ける
スケールできる
専門家がいなくても援用・管理できる
ライセンス管理しなくてもいい

Auroraはエンタープライズ級データベースとして前述の顧客からの要求を考慮して作った
Auroraの概要

ストレージは3つのAZにまたがっている
変更はS3にバックアップ
1つのMasterはAZの1つにある
15 read replicaが作れる
Masterが障害のとき、どのread replicaでもfail overできる

エンタープライズに最適

30秒以内にファイルオーバー
最大50万回/秒, 10万回/秒の書き込み性能が最大サイズのマスタ1台あたりさばける
read replicaは15個までで10[ms]のシンク遅延
サイズは64TBまで拡張できる、DBに最適化したストレージ

AWSの歴史上最も早く成長しているサービス. 以下は利用している企業

Expedia
GE
Pacific Gas and Electric Company
国連
etc.

Expediaの例

SQL Server => Auroraへ乗り換え
25,000インサート/秒 (ピーク時70,000)
平均レスポンスタイムは書き込み30[ms], 読み込み17[ms]
コストも安くなった

Pacific Gas and Electric Company

突発的なトラフィックにもread replicaでさばける
=> メモ: IOベースの課金があるので上記のような目的でもよさそう

ISCS

SQL Serverの構成よりAuroraのほうが70%安価
S3に連続的にバックアップをとっているので、バックアップを取る時間を削除できた
Auroraのread replica => Redshiftへの連続的なアップデート

Alfresco

10億ドキュメントに対し、300万リクエスト/時までスケールし、現行環境の10倍の高速化を実現

Earth Networks

地域レベルのセンサーにより天候予測する会社
25TB以上のリアルタイムデータを毎日処理している

thread stack

危機管理のためIoTから情報を受け取りデータを保存
50万インサート/秒, 1日の生データは約10TB
Cassandra => Auroraに移行

高可用性のためのデザイン

すべてのデータが3つのAZにまたがり6つの複製を保持
クオーラムを採用

6つのうち、4つから応答があれば書き込み完了

耐障害性

2ノードの障害、または1つのAZ全体が落ちても読み込み・書き込みの可用性は大丈夫
3つのノードが死んでも読み取りは可能
復旧はバックグラウンドで行われる

クラッシュリカバリ

Aurora

AuroraはDisk Readの一貫として、オンデマンドでredo logの適用を行う
redoログの適用は、並列、分散、非同期で行われる => MySQLはシーケンシャルなのでそれより非常に早くおわる
1秒未満でクラッシュリカバリは終えれる
起動時に実行する必要がない
障害が起こってから1分以内で復帰できる
Auroraと一緒にMaria Driverを組み合わせると30秒未満でファイルオーバーを完了できる

連続的なバックアップ

各セグメントのスナップショットを定期的かつ平行で取得し、RedoログをAmazon S3へ転送
リストア時には、該当するセグメントスナップショットとログストリームをストレージノードに復元
セグメントスナップショットへのログストリーム適用は並列・非同期に実行される

SQLベンチマーク結果 (sysbench)

Write: 107,000 / sec

4 client machine with 1000 threads each

Read: 585,000 / sec

single client with 1000 threads

その他パフォーマンス

テーブルが10,00になっても性能が落ちにくい
データベースのサイズが1GB => 100GBになっても速度が落ちにくい
接続数が5,000にしても速度が落ちにくい

Auroraはパフォーマンスをどのように達成したか

DO less work

MySQLに比べI/Oを減らす => 1トランザクションあたり270倍少ない

Redoログレコードをまとめる
ストレージノードへまとめて書き込む

適応型スレッドプール

アクティブなスレッドに複数のコネクションを収容

非同期グループコミット => コミットをまとめてグループにしてコミットする(group commit)

アドバンス・モニタリング => 近日登場
コストメモ

POIPsがなく実際にIOを行った分を払うので、MySQLより安い場合がある => メモ: 場合によるのでは
パフォーマンスがいいので、インスタンスのサイズを下げる事ができコストがさらに節約できるかも: メモ: read replicaに関してはそうかもしれないがmasterに関しては自分たちで負荷試験した結果からもそうではないかも

質問

大きなテーブルに対してカラム追加などの変更の時間はMySQLとくらべてどうなっているか

多少の改善はしているがおおきくは改善してない
今後の3-6ヶ月でこのようなOnline DDLを改善したい

モバイルのSDKから直接使えるか

使えます

インスタンスタイプで小さいのは出す予定はあるのか

t2も足す予定
m, cはサポートする予定はない

メモリに乗らないような大きなテーブルのalter tableはしないほうがいいと言われているがどうか

小さいサイズのインスタンスでalter tableするときはout of memoryの状況は起こっている => 大きなインスタンスタイプを使うべき

数秒でのインスタンスのアップグレードは可能かどうか

MHAはサポートしていないので、大きいインスタンスでread replicaを作りそこにフェールオーバする

格拉尼 – MySQL => 紫外: 14:50-

    • スライド: https://speakerdeck.com/guitarrapc/nice-to-meet-you-aurora

インフラエンジニアの吉崎さん. インフラ全般を見ている
すでにRDS for MySQL => Auroraに移行している
目的

Auroraへ移行しての変化の共有
MySQL for RDSからの移行で気をつけること

ゴール

移行したくなるか

r3.4xlarge

1 writer
1 reader

計測

NewRelic: 全体としてみれる => メモ: というか50msくらいでアプリ返しているのですごい早い

Database ReportでUpdateの高速化が見れた:

Update – 5倍早い: 16-18ms => 3ms
Insert – 2倍早い:
Delete – 0.8倍で遅い: 遅いがもともとそんなに遅くない

Selectはほとんど違わない

BigQuery: アプリが発行したクエリをすべて計測. 同一クエリのAuroraによる変化を調査可能

Auroraはレプリカの作成が6分で終わる。グラニはレプリカを二桁を超えるのを使っているが早い。
1TBくらいのデータの場合、停止が10時間超える。。。11時間のサービス停止
結果1TBを超えるデータベースはレプリケーションによるマイグレーションでやったほうがいい

オンラインでレプリケーションを実行していたので、30分のサービス停止で完了

replication migrationでやったときのマスタの負荷はどうだったか

masterのfreeable memoryが消費していく. binlogがたまる分だけ減る => レプリケーションの再開でbinlogは減る

Auroraに移行した後

パラメはなるべくデフォルトを使ったほうがいい。

cloud formationでの適用に時間がかかる
ただ、Query CacheはWrite Heavyな環境なら0(OFF)にしたほうがいい

Security Groupがクラスターごとに適用されている

Public Accessible + Route Tableによる適用にした

Auroraは100%近くになっても性能劣化も小さく動作し続ける => MySQLだと60%から大きくなると性能劣化

CPUが高い原因は6つのコピーを作成しているから

これから期待すること

cache purge: キャッシュは自動で消せないので消したい

我试用了DWANGO – Aurora。

    • 細川さん

ニコニコ事業統括本部
開発部長

LDR(国産RSSリーダ)が適用プロジェクト

いまAuroraを検証中
レガシーなプロジェクトだがMySQL on EC2からAuroraへ移行したい
15台で10TBのデータ
mysqldump + replicationでデータ同期した

ディスクの使用特性

レコード削除しても一旦増えた使用領域はシュリンクしない
compressed row formatはサポートしていない
空き容量の再利用は効率よく行われている

パフォーマンス

5系統の記事DBをアプリケーションレイヤーで水平分割されていたが、移行後は1つのAuroraにおさめる
過去の経験から並列数は800ほどなのでそれに耐えれるかどうかを検証した

400QPSさばけた => メモ: Qの単位はなんだろうか。。。Queryだったら余裕でさばけそう

数TBのデータセットにてクローリングした情報を追加しながら数週間の検証でも目立ったパフォーマンス劣化がみられない
空き容量確保バッチ実行時はCPU100%に張り付く減少がみられた => 100%でもサービス側クエリ応答は問題なかった

我不知道如何用中文准确地解释”Airet”。

    • 新谷 充さん

 

    • cloudpack事業部MSPセクションリーダ

 

    • cloudpackとは

AWSのSI

バンナムと協力してサービスで使用しているデータで検証
MySQLとAuroraで同じ環境を作る

手順

メンテ中にsnapshotを作成
メンテ明けにWebAPIでtcpdumpでクエリ摘出
4.5時間抽出

select: 10億
insert/update: 4-5千万くらい

ウォームアップは全テーブルにselectをシーケンシャルに実施

これから期待すること

read replicaでファイルオーバーしたときに、read replicaが動的にマスターに変更されてしまう
readerのみにcloud end pointが発行されて所属しているreaderに振り分けられると使いやすい

优利系统

    漆原社長

课程方法

    • 大栗 @maroon1st

Developers.IOのRDS for MySQLをAuoraへ移行

Developers.IOについて

アクセス数: re:Invent等のイベントのときに負荷が高い
投稿数: 4800本
投稿者: 社員全員
ランク制: SNSポイントの集計

環境

wordpress
Elastic Beanstalk + WordPressが
eb clone
snapshotで移行

移行結果

更新早くなった

db.m3.medium (MySQL Multi-AZ) => db.r3.large (Aurora)へ移行
single-AZで十分と判断
$172.8 => $252になった

その他の事例: SNSサイトのDB移行

サイズはr3.8xlarge
マスター1台でレプリカ9台
EC2-Classic環境
これから移行する上での期待

高性能化による台数削減
高可用性: 現在コスト的な面からSingle-AZだがAuroraで高可用性が期待できる

New CDP(Cloud Design Pattern)の提案

DB Scheduled Scale Up: Auroraは高速なスケールアップが可能

目的

負荷のピーク前にスケールアップでスペックをあげ、ピーク後にスケールダウンコストダウン => やるには極めて高速なスケールアップ・ダウンが必要

使用する技術

MariaDB Connector/Jを使うとファイルオーバーが高速になる・1-2秒くらいで切り替え

innodb_read_onlyでwriter, readerを判断する

定時起動

決まった時刻にAPIを実行したい: Lambdaでスケジュール実行

実行手順

小さいスペックのAuroraのみがある状態
小さいスペックに大きいread replicaをつなぐ
両方のAuroraへ向くようにMariaDBの接続を更新
大きいスペックにフェイルオーバーさせる
大きいインスタンスのみに接続情報を切り替える
小さいインスタンスを削除

制限

Javaのみ対応(JDBC)
フェイルオーバー先が選べないので、writerのみの環境でしかできない

系统支持

    • ScaleArcでmaster, read replicaへのリクエストを、接続側で意識せず分けれる

writeのクエリ、readのクエリを自動で見分けて、クエリを分ける

只需要一个选项,以下是对野村総合研究所的本土汉语释义:

野村総合研究所 – 该公司为野村控股株式会社旗下的研究机构。

    • 遠隔地保管

他リージョンへのデータ保管を行う場合は、レプリケーション機能(MySQL)が使える
ただし、Aurora間で行う場合は暗号化されていない

关于其他工具

以下是数据集成工具的选择:
* Talend
* DataSpider Servista

bannerAds