DynamoDBに関する基本的な内容をまとめてみたものです。DynamoDBに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。
Amazon DynamoDB - 仕組みから費用まで
Amazon DynamoDBの生い立ち
DynamoDBは、RDBMSのスケールの限界を超えるために開発された、応答性能や信頼性が高く、費用対効果が優れている、特にインターネット分野の利用に適しているNoSQLのデータベースです。
DynamoDBの開発目標は以下の通り。
- 可用性の向上:DynamoDBのデータはAmazonリージョン内の地理的に分散した3つの場所に各テーブルのレプリカがSSDに保存されことで、可用性と耐久性の向上が期待されます。
- スケーラビリティの容易さ:DynamoDBは設定だけでスケールして限界がないのでフルーマネージメントで管理不要です。DynamoDBはプロビジョンされたスループットを確保するためにテーブルを複数のパーティションに分散して格納、Hash Keyをパーティション間でのデータ分散に利用し、格納ストレージサイズやプロビジョンされたスループットによって自動的にパーティションニングを実施します。
- 予測可能な性能:必要なスループットを予め設定し、設定値(キャパシティーユニット)の変更はオンラインで実行可能、さらに現在消費しているスループットはマネジメントコンソールから5分単位で確認できます。
Amazon DynamoDBの特徴 (1)
完全マネージド型のNoSQLデータベースサービス:Amazon DynamoDB は完全マネージド型のクラウド NoSQL データベースサービスです。開発者はデータベーステーブルを作成し、スループットを設定するだけで、残りの処理は自動的に行われます。ハードウェアまたはソフトウェアのプロビジョニング、設定と構成、ソフトウェアの修正、信頼できる分散型データベースクラスターの操作、拡張による複数のインスタンスでのデータのパーティション化などのデータベース管理タスクについて心配する必要はありません。
ハイスケーラブル、低レイテンシー:テーブルを作成するときに、必要なリクエスト容量を指定します。スループット要件が変わった場合は、AWS Management Console または Amazon DynamoDB API を使用して、テーブルのリクエスト容量を更新します。Amazon Dynamo DB はすべてのスケーリングを水面下で管理し、ユーザーはスケーリングの進行中でもスループットレベルを実現することができます。Amazon DynamoDB は、あらゆる規模のすべてのアプリケーションで安定した高速パフォーマンスを実現します。通常、サービス側の平均レイテンシーは 1 桁台のミリ秒単位です。データのボリュームが増えてアプリケーションのパフォーマンス向上が必要になった場合、Amazon Dynamo DB では自動パーティション化と SSD テクノロジを使用してスループット要件を満たし、すべてのスケールで低レイテンシーを提供します。
高可用性:DynamoDBのデータは3箇所にクロスリージョンレプリケーションされることで、データセンターの障害が発生した場合に、他のリージョンへの切り替えが可能となります。
シンプルかつパワフルなAPI:Amazon DynamoDB は、AWS Lambda と統合され、データの変化に自動的に反応するアプリケーションの設計を可能にするトリガーを実現しています。
Amazon DynamoDBの特徴 (2)
管理不要で信頼性が高い:DynamoDBは、SPOF(単一障害点)が存在しないように構成され、データは3箇所の施設に保存されるので信頼性が高く、ストレージは必要に応じて自動的にパーティショニングされます。
プロビジョンスループット:テーブル毎にReadとWriteそれぞれに対し、必要な分だけのスループットキャパシティを割り当てることができ、この設定値はDB運用中にオンラインで変更可能です。
ストレージの容量制限がない:使った分だけの従量課金制のストレージを使用し、データ容量の増加に応じたディスクやノードの増設作業は不要です。