O slideshow foi denunciado.

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

34

Compartilhar

Próximos SlideShares
AWSのNoSQL入門
AWSのNoSQL入門
Carregando em…3
×
1 de 30
1 de 30

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

34

Compartilhar

Baixar para ler offline

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

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

Mais Conteúdo rRelacionado

Quem viu também gostou

Audiolivros relacionados

Gratuito durante 14 dias do Scribd

Ver tudo

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

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

Notas


  • ----- 会議メモ (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の紹介と、東急ハンズでの使い方の紹介になります。

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