DynamoDB は GraphQL をサポートしていますか?
はい、AWS AppSync を通じてサポートしています。AppSync は AWS のマネージド GraphQL サービスで、DynamoDB はそのネイティブなデータソースの1つです。リゾルバーが各 GraphQL クエリまたはミューテーションを、GetItem、Query、PutItem などの DynamoDB 操作にマッピングします。DynamoDB 自体には GraphQL エンドポイントはありません。GraphQL レイヤーはその前段で動作します。
この組み合わせの仕組み
AppSync では、DynamoDB テーブルをデータソースとして登録し、次に GraphQL スキーマの各フィールドにリゾルバーをアタッチします。リゾルバーのリクエストハンドラーは、受け取った GraphQL の引数を DynamoDB 呼び出しに変換し、レスポンスハンドラーは DynamoDB が返すアイテムを GraphQL レスポンスの形に整えます。AWS はまさにこのパターンのために、DynamoDB のサーバーレス統合の筆頭として AppSync を挙げています。
一般的なスタックである理由
両者はともにサーバーレスです。AppSync が API レイヤーをスケールし、DynamoDB がストレージとスループットをスケールし、どちらの側にもサーバーはありません。リアルタイムの GraphQL サブスクリプションは、DynamoDB の1桁ミリ秒の書き込みと自然に組み合わさります。
代替手段: 自前のサーバーを用意する
AppSync が必須というわけではありません。あらゆる GraphQL サーバー(Apollo、Yoga など)は、他のバックエンドを呼び出すのとまったく同じように、AWS SDK を通じて DynamoDB を呼び出してフィールドを解決できます。トレードオフは、GraphQL レイヤーを自分で運用することです。
さらに詳しく
GraphQL リゾルバーも同じアクセスパターンのルールに従います。データモデリングガイドがクエリに応えるキーの設計方法を説明し、Expression Builder が背後の条件構文を生成し、DynoTable でリゾルバーが実際に書き込んだ内容を調べられます。
参考資料
- Data sources — AWS AppSync Developer Guide
- Resolver mapping template reference for DynamoDB — AWS AppSync Developer Guide
- What is Amazon DynamoDB? — Amazon DynamoDB Developer Guide
最終検証日 2026-07-13、上記にリンクした公式 AWS ドキュメントに照らして確認しました。