AWS AppSyncとは?GraphQL APIの仕組み・料金とAppSync Events・採用判断を実装者目線で解説
AWS AppSyncは、GraphQLのAPIとリアルタイムのPub/Sub APIを、サーバーの管理なしで構築・公開できるAWSのマネージドサービスです。この記事では、単一のGraphQLエンドポイントから複数のデータソースへアクセスする仕組み、WebSocketで実現するリアルタイム更新、2025年3月に加わったAppSync Events、そして接続できるデータソースやVTL/JavaScriptというリゾルバの2方式、5つの認証方式までを一次情報で整理します。従量課金の料金体系と、API Gateway(REST)との選び分け、採用すべき条件・見送るべき場面の判断基準まで、実装者がAPI層の構成を決めるときに迷う論点を具体的な数値で示します。
まとめ:AWS AppSyncの仕組み・料金・採用判断の要点
AWS AppSyncは、GraphQLスキーマを起点に、DynamoDBやLambdaなど複数のデータソースを1つのAPIエンドポイントへ束ねるマネージドサービスです。クライアントは必要なフィールドだけを1回のクエリで取得でき、サーバー側はスキーマとリゾルバでデータの取り出し方を定義します。リアルタイム更新はWebSocketのサブスクリプションで配信され、チャットや共同編集のような即時反映が要る画面を、追加のサーバー構築なしで作れます。2025年3月には、GraphQLを介さずWebSocketだけでPub/Subを扱うAppSync Eventsも加わりました。
料金は使った分だけの従量課金です。GraphQL APIはクエリ・データ変更操作が100万件あたり4.00USD、リアルタイム更新が100万件あたり2.00USDという単価で積み上がり、月額の最低料金はありません。複数のデータソースを1エンドポイントに集約したい、モバイルやWebでリアルタイム同期を素早く実装したい要件には向きます。一方、外部の第三者に公開する汎用APIや、単一リソースへの単純なCRUDだけなら、REST型のAPI Gatewayのほうが素直です。判断に迷う実装者は、後半のREST/GraphQL選び分けと採用・見送り条件で自分のプロジェクトを当てはめてください。
AWS AppSyncの全体像とGraphQL・Eventsという2系統のAPI
AppSyncを設計へ取り込むには、まず「GraphQLのバックエンドをまるごと預けられるマネージド層」だと捉えるところから始めます。サーバーの台数やWebSocketの接続管理をAWS側が引き受けるため、実装者はスキーマとデータの取り出し方の定義に集中できます。この土台の理解が曖昧だと、単なるAPIの置き場所と誤解し、リアルタイム機能やデータソース集約という中核を取りこぼしかねません。
マネージド型GraphQL APIとしての位置づけと単一エンドポイント
AppSyncの中心は、1つのGraphQLエンドポイントに複数のデータソースをぶら下げられる点にあります。RESTでは目的のデータごとに複数のURLへ問い合わせがちですが、GraphQLならクライアントが必要なフィールドを1回のクエリで指定し、過不足のないレスポンスを受け取れます。サーバー側はスキーマで型と入力検証を宣言し、フィールドごとのリゾルバでどのデータソースからどう取るかを定義する形です。サーバー管理を伴わないこの構成は、サーバーレスの設計思想と地続きです。全体像の判断軸はサーバーレスアーキテクチャの構成パターンとAWS実装を解説した記事で確認でき、AppSyncはそのサーバーレスをAPI層に当てはめたマネージドサービスと位置づけられます。
WebSocketサブスクリプションが支えるリアルタイム更新の仕組み
AppSyncが単なるデータ取得APIと一線を画すのは、リアルタイム更新を標準で持つからです。GraphQLのサブスクリプションを定義すると、AppSyncがWebSocketの接続を管理し、データが変わったタイミングで購読中のクライアントへ差分を配信します。実装者はWebSocketサーバーの常駐やスケール調整を書かずに、スキーマ上で「どの操作を購読対象にするか」を宣言するだけで済みます。チャット、通知、複数人での同時編集、ダッシュボードの即時反映といった画面で効果を発揮するでしょう。接続数の増減はマネージド側が吸収するため、同時接続がスパイクする用途でも自前の接続管理を抱え込まずに設計できます。
2025年に追加されたAppSync Events(Pub/Sub API)
もう一つの系統が、2025年3月13日に一般提供が始まったAppSync Eventsです。これはGraphQLスキーマを介さず、WebSocketだけでPub/Subを扱うイベント配信専用のAPIです。チャンネルへイベントをパブリッシュし、購読者へリアルタイムに届ける用途に絞られており、GraphQLの型やリゾルバを用意するほどではない「軽いリアルタイム配信」を短い手数で立ち上げられます。GraphQL APIがデータの問い合わせと更新を主眼にするのに対し、Eventsはイベントの通知そのものが目的です。両者は別々の料金体系で提供され、要件に応じてどちらか、あるいは併用を選べます。
データソース接続とリゾルバ・認証で決まるAppSyncの内部設計
AppSyncの実装で判断が要るのは、どのデータソースへつなぎ、どの方式でリゾルバを書き、どう認証をかけるかの3点です。ここの設計が、開発の速さと後々の保守性を左右します。
DynamoDB・Lambdaなど接続できるデータソースの選択肢
AppSyncが直接つなげるデータソースは複数あります。代表はDynamoDBで、キーバリュー/ドキュメント型のデータをリゾルバから読み書きできます。任意のロジックを差し込みたいときはLambdaをデータソースにすると、AppSyncからLambda関数を呼び出せる構成です。関数側の制約や料金はAWS Lambdaの仕組みと料金体系・採用判断を解説した記事が参考になります。リレーショナルなデータはAuroraのData API、外部APIはHTTP、全文検索は検索エンジンのマネージドサービス、疎結合なイベント連携はEventBridgeへつなげます。外部リソースを持たないローカル解決用の指定もあり、複数ソースを1つのスキーマの下でまとめられるのがAppSyncの要です。
VTLとJavaScriptという2つのリゾルバ方式の選び分け
リクエストをデータソースの操作へ変換するのがリゾルバで、記述方式は2つあります。従来からあるのがVTL(Velocity Template Language)で、リクエスト/レスポンスの変換をマッピングテンプレートに記述する方式です。もう一方がAPPSYNC_JSランタイム上で動くJavaScript/TypeScriptのリゾルバで、使い慣れた言語でロジックを書けるうえ、型の補完も効きます。新規に書き起こすなら、開発体験と保守性の面でJavaScript方式が扱いやすいでしょう。既存のVTLテンプレートを抱える場合は無理に書き換えず、新しいリゾルバからJavaScriptで足していく段階的な進め方も取れます。方式は同一APIの中でリゾルバ単位に選べるため、全面移行を待たずに併用できます。
API Key・Cognito・Lambdaなど5つの認証方式の使い分け
AppSyncのAPIには、5つの認証方式を設定できます。手早い検証や公開データにはAPIキー、AWSリソース間の呼び出しにはIAM、アプリのユーザー認証にはAmazon Cognitoのユーザープール、外部のIDプロバイダ連携にはOIDC、独自ロジックで可否を判定したい場合はLambdaオーソライザーが向きます。1つのAPIに複数方式を組み合わせることもでき、たとえば一般公開のクエリはAPIキー、ユーザー個別のデータはCognitoといった使い分けが可能です。GraphQLスキーマの型やフィールド単位でアクセス制御を宣言できるため、認可の粒度を細かく設計できます。なお、認証・認可に失敗したリクエストは課金対象外です。
AWS AppSyncの料金体系を実装コストの目線で読み解く勘所
AppSyncの料金は使った分だけの従量課金で、月額の最低料金はありません。GraphQL APIとAppSync Eventsで体系が分かれるため、要件がどちらに寄るかで見積もりの起点が変わります。次の数値は2026年7月時点の一次価格です。
GraphQL APIの従量課金(クエリ・リアルタイム・キャッシュ)
GraphQL APIの課金は、大きく2つの軸で積み上がります。クエリとデータ変更操作は100万件あたり4.00USD、リアルタイム更新は100万件あたり2.00USDに加え、WebSocketの接続時間が100万分あたり0.08USDです。低レイテンシ用のサーバーサイドキャッシュを有効にすると、キャッシュインスタンスの時間課金が別途かかります。
| 課金項目 | 単価(2026年7月時点) |
|---|---|
| クエリ・データ変更操作 | 100万件あたり4.00USD |
| リアルタイム更新 | 100万件あたり2.00USD |
| WebSocket接続時間 | 100万分あたり0.08USD |
| キャッシュ(cache.small) | 1時間あたり0.044USD |
見積もりの勘所は、データ取得の回数だけでなくリアルタイム更新の配信数と接続時間を分けて数えることです。常時接続の購読が多い画面では、更新件数より接続分のほうが効いてくる場合があります。キャッシュは応答速度と引き換えに固定的な時間課金が乗るため、まずキャッシュなしで実測し、遅延が問題になった箇所だけ後から足す進め方が無駄を抑えます。
AppSync Eventsの料金と12か月無料枠の見積もり方
AppSync Eventsは、パブリッシュ・サブスクライブ・ハンドラー呼び出し・WebSocket操作をまとめて「Event API操作」として数え、100万件あたり1.00USDです。接続時間は同じく100万分あたり0.08USDがかかります。GraphQL APIと比べて操作あたりの単価が低く、軽量なイベント配信ならコストを抑えやすい構成です。新規AWSアカウント向けには12か月の無料枠があり、GraphQL APIはクエリ・データ変更25万件とリアルタイム更新25万件、接続60万分まで、Eventsはリアルタイム更新25万件と接続60万分までが無料に収まります。小規模な検証は無料枠内で試し、実トラフィックのログから操作件数と接続分を拾って本番規模を試算するのが安全です。
API Gatewayとの選び分けとAWS AppSyncの採用判断基準
ここでは判断を言い切ります。AppSyncは万能ではなく、APIの性質が合わなければREST型のAPI Gatewayのほうが素直に運べます。自社のどの案件に差し込むかを、条件付きで見極めてください。
REST(API Gateway)とGraphQL(AppSync)の選び分け
APIの土台をRESTで組むならAPI Gateway、GraphQLで組むならAppSyncが基本線です。RESTは複数のリソースを別々のエンドポイントとして公開し、外部の第三者にも受け入れられやすい枯れた方式です。GraphQLは単一エンドポイントで必要なフィールドだけを取れる代わりに、スキーマ設計の知見を要します。判断軸は、クライアントが要求するデータの形が多様でオーバーフェッチを減らしたいか、それとも汎用的で安定したインターフェースを外部提供したいかです。REST側の設計はAPIゲートウェイの役割と導入判断を解説した記事が詳しく、両者を比べたうえで、クライアント主導でデータ形が変わるアプリ内向けAPIならAppSync、公開する汎用APIならAPI Gatewayという振り分けが実務では収まりやすいでしょう。
AWS AppSyncの採用が効くプロジェクトの条件と設計の勘所
採用が効くのは、次の条件が重なるときです。複数のデータソースを1つのAPIへ集約したく、モバイルやWebでリアルタイムの同期・通知が要り、クライアントごとに欲しいデータの形が異なる開発が当てはまります。チャットや共同編集、ダッシュボード、通知基盤のように、即時反映とデータ集約を両立させたい局面でこそ強みが出ます。サブスクリプションとMerged APIを備えるため、チームごとに分けたスキーマを1つのGraphQLエンドポイントへ束ねる大きめの構成にも耐えられる設計です。AWS上でこうしたサーバーレスなAPI基盤を自社に取り入れるなら、AWSを含むクラウドインフラ構築の相談窓口で構成の妥当性を検討できます。
AWS AppSyncを見送るべき場面とはまりやすい失敗パターン
見送りを検討すべきなのは、外部の第三者へ公開する汎用APIが中心のケースや、単一リソースへの単純なCRUDだけで足りる小さなサービスです。前者はGraphQLを受け付けないクライアントが混じり、後者はスキーマとリゾルバの初期設計が手間に見合いません。チーム内にGraphQLの知見が薄い状態で大きく作り込むのも、はまりやすい失敗です。スキーマ設計とリゾルバのN+1問題への対処を軽く見ると、レスポンスが遅くなり原因の切り分けに時間を取られます。判断に迷う境界領域では、まず小さなスキーマで1つのデータソースとサブスクリプションまで作り、開発速度と料金の実データを見てから本格採用を決めるのが安全です。
よくある質問
AWS AppSyncの導入検討で実装者から多く挙がる質問を、一次情報に基づいて簡潔に整理します。
AppSyncとAPI Gatewayの違いは何ですか?
AppSyncはGraphQLとPub/SubのAPIを、API GatewayはRESTとWebSocketのAPIを構築するサービスです。AppSyncは単一エンドポイントで必要なフィールドだけを取得でき、リアルタイムのサブスクリプションを標準で持ちます。API Gatewayは複数のエンドポイントを枯れたREST方式で公開し、外部の第三者にも受け入れられやすい構成です。クライアント主導でデータ形が変わるアプリ内向けならAppSync、公開する汎用APIならAPI Gatewayが基本の選択です。
AWS AppSyncはGraphQL以外にも使えますか?
使えます。2025年3月に一般提供が始まったAppSync Eventsを使えば、GraphQLスキーマを介さず、WebSocketだけでPub/Subのイベント配信を構築できる仕組みです。チャンネルへイベントをパブリッシュし、購読者へリアルタイムに届ける軽量な用途に向きます。GraphQLの型やリゾルバを用意するほどではないリアルタイム配信を、短い手数で立ち上げたいときの選択肢です。
AWS AppSyncの料金は月いくらからですか?
月額の最低料金はなく、使った分だけの従量課金です。GraphQL APIはクエリ・データ変更操作が100万件あたり4.00USD、リアルタイム更新が100万件あたり2.00USDに接続時間が加わります。新規AWSアカウントには12か月の無料枠があり、クエリ25万件・リアルタイム更新25万件・接続60万分までは無料に収まる枠です。小規模な検証なら無料枠内で試せます。
VTLとJavaScriptリゾルバはどちらを選ぶべきですか?
新規に書き起こすなら、使い慣れた言語で書け型の補完も効くJavaScript/TypeScript(APPSYNC_JSランタイム)方式が扱いやすいです。既存のVTLテンプレートを抱えるなら、無理に書き換えず新しいリゾルバからJavaScriptで足す段階的な進め方も取れます。方式はリゾルバ単位で選べるため、同一API内で併用できます。
AWS AppSyncとAmplifyはどう関係しますか?
AWS Amplifyのデータ機能(Data)は、内部でAppSync(GraphQL)とDynamoDBを組み合わせて動きます。Amplifyを使うとAppSyncのスキーマ定義や認証設定をTypeScriptのコードから宣言でき、バックエンドを型安全にまとめられます。AppSyncを直接構築するか、Amplify経由で使うかは、フルスタックの土台をどこまで自前で握りたいかで決めるとよいでしょう。
関連記事
- AWS Amplifyとは?Gen 2のバックエンド定義と料金・採用判断を解説:AmplifyのDataがAppSyncを内部利用する関係と、コードからの定義方法を深掘り
- サーバーレスとは?仕組み・メリットとコンテナとの使い分けを解説:AppSyncの土台にあるサーバーレスの判断軸を整理した上位概念の記事
- RESTとは?REST APIの仕組みと6原則・GraphQLとの違いを解説:GraphQLと対比されるRESTの原則を押さえAPI設計の基礎を固める記事
- クラウドネイティブとは?CNCFの定義・構成技術と導入判断を解説:AppSyncが位置づくクラウドネイティブ開発の全体像を示すグループのハブ記事