SlideShare a Scribd company logo
Copyright © 2015. All rights reserved.
ハンズラボ株式会社
ハンズのDynamoDBクラウドパターン
山﨑 直行
2015年2月7日 JAWS-UG KANSAI特別編
自己紹介
山﨑 直行
元SI的な普通のエンジニア
主に担当した案件
ハンズEC関連
ハンズ基幹システム関連 ←いまここ
長谷川からの指令
 画面見たらパッと表示しろ
 データ更新はなる早ね
(確定データが来たら夜間に一括更新とかやめろ)
 ブイーンといじったらスケールするようにしろ
 サービス落とすな
そう、DynamoDBならね
Dynamo先生ならなんとかしてくれる
DynamoDBにデータをどんどん入れたい
入れなければいけないデータ
POSデータ 20万/day (10/secくらい)
在庫データ 20万~/day
商品マスタ 6500万SKU (更新は100万/dayくらい)
Etc…
4
SQSをつかった処理の定番のパターン
5
処理
データがどんどんくる
データをキューとして貯める
SQSからキューを順番に取り出して
その分をDynamoDBに登録する
並列で並べればスケーラブル
(AutoScale)
重複チェック
同じデータをつっこまないよ
う登録済みhash値をチェック
(並列実行しても安心)
まずはPOSデータを頑張って捌こう
POSデータの現状
テックPOSから1取引1CSVでガンガンアップされてる
自前でPOS作るからそこからも来るデータも考慮する
6
やらないといけないこと
CSVデータをDynamo更新用に変換(JSONとか)
何回やっても同じ結果(再現性確保)
エラーが起こっても原因が追えるようにする
処理フローをモデル化したい
在庫処理
リクエスト受け口
伝票処理
売上処理
商品マスタ
DynamoDB更新のAWSデザイン
8
高信頼性があるSQSでまず
リクエストを受ける
エラーを追うためすべての
リクエストをS3に保存
SNSで拡張性アップ
実装 ~SNSトピックを振り分ける~
9
リクエストデータ受け口
{
"function": “uriage",
"TableName": "uriage_day",
"Key": {
"id": {"S": "0000010323601"}
},
"AttributeUpdates": {
"item_code": {
"Action": "PUT",
"Value": {
"S": "0000010323601"
}
}, "ure_count": {
"Action": "ADD",
"Value": {
"N": "1.0"
}
}
}
}
SNS振り分け先を定義
(経路を決める)
Dynamo更新用
データを作る
「uriage」というSNSト
ピックに投げる
DynamoDB更新のAWSデザイン(再掲)
10
functionによりSNSのどのト
ピックに振り分けるか決定
これで主張したいところ
良いところ
起点がSQSなので、リクエストを受けるところは割
と安心
分散しやすいので並列実行でなる早を実現
DynamoDBスループットの調節も分かりやすい
新規データがあっても拡張しやすい
11
作ってみてダメだと思ったところ
12
ログデータが多すぎて、デバッグ大変(追いたくない)
大量データを更新する場合、結構時間がかかる
SQSの1回で登録できる件数上限が10なのが影響
リクエスト受け口がボトルネックになる可能性
DynamoDB更新のAWSデザイン(改)
13
大量データ更新のときは
S3 Notification使ってみた
S3 Notificationの活用
14
S3://hoge-trigger/uriage/data_20150207.csv
という情報をSQSに貯めてくれる
ファイル情報取得してダウンロードして
データ変換・バラバラに分割してSNSへ
SNS振り分け先・フォーマットは
ディレクトリ名で判断
S3 Notification使って解消したこと
15
解消したこと
 ログデータは最初に置いたS3が元ネタなので不要
- データ探しやすくなりデータ検証もしやすくなった
 急にデータ増えてもコントロールできる
イケてる!!
 実装が簡単になった。疎結合バンザイ
- 開発者はS3にデータを置くだけで終わり
- AWSのことよくわからない人にも説明が簡単
さらなる高みへ ~LamdaでGO!~
16
ありがとうございました
17
ハードウェア保守やらない時代はすぐそこみたいです
思ったより楽しいAWS
Let's work together!
・AWSエンジニア
・iOSエンジニア
・Webエンジニア
ハンズラボは積極的に技術者採用中です。

More Related Content

PDF
DynamoDBを導入した話
PDF
Amazon DynamoDB 初心者が理解した事
PPT
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
PPTX
みんな大好き“全文検索 on AWS”を試してみました!
PDF
20140418 info talkセミナー資料
PDF
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
PDF
Zabbix+group replication
PPTX
いまいまMySQL@OSC2016長岡
DynamoDBを導入した話
Amazon DynamoDB 初心者が理解した事
Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~
みんな大好き“全文検索 on AWS”を試してみました!
20140418 info talkセミナー資料
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
Zabbix+group replication
いまいまMySQL@OSC2016長岡

What's hot (20)

PDF
SQLによるDynamoDBの操作
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
PPTX
NoSQLに関するまとめ
PPTX
事例で学ぶApache Cassandra
PPT
Webアプリケーションから見たCassandra
 
