SlideShare a Scribd company logo
Copyright © 2014. All rights reserved.
2015年2月7日
JAWS-UG KANSAI特別編
ハンズラボ株式会社 井上 泰治
DynamoDBの紹介と東急ハンズでの活用について
1
自己紹介
井上 泰治
ハンズラボ株式会社
主に、EC系(ハンズネット等)担当
日本酒とビールが好き。
2
もくじ
1. Amazon DynamoDBの紹介
2. 東急ハンズでの活用について
3. おまけ(DynamoDB最新情報)
3
1. Amazon DynamoDBの紹介
Amazon DynamoDBの特徴
1. AWS完全マネージドのデータストア
2. スケーラビリティ
3. 高信頼性
4. 柔軟な料金体系
5. データ・モデル
4
1. Amazon DynamoDBの紹介
- 構築不要
- 自分でインストールする必要がない
- 運用不要
- 落ちないように中の人が頑張ってくれる
- 万が一何かあったらAWSのせいにできる
エンジニアの精神衛生
の向上!!
特徴1: AWS完全マネージドのデータストア
5
1. Amazon DynamoDBの紹介
- 必要に応じて自動的にスケールアウト
- 必要性=データ容量 or スループット
特徴2: スケーラビリティ
レプリケーションやシャーディングなどを考慮する必要がない。
▶ データ量、アクセス数が増えても、アプリケーションに手を入れ
なくて済む
Read Capacity
2,000
Read Capacity
10,000 :
scale
6
1. Amazon DynamoDBの紹介
- 1回の書き込みリクエストで、3ヶ所のAZ
に保存される
特徴3: 高信頼性
Availability Zone
Availability Zone
Availability Zone
instance
Write
7
1. Amazon DynamoDBの紹介
• スループットと容量により決定
• 指定したスループットにより時間あたりの
料金が決定。
• 容量による課金は、めちゃ安いので考え
るのやめた。
• リザーブド(前払い)による割引あり。
特徴4: 柔軟な料金体系
8
1. Amazon DynamoDBの紹介
- スキーマレスKey-Valueストア(インデックス以外)
- 検索はインデックスでのみ可能
- インデックスは事前に作成しておく
- JSON形式のデータ型もサポート
user_id name age created_at
1 John 20 2015-01-03
2 David 33 2015-01-11
3 Anthony 18 2015-01-18
テーブル
項目(≒レコード)
属性(≒カラム)
特徴5: データ・モデル
GSIが後から作成できる
ようになりました!
(2015/1/27 発表)
9
1. Amazon DynamoDBの紹介
Amazon DynamoDBのデータ・モデル
1. データ型
2. インデックスとクエリ
10
1. Amazon DynamoDBの紹介
• 属性(Attribute)は型を持つ
• インデックスは指定した型の値を入れる必要がある
• それ以外はレコード毎に型や属性名はバラバラでOK
• 利用できるデータ型は以下のとおり
1. データ型
名称 説明
String 文字列
Number 数値
Binary バイナリ
String Set 文字列の配列
Number Set 数値の配列
Binary Set バイナリの配列
名称 説明
List JSONの配列のよう
な順序付き集合
Map JSONのオブジェクト
のようなKey-Value
ペア
Boolean 真偽値
Null NULL値
※ インデックスに使用できるのは String、Number、Binaryのみ
11
1. Amazon DynamoDBの紹介
プライマリインデックス
グローバルセカンダリインデックス(GSI)
ローカルセカンダリインデックス(LSI)
• DynamoDBはインデックスでしか検索ができないため、検
索したい項目にはインデックスを作成しておく必要がある。
• スキーマレスといいつつ、インデックスだけはちゃんと考え
ないとダメ。
• インデックスは、Hash Key と Range Keyという2つの属性
の組み合わせで作成する。
• インデックスには下記3種類がある
2. インデックス
12
1. Amazon DynamoDBの紹介
プライマリインデックス
- テーブルに必ず1つ作成するインデックス
- Hash Keyのみと、Hash Key + Range Key の2種類から選択
- 各インデックスでユニークになる必要がある
- データ型は、String / Number / Binary から選択
id name age
1 John 20
2 David 33
3 Anthony 18
user_id friend_id
1 2
1 3
2 1
HK HK RK
テーブル: users (HKの例) テーブル: friends (HK+RKの例)
2. インデックス
13
1. Amazon DynamoDBの紹介
ローカルセカンダリインデックス(LSI)
- プライマリインデックスのHash Key に別のRange
Keyを設定できるようなイメージ
- 同じ Hash Key内でのみ検索、ソートが可能
user_id friend_id mute_flag
1 2 1
1 3 0
2 1 1
HK LSI:RK
SELECT * FROM friends
WHERE user_id = 1
AND mute_flag = 0
<Queryイメージ>RK
テーブル: friends
2. インデックス
14
1. Amazon DynamoDBの紹介
グローバルセカンダリインデックス(GSI)
- プライマリインデックスとは別にHash Key , Range
Key を追加できる
- Hash Keyをまたいだ検索が可能
user_id name country age
1 John Japan 20
2 David US 33
3 Anthony Australia 18
GSI:RKGSI:HKHK
SELECT * FROM users
WHERE country = ‘US’
AND age >= 20
<Queryイメージ>
テーブル: users
2. インデックス
プライマリのHKとは関係ない
テーブル縦断したクエリが実行でき
る
15
1. Amazon DynamoDBの紹介
今紹介した、3つのインデックスを活用して、
アプリケーションを実装することになります。
DynamoDBはインデックス設計がキモになり
ます。
2. インデックス
16
1. Amazon DynamoDBの紹介
マネージメントコンソールからテーブル作成
DynamoDBの始め方
もちろん、aws cli からもできます。
テーブル名
Primary Key(インデックス)
- Hash Key
- Range Key
スループット
- Read Capacity
- Write Capacity
17
1. Amazon DynamoDBの紹介
各言語のSDKがあるので、好きな言語で遊ん
でみる。
DynamoDBの始め方
Java Python PHP
.NETRuby Node.js など
Gophar君が仲間になりたそうに
こっちをみている。
New !
18
1. Amazon DynamoDBの紹介 (1)
ローカルで開発するには、DynamoDB Localを
DynamoDBの始め方
• 無料で使えるDynamoDB疑似環境
• Javaが動く環境であれば動く(はず)
• JavaScript Shell が同胞されており、ブラウザから試せる
19
1. Amazon DynamoDBの紹介
2. 東急ハンズでの活用について
3. おまけ(DynamoDB最新情報)
20
2. 東急ハンズでの活用方法について
• 毎年8月末にハンズ恒例の大セール
「ハンズメッセ」開催。
• ネットストア(ハンズネット)も同時開催
• セール開始時(00:00)にお客様が殺到
• サーバーが落ちる
• というのを2年くらい経験
Amazon DynamoDB導入の背景
コストを抑えつつ、セールの爆発的なトラフィック
にも耐えられる仕組みの構築が急務
21
2. 東急ハンズでの活用方法について
参考: セール時のスパイクアクセス
0.00
50.00
100.00
150.00
200.00
250.00
300.00
350.00
400.00
450.00
500.00
2014-08-2723:40
2014-08-2723:44
2014-08-2723:48
2014-08-2723:52
2014-08-2723:56
2014-08-2800:00
2014-08-2800:04
2014-08-2800:08
2014-08-2800:12
2014-08-2800:16
2014-08-2800:20
2014-08-2800:24
2014-08-2800:28
2014-08-2800:32
2014-08-2800:36
2014-08-2800:40
2014-08-2800:44
2014-08-2800:48
2014-08-2800:52
2014-08-2800:56
2014-08-2801:00
2014-08-2801:04
2014-08-2801:08
2014-08-2801:12
2014-08-2801:16
2014-08-2801:20
2014-08-2801:24
2014-08-2801:28
2014-08-2801:32
2014-08-2801:36
2014-08-2801:40
2014-08-2801:44
2014-08-2801:48
2014-08-2801:52
2014-08-2801:56
セール開始
22
2. 東急ハンズでの活用方法について
以前のハンズネット の構成
WEB Servers API Servers
ELB ELB
データをファイルで持っていたた
め、サーバを増やすごとにファイ
ル同期コストが増大
ユーザ
23
2. 東急ハンズでの活用方法について
改善後のハンズネットの構成
WEB Servers API Servers
ELB ELB
Data Layer
DynamoDB
S3
データ層は単一障害点にならな
いアーキテクチャの中から選定
Elastic Beanstalk
Beanstalk による Auto Scale
ユーザ
24
2. 東急ハンズでの活用方法について
データの種類・用途によるストレージの使い分け
ユーザーが生成するデータサービス提供側が生成するデータ
商品マスタ
商品詳細情報
店舗在庫数
セッション情報
ショッピングカート
購入履歴
会員情報
順次作られる動的データ半静的データ、読み込み専用データ
お気に入り商品情報
商品レビュー
ネットストア在庫
価格
特集コンテンツ
画像
= 増え続けるデータ
DynamoDB S3 SQLite DynamoDB
= コントロール可能なデータ
25
DynamoDB所感
• データ容量の制限がないことや、大量アクセス時の安心感は大きい。
• DynamoDBを使ったプログラムは、コード改修なしでスケールできる
• DynamoDBは最初とっつきにくいので、一部から導入して、自信をつ
けたら範囲を広げていくのが良いかもしれない。
2. 東急ハンズでの活用方法について
→ ハンズでは、セッションから始めて商品データ、カートへと
徐々に用途拡大して行った。
• DynamoDBだけで全部やろうとするとつらい。
→ 検索はCloudSearchにするなど、他のシステムとの併用も検討。
• 料金は安い。心配しないで使ってみて。
26
1. Amazon DynamoDBの紹介
3. おまけ(DynamoDB最新情報)
2. 東急ハンズでの活用について
27
3. おまけ
DynamoDB最新情報
• オンラインでGlobal Secondary Indexが作成できるように。
• リザーブドキャパシティが 100Unitから購入できるように。
• 以前は4000Unitだったので、より小規模でも導入しやすく
• 月額課金に比べて53%(1年)から76%(3年)のコスト削減が可
能
• DynamoDB Streams が Preview リリース
• Redshiftや、CloudSearchなどとの連携がやりやすく
Let's work together!
・AWSエンジニア
・iOSエンジニア
・Webエンジニア
ハンズラボは積極的に技術者採用中です。
29
ぜひ手を動かして、
触ってみてください!
ご清聴ありがとうございました。
Try ! DynamoDB

