リアルタイム処理の構築を容易にするAWS AppSync

最終更新日:2026年8月12日

この記事でわかること

はじめに

項目 AWS Microsoft Azure Google Cloud
世界シェア 約33%(首位) 約22% 約11%
強み サービス数・実績 Microsoft製品連携 データ分析・AI
無料枠 12ヶ月+常時無料 12ヶ月無料 常時無料枠あり
主な資格 CLF / SAA / SAP AZ-900 / AZ-104 ACE / PCA

【要注意】上記のシェア・料金・資格名は変動する場合があります
クラウド市場シェアや無料枠の内容は時期により変わるため、最新の情報は各社公式サイトでご確認ください。

本記事で度々登場するGraphQLは、サーバーからのデータに対して、クライアントによるフェッチ、変更、サブスクライブを可能にする、Facebookが開発したオープンソースのAPI用クエリ言語です。

AWS AppSyncとは

AWS AppSyncは、複数のデバイスやユーザーが使用するモバイルアプリケーションのデータを、開発者がリアルタイムで管理及び同期できるようにするサービスです。モバイルデバイスがオフライン状態でも、データへのアクセスや変更が可能です。

また、AWS AppSync ではGraphQLを使用します。変更発生時に各ユーザーのデバイスでどのデータを自動的に同期するかを選択することで、開発者はユーザーエクスペリエンスを最適化し、ストレージと帯域幅の要件を最小限に抑えることができます。

これらの機能を活用すると、ブラウザ、Alexaスキル、ネットワーク接続が失われた場合でも使用できるIoTデバイスなどを含む、リアルタイムのコラボレーション環境を短時間で構築することができます。

※AWS AppSyncの開始にあたり、GraphQLの知識は必須ではありません。

AWS AppSyncの利点

無理なく始めて、ビジネスに合わせたスケーリング

AWS AppSync管理コンソールを使用すると、好みのIDE(Xcode、Android Studio、VS Codeなど)から直接、始めることができます。もしくは、AWS Amplify CLIを使用し、APIとクライアント側のプログラムを自動生成できます。

AWS AppSyncは、Amazon DynamoDB、Amazon Aurora、Amazon OpenSearch Service、AWS Lambdaおよびその他のAWSのサービスと統合し、無制限のスループットとビジネスニーズに合わせて拡張縮小するストレージを持った、非常に高度なアプリケーションを開発することができます。

リアルタイムサブスクリプションとオフラインアクセス

AWS AppSyncによって、以下のことが可能となります。

数百万台のデバイスとの間のリアルタイムサブスクリプション

AWS AppSyncでは、GraphQLサブスクリプションを使用して、データのどの分をリアルタイムで利用可能にするかを指定できます。GraphQLサブスクリプションはアプリケーションコードに含まれるシンプルなステートメントで、サービスに対してどのデータをリアルタイムで更新するかを指示します。

アプリデータへのオフラインアクセス

Amplify DataStoreは、ウェブ、モバイル、IoT開発者向けのクエリ可能なデバイス上のDataStoreをローカルファーストの使い慣れたプログラミングモデルで提供します。これにより、オンラインやオフライン関係なく、データをシームレスにやり取りできます。

AWS AppSyncとAmplify DataStoreを組み合わせると、Amplify DataStoreはクラウドのアドバンストバージョン管理、競合検出、解決を活用して、さまざまなクライアントからのデータを自動的にマージするだけでなく、データの一貫性と整合性を提供できます。そのため、データ競合の解決などに関して、ユーザーの対応は必要ありません。

分散データへの一元的かつ安全なアクセス

GraphQLを使用して、単一のネットワークコールで複数のデータソースにわたって複雑なクエリと集計を実行します。AWS AppSyncを使用すると、次のことができます。

  • 複数の同時認証モードを使用してアプリデータを簡単に保護する
  • GraphQLスキーマから直接データ定義レベルでセキュリティと、きめ細かいアクセス制御を定義する

