21
Amazon Aurora with PostgreSQL Compatibility を評価して SRA OSS, Inc. 日本支社 取締役支社長 石井 達夫

Amazon Aurora with PostgreSQL Compatibility を … Aurora with PostgreSQL Compatibility を評価して SRA OSS, Inc. 日本支社 取締役支社長 石井 達夫

Embed Size (px)

Citation preview

Amazon Aurora withPostgreSQL Compatibility

を評価して

SRA OSS, Inc. 日本支社

取締役支社長

石井 達夫

2 Copyright(c) 2017 SRA OSS, Inc. Japan

SRA OSS, Inc.のご紹介● 1999年よりPostgreSQLサポートを中心にOSS

ビジネスを開始、2005年に現在の形に至る● 主なビジネス

● PostgreSQL, ZabbixなどのOSSのサポート、コンサルティング、導入構築

● PowerGresファミリーの開発、販売● PostgreSQL用の各種トレーニング実施● 商用DBからのマイグレーションコンサル

● OSS貢献● PostgreSQL、Pgpool-IIの開発

3 Copyright(c) 2017 SRA OSS, Inc. Japan

PostgreSQLの20年間の成長● 規模は7倍以上に

● 20万ステップから150万ステップに● 本格的なRDBMSに

● トランザクション、行ロック、MVCC、SQL標準対応、本格的なクエリオプティマイザ● 高性能化

● マルチプロセッサ対応、パラレルクエリ、パーティショニング● 高可用性化

● レプリケーション● 多機能化

● 全文検索、JSON対応● ユーザの熱い支持

● 現在世界29ヵ国に55のコミュニティがある

4 Copyright(c) 2017 SRA OSS, Inc. Japan

商用DBからの乗り換え先として● Oracleからの移行先として注目されている● 「もっともOracleから移行しやすいOSSデータベー

ス」と言う評判● 機能的に似ている● 複雑なクエリやジョインも問題なく実行できる● 信頼性が高い

5 Copyright(c) 2017 SRA OSS, Inc. Japan

PostgreSQL History

6.1 6.2 6.3 6.4 6.5 7.0 7.1 7.2 7.3 7.4 8.0 8.1 8.2 8.3 8.4 9.0 9.1 9.2 9.3 9.4 9.5 9.6 10.00

200,000

400,000

600,000

800,000

1,000,000

1,200,000

1,400,000

1,600,000

Trigger

Sub-queryMulti byte

PL/pgSQL

Row locksMVCC

WAL logTOAST

ConcurrentVacuum

Windows

Multi Processor

HOTFull textsearch

autovacuum

Recursive SQLWindow function

Streamingreplication

lines of code

true serializableisolation

level

Scale up to 80cores

Cascadingreplication

Materialized view

Foreign data wrapper

JSONBLogical

decoding

UPSERT

ParallelQuery

LogicalReplication

Native Partioning

1996 2017

6 Copyright(c) 2017 SRA OSS, Inc. Japan

PostgreSQLとAuroraの機能ブロックの比較

信頼性・性能の高いDBエンジン

パラレルクエリ

Read ScaleUp

全文検索 GeoデータJSON

Read Replica

信頼性・性能の高いDBエンジン

パラレルクエリ

Read ScaleUp

全文検索 GeoデータJSON

AWS独自Read Replica

フェイルオーバ処理

高いWrite性能

差し替え

追加

追加

PostgreSQLPostgreSQL Aurora

ここに注目!

*概念的な説明図であり、実際のアーキテクチャを表現しているわけではありません。

エンジン部分のコードは変えていない

7 Copyright(c) 2017 SRA OSS, Inc. Japan

なぜWrite性能に着目するのか● Read性能を向上させる技術はすでにある

● スケールアウト● パラレルクエリ

● Write性能の向上は難しい● アプリケーションレベルのシャーディングでwrite性能は向上できるが、アプリケーションの変更が必要

● 多くの試みがなされているが、まだ決定的なものはない

8 Copyright(c) 2017 SRA OSS, Inc. Japan

Auroraに乗り換えるだけでWrite性能が向上する?

● そんなうまい話が本当にあるのか?● これは是非検証しなければ...

9 Copyright(c) 2017 SRA OSS, Inc. Japan

検証環境

AZ1

AZ2

Amazon Aurora with PostgreSQLCompatibility

db.r3.8x largevCPU 32, mem: 244GB

