[レポート] Amazon DynamoDB データモデリングのコアコンセプト #AWSreInvent #DAT329

[レポート] Amazon DynamoDB データモデリングのコアコンセプト #AWSreInvent #DAT329

Clock Icon2023.12.12

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

re:Invent 2023 で行われた BreakOut セッションData modeling core concepts for Amazon DynamoDB (DAT329)のセッションレポートです。

概要

Developers experienced with Amazon DynamoDB can join this session to learn the core concepts of DynamoDB data modeling. Explore best practices for common access patterns used by DynamoDB customers for applications that need consistent, fast performance at any scale. Learn best practices and trade-offs to make when deciding on single-table and multi-table designs, indexing strategies, and more.

(日本語訳) Amazon DynamoDBの使用経験がある開発者は、このセッションに参加してDynamoDBデータモデリングのコアコンセプトを学ぶことができます。DynamoDBのお客様が、あらゆるスケールで一貫した高速なパフォーマンスを必要とするアプリケーションで使用する一般的なアクセスパターンのベストプラクティスを探ります。シングルテーブルとマルチテーブルの設計、インデックス戦略などを決定する際のベストプラクティスとトレードオフを学びます。

動画

セッション内容

  1. データモデリングの方法
  2. DynamoDB の主要な概念
  3. ユースケースのレビュー
  4. テーブル設計オプション
  5. スキーマの構成要素
  6. まとめ

DynamoDBのベーステーブル

まずは DynamoDB の基本的なところから説明してくれます。

DynamoDB テーブルにはさまざまなアイテムを配置でき、任意のものを選択できます。その中でも重要なのは 2 つの Key です。

パーティションキーとソートキー以外の属性は好きなものにできます。また、DynamoDB ではパーティションキーとソートキーを合わせて主キーを構成しています。

他にもグローバルセカンダリーインデックス(GSI)という機能を使うことで、他の属性をもとにしてデータベースを参照できます。こちらについては後ほど詳細な説明がありました。

テーブルの個数

マルチテーブルデザインと、シングルテーブルデザインそれぞれの利点を紹介しています。

明確な答えはなく、扱うデータとクエリのパターンによってどちらを採用すべきかは変わります。アクセスパターンに基づいて、データモデルを設計することが必要です。

また、特定のユースケースから DynamoDB の設計を考えていく部分では、何をパーティションキーやソートキーとすべきかを検討していきます。

コスト最適化

DynamoDB の WCU と RCU に焦点を当て、どのようにコスト最適化を検討すべきかを説明しています。その 1 つとして垂直パーティショニングを紹介していました。

利点として特定の項目に対するアクセス制御やスケーリング、パフォーマンスといったものもあります。このように得られるメリットをユースケースの例をもとに解説してくれます。

グローバルセカンダリーインデックス(GSI)

GSI についても詳細な説明がありました。主キー以外を用いた処理ができることに加えて、クエリのパフォーマンス向上やデータのフィルタリングなどの利点があります。

ベーステーブルと同様に、GSI も適切なキーの選択が必要です。そのためには、テーブルの設計と同様にアクセスパターンに基づいて決定する必要があります。

最後にまとめとして重要な点のおさらいをしてくれます。

テーブルを1つにするか、複数持つのかといった議論から、垂直パーティショニングを行うメリット、アクセスパターンに応じたデータモデル設計などを解説しました。

おわりに

ベーステーブルの設計、テーブルの個数やコスト最適化の方法など DynamoDB に関する考慮点を学べるセッションでした。

DynamoDB は自由度が高いため雰囲気で使っていることが多かったので、参考になる点が多かったです。

ユースケースに基づいたテーブル設計の例もありますので、是非 DynamoDB について学びたい方は元の動画をご視聴ください。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.