Upload
makoto-uehara
View
82
Download
1
Embed Size (px)
Citation preview
5
名前: 上原 誠 (うえはら まこと)
現職: AWS のソリューションアーキテクト
前職: 渋谷のWeb系インフラエンジニア
好きな AWS のサービス : Glue、i3インスタンス
時々、Aerospikeおじさんしてます
アド担当してます
15© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
LatencyはWriteは8ms未満Readは1ms未満
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倍とか出る場合もあります
24
Aerospike is
これ
ロケット先端の棒の先についているシンプルな円盤状の板
この板があると、空気抵抗の観点からは不利だが、
音速の壁を超える際の衝撃波がロケットの外側に逃げるため、
本体にはその影響が及ばないという効果があります。
極めてシンプルな部品ではあるものの、それがロケット全体を守る役割をしている
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
35
・AZをSingleAZかMultiAZか?
・インスタンスストアのボリュームは消えてしまう?
・PlacementGroupは使った方がいい?
・バックアップはちゃんと取れる?
SingleかMultiかでそれぞれメリットデメリットがある。ASにクラスタ間コピーのXDRという機能もある
ASにシャドーボリュームという機能があり、非同期でEBSへの永続化が可能※ちなみにインスタンスのリブートではデータは消えない。停止起動で消える。
ASのバックアップ機能はオンラインで静止点は取れないしとても遅い。一瞬書き込みを止められればEBSのスナップショットでバックアップがお勧め。
データや負荷の増加があまりなければ使った方が低レイテンシを実現できるデータや負荷が増えるのであればクラスタの拡張性を制限するので使わない方がいい。
38
・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。
・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)
39
・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)
・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。
Readだけでも動き続けようとする
データが復元しちゃう何か(速さ)を得るためには何かを
犠牲にしなきゃ
40
・レコードの削除はインデックス削除。SSDの削除は重い。通常の読み書きの処理速度を保つためデータ自体の削除は非同期で行われる。なのでノードのリブートすると実態が消えてないデータがあるとインデックスを作り直し復元してしまう (いわゆるゾンビ問題)
・HighWaterMark、StopWriteというメモリとSSD容量のリミットがある。この容量に達するとデフラグに影響あるので増設せよだったり、StopWriteに至っては書き込みできない状態になる。
Readだけでも動き続けようとする
データが復元しちゃう何か(速さ)を得るためには何かを
犠牲にしなきゃTombstoneで回避もできるけど性能に影響あり