44
1 いきなり Aerospike オレシカナイト祭り 20171122 Aerospike on AWS

aerospike on aws

Embed Size (px)

Citation preview

1

いきなり Aerospike

オレシカナイト祭り 20171122

Aerospike on AWS

2

Aerospike is NoSQL

これ

3

※このベンチは私個人の意見であり、Amazonの立場を代表するものではありません

1KBのDataデータをRead

クラスタのノード数は5台でi3.16xlarge

いきなりデモします

4

レッツらデモ!

5

名前: 上原 誠 (うえはら まこと)

現職: AWS のソリューションアーキテクト

前職: 渋谷のWeb系インフラエンジニア

好きな AWS のサービス : Glue、i3インスタンス

時々、Aerospikeおじさんしてます

アド担当してます

6

レッツらデモ!

7

レッツらデモ!

READ Only

8© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

秒間105万リードくらい

9© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

Latencyはほぼ2ms未満

10

レッツらデモ!

WRITE Only

13

レッツらデモ!

READ WRITE Mix

6:4

14© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

秒間28万ライトくらい

秒間42万リードくらい

15© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

LatencyはWriteは8ms未満Readは1ms未満

16

この時裏でマイグレーション走ってたのでもう

ちょっと出るかも

17© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

post-write-queue:writeのデータをメモリからSSDに書き込んだ後、メモリ上に残すデータ量。データ量は、[デバイス数] x [post-write-queue] x [write-block-size] 最大が2048です。読み込みたいレコードがキャッシュにあるので読み込みの性能向上しますし、書き込みについても、updateの場合には、元のレコードを読み込む必要があるので読み込み性能の向上が書き込みにも影響しIOPSが向上します。

キャッシュ効かせればワークロードによっては1.5倍とか出る場合もあります

18

そこそこの設定でもこんくらい出る

設定箇所はその辺で飲んでるので直接聞きにきてください

19

そんな激しい性能が必要なの??

20

ほとんど必要な場面はない

21

アドだとたまにある

22

急にこんなこと言われる

23

秒間数十万IOPSほしい

今後もっと増えるよ(スケール必至)

過去分ずっと残しておきたい(スケール必至)

レイテンシは xx ms 以内で

24

Aerospike is

これ

ロケット先端の棒の先についているシンプルな円盤状の板

この板があると、空気抵抗の観点からは不利だが、

音速の壁を超える際の衝撃波がロケットの外側に逃げるため、

本体にはその影響が及ばないという効果があります。

極めてシンプルな部品ではあるものの、それがロケット全体を守る役割をしている

25

秒間20万IOPSほしい

今後もっと増えるのでスケールしたい

過去分ずっと残しておきたい

レイテンシは100ms以内で

名前の由来にある通りこういったピンポイントな案件で使ってほしい

26

DynamoDBは??

27

Amazon DynamoDB

特徴 (http://aws.amazon.com/jp/dynamodb/)

• 複数のデータセンターにデータをレプリケーションすることにより、高い耐久性と可用性を提供。

• ユーザーは必要なスループットを決めるだけで利用可能。ストレージ容量は事前に決める必要がなく、必要に応じてプロビジョンされる。

• データ容量やスループットが増えてきても低いレイテンシで安定した性能を発揮する

• DynamoDB Streamsによって更新情報をAPIで取得可能。Lambda連携やクロスリージョンレプリケーションなどを実現。

価格体系 (http://aws.amazon.com/jp/dynamodb/pricing/)

• スループットキャパシティ• 書き込み: $0.00742/10ユニット/時間• 読み込み: $0.00742/50ユニット/時間

• ストレージ: $0.285/GB

Amazonが提供する高い信頼性、スケーラビリティ、低レイテンシで安定した性能を兼ね備えたNoSQLデータベースサービス

DynamoDBの使いドコロ• ゲーム• 広告配信• DMP• センサーデータ• モバイルアプリケーションの

バックエンド

いずれも、高いスループットと低いレイテンシが求められ、更に扱うデータ量が大きくなりやすいと

いう共通の特徴を持つ

28

今回のような性能を出そうとするとコストがこうなる(例えばカリキュレータにWrite40万とか入れると)

そもそもテーブル単位のユニット上限がデフォルト1万(上限緩和可能)

http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Limits.html#default-limits-capacity-units-provisioned-throughput

29

マネージドサービスはデプロイや運用を楽にし安定した性能を出してくれる

よりカスタマイズしたい

仕様では満たせない性能要件がある場合

こういった時にEC2上で動かすことを検討しよう

30

Aerospike on AWS 事例

他にもたくさん

31

AWS上でAerospikeを動かすベストプラクティス

32

たぶん時間押してますよね?

AWS上でAerospikeを動かすベストプラクティス

33

AWS上でAerospikeを動かすベストプラクティス

たぶん時間押してますよね?

今日これ伝えようと思ってましたがはしょります。。

34

・AZをSingleAZかMultiAZか?

・インスタンスストアのボリュームは消えてしまう?

・PlacementGroupは使った方がいい?

・バックアップはちゃんと取れる?

35

・AZをSingleAZかMultiAZか?

・インスタンスストアのボリュームは消えてしまう?

・PlacementGroupは使った方がいい?

・バックアップはちゃんと取れる?

SingleかMultiかでそれぞれメリットデメリットがある。ASにクラスタ間コピーのXDRという機能もある

ASにシャドーボリュームという機能があり、非同期でEBSへの永続化が可能※ちなみにインスタンスのリブートではデータは消えない。停止起動で消える。

ASのバックアップ機能はオンラインで静止点は取れないしとても遅い。一瞬書き込みを止められればEBSのスナップショットでバックアップがお勧め。

データや負荷の増加があまりなければ使った方が低レイテンシを実現できるデータや負荷が増えるのであればクラスタの拡張性を制限するので使わない方がいい。

36

Aerospike is A & P

ここ

37

そう、速度と可用性、”速く動き続ける”これがほしい時に使うんだ

それ以外では使わなくていい・・

38

・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。

・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)

39

・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)

・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。

Readだけでも動き続けようとする

データが復元しちゃう何か(速さ)を得るためには何かを

犠牲にしなきゃ

40

・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)

・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。

Readだけでも動き続けようとする

データが復元しちゃう何か(速さ)を得るためには何かを

犠牲にしなきゃTombstoneで回避もできるけど性能に影響あり

41

広告の配信って間違ったバナー送ってもさほど問題ない

止まった方が困る

「Aerospikeいいじゃん」ってなる

こういったヒューリスティックなシステムには

42

ちょっとぐらい止まってもいいからデータの一貫性と速度がほしい!

こういう用途で使いたい場合は・・

43

aaa

44

aaa

C or A

45

aaa

選べるようになった

46

ありがとうございました!