AWS AppSyncでは、アプリケーションのニーズに応じて、データのアクセスと許可にいくつかのレベルを設定できます。AWS IAMを使うと、アクセス許可をさらに制限できます。

AWS AppSyncは、メールとパスワードの機能についてAmazon Cognitoのユーザープールと統合されており、ソーシャルプロバイダー(Facebook、Google+、Login with Amazon)や、SAMLによるエンタープライズフェデレーションとも統合されています。そのため、次の機能を利用できます。

  • ユーザーとロールを論理的に組織化するためのグループ機能
  • アプリケーションへのアクセスのためのOAuth機能

⚠️ 用語の変更について:本記事で連携先として紹介している「Amazon Elasticsearch Service」は、2021年9月に「Amazon OpenSearch Service」へ改称されています(管理画面のKibanaも「OpenSearch Dashboards」に改称)。AWS AppSyncとの統合機能自体は現在も利用可能ですが、サービス名・管理画面名は最新の名称でご確認ください。

AWS AppSyncの特徴

(GraphQL)シンプルになったデータアクセスとクエリ

AWS AppSyncでは、次のものが使用されます。

  • サーバーにあるデータのフェッチ、変更
  • サブスクライブをクライアントアプリケーションから実行できるデータ言語
  • GraphQL

GraphQLクエリでは、サーバーから返されたデータの構造化の方法をクライアントが指定します。これにより、クライアントは必要なデータのみを必要なフォーマットでクエリできます。

また、GraphQLには、「自己観察」という機能があり、バックエンドの知識がない開発者でも利用可能なデータを見つけることができます。

アプリ内でのデータのクエリ、フィルタリング、および検索

AWS AppSyncを使用することで、クライアントアプリケーションはデータ要件をGraphQLによって指定することができます。そのため、必要なデータのみがフェッチされ、サーバー側とクライアント側両方でのフィルタリングが可能です。

AWS AppSyncでは、前述のようにAmazon DynamoDBなどがサポートされています。そのため、GraphQLの操作として、簡単な検索、複雑なクエリやマッピング、テキストの全文検索、あいまい検索、キーワード検索、位置情報検索などが挙げられます。

キャッシング

AWS AppSyncのサーバー側のデータキャッシング機能は、データを高速インメモリ管理キャッシュできるようにし、低レイテンシーでデータを配信することで、データソースに直接アクセスする必要性を減らします。これは完全マネージド型のため、キャッシュクラスターを管理する運用上のオーバーヘッドがなくなります。

また、有効期限がカスタマイズ可能なGraphQLスキーマで定義したデータフィールドと操作を選択的にキャッシュする柔軟性を提供しているので、開発者はビジネスニーズに最適なパフォーマンスを設定できるようになります。

ユースケース

リアルタイムの共同開発

データのブロードキャスト

AWS AppSyncを使用し、以下のいずれかの方法によってスケーラブルなリアルタイムの共同開発ユースケースを実現することができます。

  • 接続しているクライアントすべてにバックエンドからデータをブロードキャストする
  • クライアント間で相互にデータをブロードキャストする

(利用例)

同一のデータをすべてのクライアントにブロードキャストし、ユーザーがスクリーン上のデータについて投票したり意見を述べたりし、リアルタイムで応答できるセカンドスクリーンのシナリオを作成する

チャットアプリケーション

AWS AppSyncを使用して、共同作業向けの対話型のアプリケーションを実現することができます。

(利用例)

複数のプライベートチャットルームをサポートし、会話履歴にアクセスでき、デバイスがオフラインの場合でも送信メッセージをキューに挿入できるような、モバイルおよびウェブアプリケーションを構築する

IoT

AWS AppSyncを使用して、AWS IoTに送信されたIoTデバイスデータにアクセスできます。

(利用例)

モバイルまたはウェブアプリケーションにリアルタイムのダッシュボードを構築し、コネクテッドカーでテレメトリを視覚的に確認する

データレイヤー

マイクロサービスのアクセスレイヤー