More Related Content

PPTX
がっつりMongoDB事例紹介
PPTX
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
PDF
DynamoDB設計のちょっとした技
PDF
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
PDF
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
PDF
NetflixにおけるPresto/Spark活用事例
PDF
ドメイン駆動設計のための Spring の上手な使い方
PDF
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...
がっつりMongoDB事例紹介
NTTデータ流Infrastructure as Code~ 大規模プロジェクトを通して考え抜いた基盤自動化の新たな姿~(NTTデータ テクノロジーカンフ...
DynamoDB設計のちょっとした技
Amazon Redshift パフォーマンスチューニングテクニックと最新アップデート
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
NetflixにおけるPresto/Spark活用事例
ドメイン駆動設計のための Spring の上手な使い方
なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builde...

What's hot (20)

PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
DynamoDBを導入した話
PDF
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
PPTX
Redisの特徴と活用方法について
PDF
AWS で Presto を徹底的に使いこなすワザ
PPTX
Aws amplify studioが変えるフロントエンド開発の未来とは v2
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
PDF
DevOps with Database on AWS
PPTX
PostgreSQLのパスワードの謎を追え!
PPTX
Oracleからamazon auroraへの移行にむけて
PDF
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
PDF
これからSpringを使う開発者が知っておくべきこと
PDF
インフラチームの歴史とこれから
PDF
Jupyter notebook を用いた文芸的インフラ運用のススメ
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
PDF
コンテナにおけるパフォーマンス調査でハマった話
PDF
AWSではじめるDNSSEC
PDF
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
PDF
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
PDF
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
DynamoDBを導入した話
わたくし、やっぱりCDKを使いたいですわ〜CDK import編〜.pdf
Redisの特徴と活用方法について
AWS で Presto を徹底的に使いこなすワザ
Aws amplify studioが変えるフロントエンド開発の未来とは v2
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
DevOps with Database on AWS
PostgreSQLのパスワードの謎を追え!
Oracleからamazon auroraへの移行にむけて
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
これからSpringを使う開発者が知っておくべきこと
インフラチームの歴史とこれから
Jupyter notebook を用いた文芸的インフラ運用のススメ
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
コンテナにおけるパフォーマンス調査でハマった話
AWSではじめるDNSSEC
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
ドメインロジックに集中せよ 〜ドメイン駆動設計 powered by Spring
Ad

Viewers also liked (20)

PPTX
DynamoDB活用事例 株式会社マイネット
PDF
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
PDF
[AWSマイスターシリーズ] Amazon DynamoDB
PPTX
ビッグデータだけじゃない Amazon DynamoDBの活用事例
PPTX
DynamoDBによるソーシャルゲーム実装 How To
PDF
Amazon DynamoDB 初心者が理解した事
PPTX
ハンズのDynamoDBクラウドパターン
PPTX
DynamoDBだけでソシャゲを作ってみた
PPTX
東急ハンズのクラウドデザインパターン アーキテクチャー編
PDF
東急ハンズを支える技術
PPTX
Using Amazon CloudSearch With Databases - CloudSearch Meetup 061913
PDF
Deep Dive: Amazon DynamoDB (db tech showcase 2016)
PDF
cassandra 100 node cluster admin operation
PDF
AWSにおける モバイル向けサービス及び事例紹介(20151211)
PDF
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
PDF
型超ざっくり入門@ハンズラボ社内勉強会
PDF
Amazon DynamoDB Lessen's Learned by Beginner
PDF
20150207 amazon elasticache
PDF
はじめてのAmazon Redshift
PDF
API Gatewayで re:Inventのセッション探し
DynamoDB活用事例 株式会社マイネット
Amazon DynamoDB(初心者向け 超速マスター編)JAWSUG大阪
[AWSマイスターシリーズ] Amazon DynamoDB
ビッグデータだけじゃない Amazon DynamoDBの活用事例
DynamoDBによるソーシャルゲーム実装 How To
Amazon DynamoDB 初心者が理解した事
ハンズのDynamoDBクラウドパターン
DynamoDBだけでソシャゲを作ってみた
東急ハンズのクラウドデザインパターン アーキテクチャー編
東急ハンズを支える技術
Using Amazon CloudSearch With Databases - CloudSearch Meetup 061913
Deep Dive: Amazon DynamoDB (db tech showcase 2016)
cassandra 100 node cluster admin operation
AWSにおける モバイル向けサービス及び事例紹介(20151211)
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
型超ざっくり入門@ハンズラボ社内勉強会
Amazon DynamoDB Lessen's Learned by Beginner
20150207 amazon elasticache
はじめてのAmazon Redshift
API Gatewayで re:Inventのセッション探し
Ad

Similar to Amazon DynamoDBの紹介と東急ハンズでの活用について (20)

PPTX
Lv1から始めるWebサービスのインフラ構築
PDF
IBMクラウドデータベースの使いどころ
PDF
Ibm クラウドデータベースの使いどころ
PPTX
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
PPTX
DB Tech Showcase 大阪: Amazon DynamoDB Deep Dive
PDF
PHP開発者のためのNoSQL入門
PDF
AWS Blackbelt 2015シリーズ RDS
PDF
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
PDF
既存システムへの新技術活用法 ~fluntd/MongoDB~
PPTX
日本語:Mongo dbに於けるシャーディングについて
PDF
DB2をAWS上に構築する際のヒント&TIPS
PDF
SQLによるDynamoDBの操作
PDF
[AWSマイスターシリーズ] Amazon Redshift
PPTX
シラサギハンズオン 東京
PPTX
シラサギハンズオン 大阪
PDF
AWSが誕生するまでの秘話
PDF
Amazon Redshift 概要 (20分版)
PPTX
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
PDF
IBM Cloud を利用したデータ分析ことはじめ
Lv1から始めるWebサービスのインフラ構築
IBMクラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころ
AWS Dev Day Tokyo 2018 | Amazon DynamoDB Backed な テレコムコアシステムを構築・運用してる話
DB Tech Showcase 大阪: Amazon DynamoDB Deep Dive
PHP開発者のためのNoSQL入門
AWS Blackbelt 2015シリーズ RDS
Db2をAWS上に構築する際のヒント&TIPS 2020年6月版
既存システムへの新技術活用法 ~fluntd/MongoDB~
日本語:Mongo dbに於けるシャーディングについて
DB2をAWS上に構築する際のヒント&TIPS
SQLによるDynamoDBの操作
[AWSマイスターシリーズ] Amazon Redshift
シラサギハンズオン 東京
シラサギハンズオン 大阪
AWSが誕生するまでの秘話
Amazon Redshift 概要 (20分版)
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
IBM Cloud を利用したデータ分析ことはじめ

Amazon DynamoDBの紹介と東急ハンズでの活用について

Editor's Notes

  • #2: ----- 会議メモ (15/02/04 22:08) ----- あああ
  • #3: ----- 会議メモ (15/02/06 01:56) ----- せっかく大阪まで来たのにのんびりしていられない。
  • #5: ----- 会議メモ (15/02/04 23:02) ----- ○○ と言った内容で紹介していきたいと思います。
  • #7: ----- 会議メモ (15/02/04 23:02) ----- MySQLなどのRDBを使っていると、シャーディングしたり、レプリケーションしたりといったことが必要になってきますが、DynamoDBは裏側で勝手にやってくれる。 書き込みは、こっちのDB、読み込みはこっちのDB とか、シャードを考慮した実装をしなくて良い。
  • #8: ----- 会議メモ (15/02/04 23:02) ----- S3とかと同様に オンプレミス環境で同じような仕組みをつくろうとしたら とても大変。
  • #9: ----- 会議メモ (15/02/04 23:02) ----- 使っただけ支払う形
  • #11: ----- 会議メモ (15/02/04 23:04) ----- データ・モデルについては、 もう少し掘り下げて見てみたいと思います。
  • #12: ----- 会議メモ (15/02/07 09:57) ----- 各言語のSDKなどで、言語のデータ型と、DynamoDBのデータ型を相互変換してくれる機能などが実装されている。 あまり、考慮しなくてもよいかもしれない。 ただ、きちんとキャストしてないとエラーになることも。
  • #29: ----- 会議メモ (15/02/04 23:12) ----- リザーブドキャパシティ=前払い 以上が、DynamoDBの紹介と、東急ハンズでの使い方の紹介になります。 話を聞くだけだと分からない部分もあると思うので、実際に手を動かして使ってみていただければと思います。
  • #30: ・好きに喋ってください