AWS AppSync のアイコン

AWS AppSync 人気2017年〜

GraphQL API をフルマネージドで構築・運用できるリアルタイムデータ同期サービス

何ができるか

AWS AppSync は、GraphQL をベースとしたフルマネージド API サービスです。DynamoDBLambdaRDS、OpenSearch など複数のデータソースを統合した GraphQL API を簡単に構築でき、リアルタイムのデータ同期やオフラインアクセスにも対応しています。フロントエンドアプリケーションから単一のエンドポイントで必要なデータだけを効率的に取得でき、モバイルアプリや SPA の開発を大幅に加速します。

どのような場面で使うか

リアルタイムチャットアプリケーションのバックエンド構築、モバイルアプリのオフライン対応データ同期、複数マイクロサービスのデータを統合する BFF (Backend for Frontend) の実装、IoT ダッシュボードのリアルタイムデータ表示、ソーシャルメディアアプリのフィード更新通知など、リアルタイム性とデータ統合が求められるアプリケーション全般で活用されています。

身近な例え

レストランの注文システムに例えるとわかりやすいでしょう。従来の REST API は定食メニューのように、セットで決まった料理が出てきます。GraphQL を使う AppSync は、ビュッフェのように必要な料理 (データ) だけを自分で選んで取れる仕組みです。さらに、新しい料理が追加されたらリアルタイムで通知してくれます。

AppSync とは

AWS AppSync は、GraphQL API の構築・運用をフルマネージドで提供するサービスです。GraphQL は Facebook が開発したクエリ言語で、クライアントが必要なデータの形状を指定してリクエストできるため、REST API で発生しがちなオーバーフェッチ (不要なデータの取得) やアンダーフェッチ (データ不足による追加リクエスト) を解消します。AppSync はこの GraphQL の利点を、インフラ管理なしで活用できるようにします。

リアルタイム同期とオフライン対応

AppSync の大きな強みは、WebSocket ベースのリアルタイムサブスクリプション機能です。データの変更をクライアントに即座にプッシュ通知でき、チャットやコラボレーションツールのようなリアルタイムアプリケーションを容易に構築できます。また、Amplify DataStore と組み合わせることで、ネットワーク切断時にもローカルでデータを操作し、接続回復時に自動的にサーバーと同期するオフラインファースト設計を実現できます。 リアルタイム同期とオフライン対応をさらに深く理解するには、Amazon の解説書 も参照してみてください。

データソースの統合

AppSync は複数のデータソースをリゾルバーで統合し、単一の GraphQL エンドポイントとして公開できます。DynamoDB テーブル、Lambda 関数、RDS データベース、OpenSearch クラスター、HTTP エンドポイントなど、多様なバックエンドを組み合わせた API を構築可能です。リゾルバーは VTL (Velocity Template Language) または JavaScript で記述でき、データの変換やビジネスロジックの適用も柔軟に行えます。

注意点

  • GraphQL のスキーマ設計はアプリケーションの使い勝手に直結するため、フロントエンドの要件を十分に把握してから設計すること
  • リアルタイムサブスクリプションは WebSocket 接続を維持するため、大量の同時接続がある場合は接続数の上限とコストに注意が必要
共有するXB!