使っているサービスをエレベーターピッチにしてみることで説明できそうなのでやってみた
[ ニーズを満たしたりや課題を解決したり ] したい
[ 対象顧客向け ] 向けの
[ プロダクト名 ] は
[ プロダクトのカテゴリー ] です
これは [ 重要な利点、大家にみある説得力のある理由 ] ができ
[ 代替手段 ] とは違って
[ 差別化の決定的な特徴 ] が備わっている
エレベータピッチについては下記を参照のこと
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特性)
- いつでも利用できる
- 常に整合性が保たれている必要はない
- 結果的に整合性が保証される