マイクロサービスが、それぞれ異なる環境下で動作している場合でも、AWS AppSyncを単一のインターフェイスとして使用してアクセスし、複数のマイクロサービスのデータをユーザーのアプリケーションで組み合わせることができます。

数か国語でのバックエンドデータのアクセス

単一のコールで複数のデータソース

(Amazon Aurora ServerlessのSQLデータベース、Amazon DynamoDBのNoSQLテーブル、Amazon OpenSearch Serviceの検索データ、Amazon API GatewayのRESTエンドポイント、AWS Lambdaのサーバーレスバックエンド)からデータを取得または変更することができます。この他に次のことができます。

  • GraphQLコネクションを使用して、クエリを行ったり、データソース間の関係を作ったりする
  • ウェブおよびモバイルのクライアントに、リアルタイムおよびオフラインの機能を提供する

押さえておきたいポイント

  • AWS AppSyncは、モバイル・ウェブアプリのデータをGraphQL経由でリアルタイムに管理・同期できるフルマネージドサービス
  • Amazon DynamoDB・Aurora・OpenSearch Service・Lambdaなど複数のAWSサービスと統合し、単一のGraphQLエンドポイントから横断的にデータを扱える
  • GraphQLサブスクリプションによるリアルタイム更新と、Amplify DataStoreによるオフラインアクセス・自動データ同期に対応
  • Amazon Cognitoやソーシャルプロバイダー、SAMLと連携した認証・認可、きめ細かいアクセス制御を設定できる
  • 料金は従量課金制で、クエリ・データ変更操作、リアルタイム更新、接続時間ごとに課金される(詳細は後述)

よくある質問

Q. AWS AppSyncを使うにはGraphQLの知識が必須ですか?

必須ではありません。AWS AppSync管理コンソールやAWS Amplify CLIを使えば、GraphQLのスキーマやAPIをある程度自動生成しながら始められます。ただし、複雑なクエリ設計やカスタムリゾルバーを組む段階では、GraphQLの基本的な理解があると開発がスムーズになります。

Q. AWS AppSyncとAWS Amplifyはどう違いますか?

AWS AppSyncはGraphQL APIを提供するマネージドサービスそのものです。一方AWS Amplifyは、AppSyncを含む複数のAWSサービスを組み合わせてモバイル・ウェブアプリを開発するためのフレームワーク/CLIで、AppSyncのAPIやクライアントコードの自動生成にも使われます。両者は併用されることが多く、対立する選択肢ではありません。

Q. オフライン状態のデータはどのように同期されますか?

クライアント側のAmplify DataStoreがローカルにデータを保持し、デバイスがオンラインに復帰した際にAWS AppSync経由でクラウド側と自動的に同期します。同時編集などによるデータ競合が発生した場合も、バージョン管理と競合検出・解決の仕組みにより自動でマージされるため、開発者やユーザーが手動で競合を解消する必要は基本的にありません。

さいごに

本記事では、AWS AppSyncの利点や特徴、ユースケースについて解説しました。

AWS AppSyncの利用料金は、以下のように使用した分に対してのみ支払いが発生し、最低料金やサービス使用義務はありません。ただし、AWS AppSync GraphQL API専用のキャッシュをオプションでプロビジョニングする際、選択するインスタンスタイプに応じて課金されます。

  • 4.00USD/クエリとデータ変更操作100万回
  • 2.00USD/リアルタイムアップデート100万回
  • 0.08USD/AWS AppSyncサービスへの接続時間100万分

⚠️ 料金について:上記の料金体系は本記事執筆時点のものです。AWSの料金は変更される可能性があるため、実際の導入検討時は必ずAWS公式サイトの最新料金ページでご確認ください。

AWS AppSyncは、ワークロードの種類に関わらず透明性と低価格が実現されており、リアルタイム処理の構築や自動更新フィード、通知機能実装も容易にしてくれるサービスです。

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →

前の記事

Amazon Neptune とは

次の記事

AWS RoboMakerサービスについて