LoginSignup
2
1

More than 5 years have passed since last update.

DynamoDB使ってみたよ

Last updated at Posted at 2018-09-06

はじめに

Lambdaのデータストア先としてDynamoDBを使ってみたので構築手順や仕様についての知見をまとめておきます。

DynamoDBの特徴

  • NoSQL
  • 自動パーティショニング

料金

AWS公式料金表

  • キャパシティーユニット
    • 読み込み/書き込み容量の上限
      • 説明が難しいのでここでは割愛しますが、頻繁にデータの読み書きが発生しなければそこまで料金はかかりません。
  • ストレージ
    • 25 GB/月までは無料
    • それ以降は月額 0.25 USD/GB
  • データ転送
    • 同AWSアカウントリージョン内の他のAWSサービスへの転送は無料

もっと詳しく知りたい方はこちら

選定理由

Lambdaでコンテナを並列で複数台起動した際にRDBMSだと最大コネクション数が少なく、基本的に相性が良くないため(MySQLのt2.mediumでも150が限界)

作りかた

qiita_dynamodb.png

初期設定はテーブル名とプライマリキーのみ!!!(お手軽:ok_hand_tone1:
プライマリキーは下記3つの型から選択します。
- 文字列
- バイナリ
- 数値
ソートキーを追加すると複合キーのように利用することも可能です!

ScanとQueryの違い

Scanはテーブル全体を検索し、Queryはプライマリーキー(ソートキー)を条件に特定範囲内の検索となります。Scanは負荷が高くなるのでなるべくはQueryを利用しましょう!

まとめ

ストレージも気にせず、チューニングも不要なので管理はとても楽です!
テーブル設計さえきちんと出来ていればこれほど便利なものはないと思いました!
ただ、クエリの書き方が独特だったのでその辺さえ気をつければ問題ないかと思います。

ハマりポイント

1リクエストの上限が1MBなので一気に取得する際は LastEvaluatedKey がなくなるまで繰り返し取得する処理の実装が必要となる。

参考サイト

MongoHQとAmazon DynamoDBの比較
なぜAWS LambdaとRDBMSの相性が悪いかを簡単に説明する
DynamoDBについて今更調べたのでメモ | 株式会社ランチェスター

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1