PPTX
いまいまMySQL@OSC2016島根
PDF
MySQL Cluster 新機能解説 7.5 and beyond
PDF
RDS(MySQL)の利用と注意点
PPTX
日本語:Mongo dbに於けるシャーディングについて
PDF
qpstudy 2013.07 NoSQL
PDF
今日はMongoDBの話はしない
PDF
IBM Cloud を利用したデータ分析ことはじめ
PDF
Cassandraとh baseの比較して入門するno sql
PDF
NOSQLの基礎知識(講義資料)
PDF
Logをs3とredshiftに格納する仕組み
PDF
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
PPT
Cassandra(no sql)によるシステム提案と開発
PDF
PHPで大規模ブラウザゲームを開発してわかったこと
PDF
NoSQLデータベースと位置情報
SQLによるDynamoDBの操作
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
Cassandraのトランザクションサポート化 & web2pyによるcms用プラグイン開発
NoSQLに関するまとめ
事例で学ぶApache Cassandra
Webアプリケーションから見たCassandra
 
いまいまMySQL@OSC2016島根
MySQL Cluster 新機能解説 7.5 and beyond
RDS(MySQL)の利用と注意点
日本語:Mongo dbに於けるシャーディングについて
qpstudy 2013.07 NoSQL
今日はMongoDBの話はしない
IBM Cloud を利用したデータ分析ことはじめ
Cassandraとh baseの比較して入門するno sql
NOSQLの基礎知識(講義資料)
Logをs3とredshiftに格納する仕組み
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Cassandra(no sql)によるシステム提案と開発
PHPで大規模ブラウザゲームを開発してわかったこと
NoSQLデータベースと位置情報
Ad

Viewers also liked (13)

PPTX
Amazon DynamoDBの紹介と東急ハンズでの活用について
PPTX
東急ハンズのクラウドデザインパターン アーキテクチャー編
PPTX
ComSys WIP
PDF
現場で使えるDynamoDBと冪等デザインパターン
PDF
Amazon DynamoDBの概要説明
PPTX
Using Amazon CloudSearch With Databases - CloudSearch Meetup 061913
PPTX
DynamoDB活用事例 株式会社マイネット
PDF
Lambdaによるクラウド型言語の実装
PDF
前座Lambda
PDF
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
PDF
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
PDF
Jawsug chiba API Gateway
PDF
[AWSマイスターシリーズ] Amazon SQS / SNS
Amazon DynamoDBの紹介と東急ハンズでの活用について
東急ハンズのクラウドデザインパターン アーキテクチャー編
ComSys WIP
現場で使えるDynamoDBと冪等デザインパターン
Amazon DynamoDBの概要説明
Using Amazon CloudSearch With Databases - CloudSearch Meetup 061913
DynamoDB活用事例 株式会社マイネット
Lambdaによるクラウド型言語の実装
前座Lambda
AWSにおけるバッチ処理の ベストプラクティス - Developers.IO Meetup 05
AWS Black Belt Techシリーズ 2015 Amazon Elastic Block Store (EBS)
Jawsug chiba API Gateway
[AWSマイスターシリーズ] Amazon SQS / SNS
Ad

Similar to ハンズのDynamoDBクラウドパターン (20)

PPTX
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
PDF
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
PDF
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
PDF
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
PDF
20130612 ibm big_dataseminar_streams
PDF
20171118 jjug snappydata
PDF
Amazon Redshift 概要 (20分版)
PDF
Data Engineering at VOYAGE GROUP #jawsdays
PDF
Data Engineering at VOYAGE GROUP #jawsdays
PDF
20120405 setsunaセミナー
PDF
Yahoo! JAPANのOracle構成-2017年版
PPTX
アメーバブログを支えるデータセンターとインフラ技術
PPTX
Lv1から始めるWebサービスのインフラ構築
PDF
Automation with SoftLayer and Zabbix
ODP
ビジネスインテリジェンス入門~OSSでBIを始めよう~version2(公開版)
PDF
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
PDF
クラウドでビックデータのスモールスタート
PDF
Zabbixをもっと便利に!安全に!
PPTX
Kinesis Firehoseを使ってみた
PPTX
Kinesis Firehoseを使ってみた
Apuri she ji_gaido_d_bmentenansushe_ji__v1.0
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[db tech showcase Tokyo 2017] E24: 流行りに乗っていれば幸せになれますか?数あるデータベースの中から敢えて今Db2が選ば...
乗り遅れるな!IBMが本気で取り組む新世代クラウドサービスを徹底解説
20130612 ibm big_dataseminar_streams
20171118 jjug snappydata
Amazon Redshift 概要 (20分版)
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
20120405 setsunaセミナー
Yahoo! JAPANのOracle構成-2017年版
アメーバブログを支えるデータセンターとインフラ技術
Lv1から始めるWebサービスのインフラ構築
Automation with SoftLayer and Zabbix
ビジネスインテリジェンス入門~OSSでBIを始めよう~version2(公開版)
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
Zabbixをもっと便利に!安全に!
Kinesis Firehoseを使ってみた
Kinesis Firehoseを使ってみた

ハンズのDynamoDBクラウドパターン

Editor's Notes

  • #20: ・好きに喋ってください