Your SlideShare is downloading. ×

Amazon DynamoDBの紹介と東急ハンズでの活用について
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

49
views

Published on

2015-02-07(土)JAWS-UG KANSAI特別編 「AWSを使い倒せ。AWSのフルマネージドサービス活用によるネイティブクラウドシステムへの誘い」で発表した資料になります。

2015-02-07(土)JAWS-UG KANSAI特別編 「AWSを使い倒せ。AWSのフルマネージドサービス活用によるネイティブクラウドシステムへの誘い」で発表した資料になります。

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
49
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

  • ----- 会議メモ (15/02/04 22:08) -----
    あああ

  • ----- 会議メモ (15/02/06 01:56) -----
    せっかく大阪まで来たのにのんびりしていられない。

  • ----- 会議メモ (15/02/04 23:02) -----
    ○○ と言った内容で紹介していきたいと思います。

  • ----- 会議メモ (15/02/04 23:02) -----
    MySQLなどのRDBを使っていると、シャーディングしたり、レプリケーションしたりといったことが必要になってきますが、DynamoDBは裏側で勝手にやってくれる。
    書き込みは、こっちのDB、読み込みはこっちのDB
    とか、シャードを考慮した実装をしなくて良い。

  • ----- 会議メモ (15/02/04 23:02) -----
    S3とかと同様に

    オンプレミス環境で同じような仕組みをつくろうとしたら
    とても大変。

  • ----- 会議メモ (15/02/04 23:02) -----
    使っただけ支払う形

  • ----- 会議メモ (15/02/04 23:04) -----
    データ・モデルについては、

    もう少し掘り下げて見てみたいと思います。

  • ----- 会議メモ (15/02/07 09:57) -----
    各言語のSDKなどで、言語のデータ型と、DynamoDBのデータ型を相互変換してくれる機能などが実装されている。
    あまり、考慮しなくてもよいかもしれない。

    ただ、きちんとキャストしてないとエラーになることも。

  • ----- 会議メモ (15/02/04 23:12) -----
    リザーブドキャパシティ=前払い

    以上が、DynamoDBの紹介と、東急ハンズでの使い方の紹介になります。

    話を聞くだけだと分からない部分もあると思うので、実際に手を動かして使ってみていただければと思います。
  • ・好きに喋ってください
  • Transcript

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