Amazon DynamoDBは、Amazon Web Services(AWS)が提供するフルマネージドのNoSQLデータベースサービスです。低レイテンシーとスケーラビリティで知られ、大量のデータを扱い、リアルタイムでリクエストを処理する必要があるWeb、モバイル、ゲーム、アドテク、IoTなどのさまざまなアプリケーションでよく利用されています。
DynamoDBは、固定カラムを持つテーブルにデータを編成する従来のリレーショナルデータベースとは異なり、テーブルにデータを格納しますが固定スキーマを必要としません。つまり、各データ項目(リレーショナルデータベースの行に相当)は、任意の数の属性(カラムに相当)を持つことができます。
例えば、ゲームを開発していてプレイヤーのデータを保存する必要がある場合を考えてみましょう。DynamoDBでは、 Players
というテーブルがあり各項目がプレイヤーを表しています。項目は以下のような感じです。
すべてのアイテムが同じ属性を持つ必要はないことに注意してください。例えば、Hanakoの場合、 Level
属性がありません。
DynamoDBの主要な特徴の1つはスケールでのパフォーマンスです。1日あたり10兆件以上のリクエストを処理でき、1秒あたり2,000万件以上のピークをサポートできます。さらに、DynamoDBはフルマネージドサービスであり、分散データベースの運用やスケーリングの管理負担をAWSが肩代わりしてくれるため運用の手間が省けます。
ただし、DynamoDBの価格モデルは、プロビジョニングした容量に基づくため、不必要なコストを避けるためには、使用量を正確に見積もることが重要です。また、DynamoDBの柔軟性は有用ですが、アプリケーションの複雑化に伴い効率的なデータアクセスを確保するための計画が必要になる場合があります。