1
1

More than 3 years have passed since last update.

使ってるインフラの理解を深める 〜Amazon DynamoDB編〜

Posted at

使っているサービスをエレベーターピッチにしてみることで説明できそうなのでやってみた

[ ニーズを満たしたりや課題を解決したり ] したい
[ 対象顧客向け ] 向けの
[ プロダクト名 ] は
[ プロダクトのカテゴリー ] です
これは [ 重要な利点、大家にみある説得力のある理由 ] ができ
[ 代替手段 ] とは違って
[ 差別化の決定的な特徴 ] が備わっている

エレベータピッチについては下記を参照のこと

Amazon DynamoDBとは

Amazon Web Serviceで提供されるNoSQLデータベース管理システムのこと

Amazon DynamoDB エレベータピッチ

[ NoSQLを気軽に運用 ] したい
[ インフラエンジニア/フロントエンジニア ] 向けの
[ Amazon DynamoDB ] は
[ NoSQLデータベースマネジメントシステム ] です
これは [ 数ミリ秒台のレスポンス応答 ] ができ
[ 他のNoSQLデータベースマネジメントシステム ] とは違って
[ サーバー管理をアウトソースできる機能 ] が備わっている

特徴

特徴的な機能として、以下の三つがあげられる

  • key-valueを持ち、拡張性が良いNoSQLデータベース
  • リクエストに対するレイテンシーが数ミリ秒台で高速
  • AWSのゴールデンパターンとして、構築しやすい環境が整っている

Amazon DynamoDBのメリット

  • NoSQLであるため、高速な処理が可能で広告やゲーム業界などで使用率が高い
  • AWSのマネージドサービスであるため、サーバーの管理をアウトソースでき、高い可用性と信頼性を担保できる
  • AWS Amplifyにより AWS AppSync -> Amazon DynamoDBの構築が容易に行える

Amazon DynamoDBのデメリット

  • 同一パーティションーキーのデータが大量に存在するとパフォーマンス低下を招く
  • RDBと異なり、グローバルセカンダリインデックス,ローカルセカンダリインデックスの個数が制限されているため表の結合に注意が必要

補足

パーティションーキー、ソートキーについて

DynamoDBではレコードを一意に特定するためにパーティションーキーもしくはパーティションキーとソートキーを利用します。

データは下記の順で保存されます

  • データはパーティションキー毎に分散され保存
  • ソートキーがある場合はデータはパーティション内で並べ替えられて保存

下記記事にパーティションーキーやグローバルセカンダリインデックス,ローカルセカンダリインデックスが分かりやすく記載されています。

NoSQLについて

NoSQLは Not only SQL のことでRDBMS以外のデータベースを管理するシステムの総称である

NoSQLには大きく4種類ありAmazon DynamoDBはKey-Value Storeである

  • Key-Value Store:主要製品 Redis , Riak
  • Document Store:主要製品 MongoDB , CouchDB
  • Columnar Database:主要製品 Cassandra , HBase
  • Graph Database:主要製品 Neo4j

RDBとの比較

RDBとNoSQLでは思想が大きく異なり、単純に賛否を定義することはできない
RDBではトランザクションの中で、ずれを許容しない特性があり
NoSQLではそのずれを許容する代わりに高速な応答いつでも利用できる特性がある。

RDBの特性(ACID特性)
  • 原子性:全て実行したか、全て実行していないかどちらかを担保する
  • 一貫性:開始、終了時に整合性を満たす
  • 独立性:実行中に他からの操作を受け付けない
  • 永続性:完了を返却した場合、永続的にデータへアクセスできる
NoSQLの特性(BASE特性)
  • いつでも利用できる
  • 常に整合性が保たれている必要はない
  • 結果的に整合性が保証される
1
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
1
1