15.2 Amazon DynamoDB

Amazon DynamoDBやMongoDBといったNoSQLデータベースは、リレーショナルデータベースと並んでアプリケーションのデータストアとして採用される機会が増えています。単なるインメモリキャッシュの代替としてだけではなく、可用性や拡張性、高性能なデータベースが求められるアプリケーションで採用されています。またサーバーレスアプリケーションはリレーショナルデータベースとの相性があまり良くないため、NoSQLデータベースが採用されるケースもあります。

DynamoDBとはAWSが提供しているNoSQLデータベースのサービスです。DynamoDBへのアクセスはAWSが提供しているAPI経由で行います。以下のような特徴があります。

  • フルマネージド

  • 高可用性

  • 低レイテンシー

DynamoDBはフルマネージドなサービスです。開発者はサーバーを管理する必要がありません。データはAWS側で3つのアベイラビリティゾーンに保存されるため、高い可用性が求められる場合でも利用できます。同時に数十ミリ秒程度の低レイテンシーでレスポンスを返せますし、AWS側で自動的に拡張されるためディスクサイズを気にすることもないという、夢のようなデータベースです。あくまでNoSQLデータベース、もう少し具体的に言うとKey-Valueストアであるため、RDBのような汎用性はありませんが、Key-Valueストアのユースケースに当てはまる場合はとても強力なサービスです。

DynamoDBのテーブルは、キーとして以下の2つをサポートしています。

  • パーティションキー

  • パーティションキー+ソートキー

DynamoDBはKey-Valueストアの一種なので、データを取得する際には上記のような「パーティションキー」か「パーティションキー+ソートキー」を指定してデータを取得する必要があります。RDBで言えばいわゆるプライマリーキーに相当するものです。 ...