狠狠撸

狠狠撸Share a Scribd company logo
?	2017,	Amazon	Web	Services,	Inc.	or	its	Affiliates.	All	rights	reserved.
ソリューションアーキテクト 桑野章弘
2017年6?1?
AWS の NoSQL ??
?Amazon ElastiCache, Amazon DynamoDB?
??紹介
? 桑野 章弘(くわの あきひろ)
? ソリューションアーキテクト
? メディア系のお客様を担当しております。
? 前職は渋?のインフラエンジニア
? 趣味嗜好
? 好きなAWSのサービス:ElastiCache, Route53
? 好きなデータストア:MongoDB
? インフラ全般(昔は?作サーバ等やってました
アジェンダ
? 本セッションの?的
? 狈辞厂蚕尝とは
? AWSのNoSQLサービス
? Amazon ElastiCache
? Amazon DynamoDB
? 狈辞厂蚕尝の使い?
本セッションの?的
本?持って帰って頂くこと
NoSQLを最?限に活?し
可?性の?いシステムを作る!
本セッションの?的
? NoSQLとRDBMSの得意/不得意な分野について説明し、
NoSQLサービスの主要なユースケースについて理解す
る
? Amazon Web Service(AWS)の様々なデータベース
サービスの中からNoSQLサービスである、Amazon
ElastiCacheとAmazon DynamoDBについて理解する
狈辞厂蚕尝とは
狈辞厂蚕尝とは
? 従来のSQLで表されるようなリレーショナル
データベース(以下RDBMS)では解決できない
課題を解決するために?まれたRDBMSではない
データベースの総称
? NoSQLは?常に多くの種類がある
? ?意に決められるものではないが主な特徴とし
て次のように分類することが出来る
RDBMS
? 正規化/リレーショナル
? SQLを使?可能
? 柔軟なクエリ
? トランザクション処理
? データの堅牢性/?貫性
? スケールアウトの煩雑さ
? テーブル管理の煩雑さ
RDBMSとNoSQLの特徴
NoSQL
? ?正規化/階層化
? ?速なパフォーマンス
? ?いスケーラビリティ
? ユースケースに応じた様々なデー
タベース形式
? トランザクション処理は苦?
? クラスタの運?負荷
NoSQLの種類
NoSQLは?常に多くの種類があるが、代表的な物にこの4
種類がある
? キーバリューストア
? カラム指向データベース
? ドキュメント指向データベース
? グラフ指向データベース
キーバリューストア(KVS)
? キーとバリュー(値)という単純な構造
? 超?速なパフォーマンス
? RDBMSに?べ読み書きが?速
Key1 Value1
Key2 Value2
Key3 Value3
カラム指向データベース
? カラム指向のデータ構造
? ログなど?量のデータ解析向き
? RDBMSに?べ書き込みが?速
RowKey1
Key1
Value1
RowKey2
Key1
Key2
Value2
Value3
RowKey3
Key1
Value4
Key2
Value5
Key3
Value6
ドキュメント指向データベース
? JSONやXML等の不定形なデータ構造に対応
? 複雑なデータモデリングを容易に実現可能
Key1 Object1
Key2 Object2
Key3 Object3
{
”id": "kuwanoa”,
“age”: 39,
”info": {
”food": [ “curry”, ”mabodofu" ],
”database": ”mongodb"
}
}
グラフ指向データベース
? データ間を相互に結びつけてデータ同?の関係をグラフ
という形で表す
? 複雑な関係性を表すのを得意とする
? SNSのフレンドの関連性等
A
B
C
D E
NoSQLの種類:主要なOSS
キーバリューストア カラム指向データベース
ドキュメント指向データ
ベース
グラフ指向データベース
NoSQLのメリット
NoSQLを使うことによって何を実現するか
? 低レイテンシ??スループット、シンプルなAPI
? Webセッション管理
? Publish?Subscribeモデル、イベント処理
? JSON形式データの格納
? ソーシャル?グラフ、BOM(Bill of material)ツリーの検索
これらの特徴が必要とされるところがNoSQLの使い所と?える
そしてもう?つの?般的な特徴として、?前でクラスタ等の運
?をするのにかなりの労?が必要とされる。
オンプレミスのサーバの場合
Power,	HVAC,	net
Rack	&	stack
Server	maintenance
OS	patches
DB	s/w	patches
Database	backups
Scaling
High	availability
DB	s/w	installs
OS	installation
you
App	optimization
Amazon EC2上に構築した場合
Power,	HVAC,	net
Rack	&	stack
Server	maintenance
OS	patches
DB	s/w	patches
Database	backups
Scaling
High	availability
DB	s/w	installs
OS	installation
you
App	optimization
マネージドサービスを使った場合
Power,	HVAC,	net
Rack	&	stack
Server	maintenance
OS	patches
DB	s/w	patches
Database	backups
App	optimization
High	availability
DB	s/w	installs
OS	installation
you
Scaling
础奥厂の狈辞厂蚕尝マネージドサービス
AWS が提供するデータベースサービス
Amazon RDS
Amazon DynamoDB
Amazon ElastiCache Amazon Redshift
リレーショナルデータベース
Aurora, PostgreSQL, MySQL,
MariaDB, Oracle, SQL Server
?速でシームレスな拡張性と信頼性を持つ
NoSQL データベース
インメモリキャッシュ
Memcached, Redis
ペタバイト規模のデータウェアハウス
AWS が提供するデータベースサービス
Amazon RDS
Amazon DynamoDB
Amazon ElastiCache Amazon Redshift
リレーショナルデータベース
Aurora, PostgreSQL, MySQL,
MariaDB, Oracle, SQL Server
?速でシームレスな拡張性と信頼性を持つ
NoSQL データベース
インメモリキャッシュ
Memcached, Redis
ペタバイト規模のデータウェアハウス
NoSQLサービス
NoSQLの種類:主要なOSS(再掲)
キーバリューストア カラム指向データベース
ドキュメント指向データ
ベース
グラフ指向データベース
NoSQLの種類:AWSのサービスとのマッピング
キーバリューストア カラム指向データベース
ドキュメント指向データ
ベース
グラフ指向データベース
Amazon DynamoDB
Amazon ElastiCache
NoSQLの種類:AWSのサービスとのマッピング
キーバリューストア カラム指向データベース
ドキュメント指向データ
ベース
グラフ指向データベース
Amazon DynamoDB
Amazon ElastiCache
DynamoDBはキーバ
リュー、ドキュメント
指向、グラフ指向に対
応可能
Amazon ElastiCache
インメモリキーバリューストア
フルマネージド
ハイパフォーマンス
?いスケーラビリティ
Redis と memcached が利?可能
Amazonによる拡張(Amazon Redis)
Amazon ElastiCache の特徴
Amazon ElastiCacheとは
キャッシュをマネージドで提供するNoSQLサービス
代表的な2つのKVSエンジンに対応
構築/運?の?動化
? アプリケーションキャッシュサーバの構築/運?
? Redisの機能をマネージドに使う(ランキング、
Pub/Sub等)
? バックアップ
? 監視
? 障害検知/復旧
KVSエンジンの選択
? ElastiCacheの2つのエンジンはどちらもKVSという特徴
を持っており、キャッシュに使われることが多い
? どちらを使えばいいのか?
? 例えば、「メモリに?時的なセッションのキャッシュを
保持する」「ランキングシステム?の?時領域」など
VS
KVSエンジンの選択:Memcached or Redis
? マルチスレッド
? ?永続化
? 単純なデータタイプ
(String、Objects)
? メンテナンスが楽
? 垂直分散が楽
? シングルスレッド
? 永続化
? 多数のデータタイプ
? Atomic処理
? Pub/sub メッセージング
? リードレプリカ / フェイル
オーバー
strings, lists,
hashes, sets,
sorted sets,
bitmaps,
HyperLogLogs
運?の改善
?分たちで運?すると?変なフェイルオーバや、バック
アップ、スケールアップ等をフルマネージドで?うことで
運?負荷を最?限にすることが出来る
レプリケーション機能を使ったフェイルオーバ
? ?動的に障害を検知し、同期先のリードレプリカへフェイル
オーバし、マスタも?動復旧
フェイルオーバ
Replication Group
?同期レプリケー
ションでデータを
同期
リードレプリカは
マスターに昇格
App
バックアップ
? スナップショットバックアップが可能
? S3へのスナップショットバックアップ取得
? スケジュール、世代数など決めることが可能
スケジュール
バックアップ
Snapshot取得
Replication
Group A
Snapshot
Replication
Group B
RDB File
App
Redis on EC2
Redis Cluster
? Redis 3.2 で Redis Cluster のサポート
? データを分散保存することで最?15シャード、3.5TiB
のデータが保存可能
? 最?2000万/秒の読み込み、450万/秒の書き込み性能
Replication Group A
Replication Group B
Replication Group C
各シャードに分散
してデータを保存App
価格
オンデマンド キャッシュノード
? 初期費?無し、時間単位の従量課?モデル
リザーブド キャッシュノード
? 予約?を?払うことで時間当たり価格を割引(最?70%節減)
バックアップストレージ(Redis)
? 各クラスタに対して1つのSnapshotは無料
? 2つ以上のSnapshotから毎? 0.085 USD/GBが課?
AZ間データ転送量
? ElastiCache間の通信は課?対象外
? EC2とElastiCache間でAZを超える場合 0.01 USD/GB が課?
http://aws.amazon.com/jp/elasticache/pricing/
http://aws.amazon.com/jp/elasticache/reserved-cache-nodes/
マネックス証券様 Monex Insight
Webベースリアルタイム
市場データ配信システム
株式市場の取引時間に合
わせて、リソースの増減
を制御し数分で?由にス
ケール可能
* AWS Summit Tokyo マネックス証券様のセッションより引?
ElastiCacheの使いどころ
? 複雑な計算が必要となるデータをキャッシュ
? Redisの拡張された機能をマネージドサービスとして利
?するための基盤
? Pub/Sub
? ランキングボード
? 位置情報
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-elasticache
詳しくはAWS Black Belt ElastiCache 資料を参照
Amazon DynamoDB
フルマネージド
?速、かつ?貫したパフォーマンス
?いスケーラビリティ
柔軟性
イベント指向のプラグラミングも可能
セキュリティ
DynamoDB の特徴
フルマネージドで?信頼性
? 単?障害点(SPOF)が存在しない
? データは3AZ(データセンタ)に保存される
? ストレージはデータ量、アクセス量に応じ?動でパーテ
ショニング
クライアント
プロビジョンドスループット
テーブルごとにReadとWriteそれぞれに対
し、必要なスループットキャパシティを割
り当てる(=プロビジョンする)事が可能
さらにDB運?中にオンラインで変更可能
プロビジョンドスループットの例
読み込み減
書き込み増
書込読込
現在のアクセス量
プロビジョンした設定
キャパシティ
ユニット変更
書込読込 書込読込
RDBMS: DynamoDB: 柔軟なキャパシティ
Servers
負荷
Capacity
過剰なキャパシティ
無駄な投資
負荷
需要に対応出来ない
ユーザに不満
売上に影響 :(
ユーザの需要に合わせてキャパシティをスケール
ストレージの容量制限がない
使った分だけの従量課?制のストレージ
データ容量の増加に応じたディスクやノードの増設作業は
?切不要
データの柔軟性:テーブル構造
テーブル
項?
(items)
属性
(attributes)
パーティションキー
(必須)
ソートキー
(オプション)
スキーマなし
パーティションキー + ソートキー(オプション) = プライマリキー
各ItemはString、Number、Binary等の多彩な
データ型を持つことが可能
データの柔軟性:様々な?途
キーバリューデータストア
テーブル内のそれぞれのアイテム
は属性と値のリストで保持される
1つ以上のAttributeを持ち、アイ
テム間で不揃いでも問題ない
属性はあとから追加可能
ドキュメントデータベース
Jsonフォーマットのサポート
グラフデータベース
TITAN DBのバックエンドとして
利?可能
Stream 処理で?同期処理や、イベント駆動
DynamoDB Streamsを使うことでテーブルの更新の情報
を?同期(1秒未満)で更新することが可能
? ?同期アプリケーション
? グローバルアプリケーション
?同期アプリケーション
Amazon
Redshift
Lambdaユーザ ユーザTableapp ユーザ
DynamoDB
Streams
Amazon
SNS
mobile client Amazon
CloudSearch
DynamoDBが更新された
イベントをトリガーに検
索インデックを更新した
り、ユーザ告知を?った
りする
グローバルアプリケーション
DynamoDB
Streams
東京で?われた更新
を全世界のリージョ
ンに?速に反映する
事が可能
継続的な机能追加
継続的な机能追加
AWSの各サービスはAmazon DynamoDBにかぎらず継続
的に新機能の追加が?われている
? Time-to-Live
? VPC Endpoint
? DAX
DynamoDB Time-to-Live (TTL)
?定期間を過ぎたアイテムを?同期に削除する事が可能
? 不要なアイテムを削除しコストを削減
? テーブルサイズを制御してパフォーマンスを最適化する
ID Name Size Expiry
1234 A 100 1456702305
2222 B 240 1456702400
3423 C 150 1459207905
TTL	Value
(Epoch	format)
TTL	Attribute
VPC Endpoint(パブリックベータ)
各VPC環境にEndpointを提供することができるようになり、
今までのようにNATやEIPを付ける必要がなくなった
DynamoDB Acceralator DAX
(パブリックベータ)
DynamoDBの前?にマネージドなキャッシュクラスタを
置くことが出来るサービス
読み込みの多いワークロードでは低レイテンシを実現
? パフォーマンス向上
? コスト最適化
DAX
Cache!!!
DynamoDBの料?体系
プロビジョンドスループットで決まる時間料?
? Read/Writeのプロビジョンスループットによって時間あたりの料?決定
? リザーブドキャパシティによる割引
ストレージ利?量
? 保存したデータ容量(GB当たりの単価)
? GBあたり$0.285(2017/06/01現在@東京リージョン)
http://aws.amazon.com/jp/dynamodb/pricing/
DynamoDBの料?体系
プロビジョンドスループット
? 書き込み:$0.00742 :10 ユニットの書き込み容量あたり/1 時間
? 読み込み:$0.00742 : 50 ユニットの読み込み容量あたり/1 時間
キャパシティユニット
? 上記で「ユニット」と呼ばれている単位のこと
? 書き込み:1ユニット:最?1KBのデータを1回/秒書き込み可
? 読み込み:1ユニット:最?4KBのデータを2回/秒読み込み可(強?貫性読み込
みであれば1回/秒)
DynamoDBの料?例
以下の条件の場合の料?試算
? 読み書き– 読み書き共に平均的に100万回ずつアクセス
? 1回あたりの読み書きデータ量 – 1KB以下
? 保存データ量 – 1TB
?ヶ?の料?…約11.7ドル!!!
事例:東急ハンズ株式会社様
参考 DynamoDBの紹介と東急ハンズでの活?についてより。詳細は以下をご参照ください。
https://www.hands-lab.com/tech/entry/99.html
?毎年8?末にハンズ恒例の?セール
「ハンズメッセ」開催。
ネットストア(ハンズネット)も同時開催
セール開始時(00:00)にお客様が殺到
サーバーが落ちる
? というのを2年くらい経験
コストを抑えつつ、セールの爆発的なトラフィッ
クにも耐えられる仕組みの構築が急務
Amazon	DynamoDB導?の背景
事例:株式会社リプレーション様
短期間でのユーザー数の急上昇にも
わずかなスケールパラメータの調整で対応
参考 AWS事例のページより。詳細は以下をご参照ください。
http://www.awsmicrosite.jp/game/case-studies/ripplation.html
AWSの利?:
?気のドット絵ファンタジー
「騎?とドラゴン」のインフラ
をAWSで運?
ビジネス効果:
少数精鋭で開発を?う中で、運?
?の負担を最?化、ゲームの開発
リソースを最?化
事例:株式会社リプレーション様
デイリーアクティブユーザーが6?間で5,000/?から
30,000/?に跳ね上がった時に?った作業
「AWS EC2のインスタンス数を増やす」
「Amazon DynamoDBのスループットを上げる」だけ
DynamoDBの使いどころ
? 堅牢かつ?スケールするシステムの構築
? スループットが増減するようなピーク帯のあるシステム
? ?量のデータが貯めていくようなシステム
http://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-dynamodb
詳しくはAWS Black Belt DynamoDB資料を参照
狈辞厂蚕尝の使い?
サービスの使い分け
? NoSQLサービスをどのように使い分けていくか
? ここではElastiCacheとDynamoDBでの?途の
違いについてまとめる
ElastiCache の主なユースケース
アプリケーション?速化のためのキャッシュ
? アプリケーションキャッシュ
? セッションキャッシュ
Redisの機能を実現したい場合
? Pub/Sub
? リーダーボード
? リアルタイム分析
? 位置情報処理
DynamoDBの主なユースケース
Webアプリケーションの永続的なセッション
データベース
ユーザー情報を格納するデータベース
広告やゲームなどのユーザー?動履歴DB
? ユーザーIDごとに複数の?動履歴を管理データベース
? 保存できる容量も無制限
ソーシャルアプリのバックエンド
その他
ECサイトを例に取ったデータモデリングの違い
ECサイトを構築する場合にRDBMSとDynamoDBの場合
のデータモデリングの違いについて
同じことをする際に使うものが違うとデザインが変わる
SQL (リレーショナル?データベース)の場合
Price Desc.
$11.50
$8.99
Chaplin’s	
first	…
Columns
Rows
Primary	Key Index
$14.95
One	of	2	
major	…
The	
Partitas
Product	
ID
Type
1
2
3
Products
Book
Album
Movie
SQL (リレーショナル?データベース)
Price Desc.
$11.50
$8.99
Chaplin’s	
first	…
Columns
Rows
Primary	Key Index
$14.95
One	of	2	
major	…
The	
Partitas
Product	
ID
Type
1
2
3
Products
Book
Album
Movie
Books
Title Date
Odyssey 1871
Book	ID
1
Books
Author
Homer
SQL (リレーショナル?データベース)
Price Desc.
$11.50
$8.99
Chaplin’s	
first	…
Columns
Rows
Primary	Key Index
$14.95
One	of	2	
major	…
The	
Partitas
Product	
ID
Type
1
2
3
Products
Book
Album
Movie
Books
Title Date
Odyssey 1871
Book	ID
1
Books
Genre Director
Drama,	
Comedy
Chaplin
Movie	ID Title
3 The	Kid
Movies
Author
Homer
SQL (リレーショナル?データベース)
Products
Price Desc.
$11.50
$8.99
Chaplin’s	
first	…
Columns
Rows
Primary	Key Index
$14.95
One	of	2	
major	…
The	
Partitas
Product	
ID
Type
1
2
3
Book
Album
Movie
Books Albums
Title Date
Odyssey 1871
Book	ID
1
Books Albums
Title
6	Partitas
Album	ID Artist
2
Genre Director
Drama,	
Comedy
Chaplin
Movie	ID Title
3 The	Kid
Movies
Bach
Author
Homer
ではDynamoDBの場合は?
Price Desc.
$11.50
$8.99
Chaplin’s	
first	…
Columns
Rows
Primary	Key Index
$14.95
One	of	2	
major	…
The	
Partitas
Product	
ID
Type
1
2
3
Books Albums
Products
Book
Album
Movie
Title Date
Odyssey 1871
Book	ID
1
Books Albums
Title
6	Partitas
Album	ID Artist
2
Genre Director
Drama,	
Comedy
Chaplin
Movie	ID Title
3 The	Kid
Movies Tracks
Track
Partita	No.	
1
Album	ID Track	ID
2 1
Bach
Author
Homer
Product	
ID
Type
Odyssey Homer1 Book	ID
2 Album	ID 6	Partitas
2
Album	ID:
Track	ID
Partita	
No.	1
Bach
Attributes
Item	毎のスキーマデザイン
Partition	Key Sort	Key
3 Movie	ID The	Kid
Drama,
Comedy
1871
Chaplin
Primary	Key Products
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その1
? どのようにデータベースを使い分
けていくかの例
? ?般的なゲームやSNS等のアプリ
ケーション
? RDBMS使?し構築
? スケールアウトに難があり運?が
徐々に?変に
Clients
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その2
? 読み込みの負荷が?常に多くなっ
た結果
? 性能?で課題がでてきた
? 読み込みを分散するためにDBス
レーブを増設し、コスト増
Clients
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その3
? RDBMSをDynamoDBへリプレ
イス、スケールアウトやプロビ
ジョンキャパシティにより安定
した性能を出すことができ、ス
トレージ容量も気にしなくて良
くなった
? と、思ったら読み込みレイテン
シの問題が発?、1ms以内のア
クセスが必要な処理が必要
に、、、!
Clients
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その4
? ElastiCacheを使?し、
DynamoDBへのクエリの?時
キャッシュを?う
? レイテンシの問題をクリア、
1ms以内のアクセスが可能に
Clients
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その4の2
? DAX(プレビュー中)を活?す
ることで、実装を変えずに読み込
みの低レイテンシを実現すること
が可能
? 運?負荷の低減
Clients
DAX
Availability Zone Availability Zone
AWS上でのWeb+DBサーバの構成その5
? RDBMSとNoSQLの併?のパター
ン
? 課?部分などの強いトランザク
ション処理が欲しい処理には
RDBMSを使?
? スケールアウトをしたい所には
DynamoDBを使?
Clients
まとめ
まとめ
? RDBMSとNoSQLは適材適所!そのNoSQLが?番フィッ
トする部分に導?検討する
? DynamoDB、ElastiCacheを上?く活?することで従来
RDBMSだけでは実現が難しかった「柔軟なデータ構
造」「低いレイテンシ」「スケーラビリティ」等を実現
することが可能に
? 最?限の労?で、今まで実現が難しかった種類のアプリ
ケーションを構築できる
本?持って帰って頂くこと
NoSQLを最?限に活?し
可?性の?いシステムを作る!
本セッションのFeedbackをお願いします
受付でお配りしたアンケートに本セッションの満?度やご感想などをご記?ください
アンケートをご提出いただきました?には、もれなく素敵なAWSオリジナルグッズを
プレゼントさせていただきます
アンケートは受付、パミール3FのEXPO展?会場内にて回収させて頂きます
AWS ソリューション Day 2017- Database Day
~すでに始まっている!「クラウドへのデータベース移?」と
「データレイクを軸としたビッグデータ活?」~
Database Dayとは?
ユーザー企業/パートナー/AWSによる導?事例や活?動向また技術情報をご紹介
するIT部?(エンジニア?管理者など)向けのカンファレンス
開催?時?会場
? 2017年7?5?(?) 10:00~17:30 (9:30開場予定)
? ?崎ブライトコアホール(JR?崎駅より徒歩5分)
セッション
①基調講演 ②ブレイクアウトセッション – 2トラック構成
トラック1:データベース移? (事例セッションあり)
トラック2:データレイク(JAWSUG-BigData?部 事例セッションあり)
お申込み
https://aws.amazon.com/jp/solutiondays20170705/
Thank you !

More Related Content

础奥厂の狈辞厂蚕尝入门