AZ1

AZ2

Amazon RDS for PostgreSQL

db.r3.8x largevCPU 32, mem:244GBProvisioned IO (IOPS: 10000)

Amazon EC2m4.10x largevCPU 40mem: 160GB

pgbench

Multi AZ(バックアップ)

Writer

Reader

Shared StorageVolume

Writer

10 Copyright(c) 2017 SRA OSS, Inc. Japan

検証用トランザクションの内容● 同時接続数を250,500,750,1000と変化させ、そ

れぞれ1時間トランザクションを流し、実行できたトランザクション数を性能の指標とする

● 検証用テーブルは、一番大きいもので2億行。DBサイズは30GB

● ひとつのトランザクションの中で、SELECTを1回、UPDATEを3回、INSERTを1回実行する

11 Copyright(c) 2017 SRA OSS, Inc. Japan

初期データロード時間

RDS

Aurora

00:00:00 00:02:53 00:05:46 00:08:38 00:11:31 00:14:24 00:17:17 00:20:10

LoadVacuumIndex

Vacuum時間が最も短縮されている

12 Copyright(c) 2017 SRA OSS, Inc. Japan

スループットの比較

250 500 750 1,0000

2,000

4,000

6,000

8,000

10,000

12,000

14,000

16,000

18,000

20,000

AuroraRDS

同時接続数

TP

S

➔CPU利用率はAuroraが高い。RDSではロック待ちが発生。➔AuroraのIOPSが少ない。書き込み単位が大きいため。

13 Copyright(c) 2017 SRA OSS, Inc. Japan

応答時間の比較

1 74 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55 580

5

10

15

20

25

30

35

40

45

50

RDSAurora

Late

ncy

(m

s)

250同時接続1分間の推移

Auroraの応答時間は非常に安定している

14 Copyright(c) 2017 SRA OSS, Inc. Japan

性能検証結果まとめ● Amazon Aurora for PostgreSQL Compatibility

は、Amazon RDSに比べ、● データロード時間は1/3● スループットは3倍● 応答時間が短く、かつバラツキが少ない● 同時接続数が増えても性能の劣化が少ない

15 Copyright(c) 2017 SRA OSS, Inc. Japan

Performance Insights

クエリの種類によりボトルネックを容易に特定できる(この例では、UPDATEでロック待ち発生)

16 Copyright(c) 2017 SRA OSS, Inc. Japan

Read replicaの利用● 読み取りクエリの投げ先として利用● 複数のレプリカを用意して負荷分散可能● レプリカに投げても良いクエリの識別は煩雑

● SELECT(の一部)● LOCK(の一部)● COPY TO● DECLARE, FETCH, CLOSE● SHOW, SET, RESET● SAVEPOINTなど● PREPARE, EXECUTE, DEALLOCATE, DISCARD● LOAD● Read onlyトランザクションの開始、終了

17 Copyright(c) 2017 SRA OSS, Inc. Japan

Pgpool-IIのご紹介● SRA OSSが中心となって開

発しているOSSミドルウェア● PostgreSQLの各種管理を

行う● フェイルオーバ管理● ノードの追加、削除● リードレプリカへの負荷分散管理

Pgpool-II

18 Copyright(c) 2017 SRA OSS, Inc. Japan

Pgpool-IIの負荷分散機能● クエリの内容を解析し、Writer、read replicaへ自動振り分けを行う

● きめ細かな負荷分散管理機能● 振り分けの際、ノードにより重み付けが可能● アプリケーション、データベース毎に振り分け先のノード

を指定できる

19 Copyright(c) 2017 SRA OSS, Inc. Japan

Pgpool-IIの負荷分散管理のイメージ参照クエリ

参照クエリのうち0%

プライマリ

スタンバイ スタンバイ

参照クエリのうち40 %

アプリケーション名やデータベース名で分散させることも可能

プライマリは更新処理に専念する

参照クエリのうち30 %

参照クエリのうち30 %

スタンバイ

20 Copyright(c) 2017 SRA OSS, Inc. Japan

Pgpool-IIの今後の計画● 現在はPostgreSQL(streaming

replication)、Amazon RDSに対応● Amazon Aurora for PostgreSQL Compatibilityへの対応は技術的には難しくないので、要望が多ければ対応します!

21 Copyright(c) 2017 SRA OSS, Inc. Japan

Thank you!