Q:AWS AppSync とは何ですか?

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

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

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

Q:本日発表された機能を使用すると、どのようなアプリケーションを構築できるのですか? 

AWS AppSync を使用して、ユーザーおよびアプリケーションデータのデバイス間同期、接続切断時の動作継続、リアルタイムのコラボレーション環境といった特長を生かしたモバイルアプリケーションを構築できます。これにはあらゆる業種のアプリケーションが含まれます。以下に例を示します。

  • リアルタイムスコアボードを使用したゲームアプリケーション
  • ニュースフィードと金融データ
  • カスタマーサービスのダッシュボード
  • 共有ウォレット、オフライン使用による旅行日程トラッキング
  • コンテンツフィードと、検索、検知、メッセージングを使用したソーシャルメディア
  • 「いいね」、メッセージング、位置や近接情報を使用したデートアプリケーション
  • 接続切断時にも使用できる、クエリと CRUD 操作が必要な現場サービス向けアプリケーション
  • ドキュメントコラボレーション
  • 共有ホワイトボードなどの 3D コラボレーション
  • 複数アクターを使用した AR/バーチャルリアリティ (手術中の医師とオブザーバー、教師と生徒)
  • オフラインで動作し、最終的に同一の整合性を反映する必要があるマルチデバイスアプリケーション (Alexa、モバイル、ウェブ、IoT など) およびマルチモーダルアプリケーション (タスクリストなど)
  • 在席表示や会話履歴機能を持つチャットアプリケーション

Q:AWS AppSync では、どのアプリケーション開発言語がサポートされていますか?

AWS AppSync SDK では iOS、Android、JavaScript がサポートされています。JavaScript のサポート範囲には、React や Angular などのウェブフレームワーク、および React Native や Ionic といったテクノロジーが含まれます。また、AppSync GraphQL エンドポイントへの接続にオープンソースクライアントを使用して、一般的な HTTP ライブラリやシンプルな CURL コマンドなど、その他のプラットフォームも利用できます。

Q:GraphQL とは何ですか? 

GraphQL は、サーバーからのデータに対して、クライアントによるフェッチ、変更、サブスクライブを可能にするデータ言語です。GraphQL クエリでは、サーバーから返されたデータをどのように構造化するかをクライアントが指定します。これによって、クライアントは必要なデータのみを必要なフォーマットでクエリできます。

Q:GraphQL スキーマとは何ですか? 

A: GraphQL スキーマは、どのようなデータ機能をクライアントアプリケーションに対して実行可能にするかを定義します。例えば、スキーマは、どのクエリが利用可能か、アプリケーションがデータをどのようにサブスクライブできるかについて、基盤となるデータソースについて知ることなく指定します。スキーマはアプリケーションのデータモデルから利用できるタイプシステムによって定義されます。

Q:開始にあたり GraphQL について知っておく必要はありますか? 

いいえ、AWS AppSync は自動的にすべての API、スキーマをセットアップし、データソースを数秒でデータモデルに入力できるシンプルな UI ビルダーに接続します。クライアントアプリケーションで、すぐにエンドポイントの使用を開始できます。コンソールは、アプリケーションが完全に機能するよう、多数のサンプルスキーマとデータソースも提供しています。

Q:AWS AppSync は既存の AWS リソースと併用できますか? 

はい。AWS AppSync では GraphQL スキーマを使用して、Amazon DynamoDB、AWS Lambda、Amazon Elasticsearch Service の既存のテーブル、関数、ドメインを使用できます。AWS AppSync なら、既存の AWS リソースを使ってデータソースを作成し、マッピングテンプレートを使用して相互作用を設定できます。

Q:マッピングテンプレートとは何ですか? 

GraphQL リクエストは「リゾルバ」として実行されるため、メッセージ形式は、AWS AppSync と統合するさまざまな AWS のサービスに適した形に変換する必要があります。例えば、あるフィールドの GraphQL クエリは、Amazon DynamoDB、AWS Lambda、Amazon Elasticsearch Service 向けにそれぞれ固有の形式に変換する必要があります。AWS AppSync にはこのためのマッピングテンプレートが用意されています。テンプレートは Apache Velocity Template Language (VTL) で記述され、必要に応じてカスタムロジックを提供することができます。より使用しやすくするために、AWS AppSync にはさまざまなサービス用の組み込みテンプレートとユーティリティ関数も用意されています。

Q:AWS AppSync ではデータがどのように保護されますか? 

保管中のアプリケーションデータはお客様の AWS アカウントに保存され、AWS AppSync サービス内には保存されません。AWS AppSync では、AWS Identity and Access Management (IAM) や Amazon Cognito ユーザープールなどを使用したセキュリティコントロールによって、アプリケーションからこのデータへのアクセスを保護できます。さらに、認証されたリクエスト用にユーザーコンテキストを引き渡すことができるため、AWS AppSync のマッピングテンプレートを使用して、リソースに対するきめ細かなアクセスコントロールロジックを実行できます。

Q:AWS AppSync ではデータをリアルタイムで作成できますか?

はい。AWS AppSync では、どのようなデータソースについてもサブスクリプションがサポートされているため、突然の変化が発生したときは、MQTT over WebSockets または pure WebSockets を使用して、イベントストリームをサブスクライブしているクライアントにその結果をすぐに引き継ぐことができます。

Q:AWS AppSync で複雑なクエリを実行するにはどうすればよいですか? 

AWS AppSync で利用できるデータソースでは、GraphQL を使用することで、Amazon DynamoDB、Amazon Elasticsearch Service、AWS Lambda によって提供される機能を最大限活用できます。インデックス作成や条件チェックといった機能とマッピングテンプレートによって、DynamoDB から包括的な結果が返されます。あいまい検索、位置情報検索などの Amazon Elasticsearch Service のユースケースもアプリケーションで利用できます。さらに、Lambda を使用した連続的なリクエストやバッチリクエストによって、Amazon Aurora などの他のソースからもデータを返すことができます。

Q:AWS AppSync はどの AWS リージョンで利用できますか?

AWS AppSync は世界の様々なリージョンでご利用いただけます。詳細については、AWS リージョン表をご覧ください。

Q:既存の Amazon DynamoDB テーブルをインポートできますか? 

AWS AppSync では、テーブルのキースキーマとインデックスの推論を含む既存の DynamoDB テーブルから GraphQL スキーマを自動で生成できます。インポートが完了すると、GraphQL クエリ、ミューテーション、サブスクリプションを使用できます。コーディングは不要です。また AppSync は、GraphQL タイプから DynamoDB 属性に、非キー属性を「オートマップ」します。

Q:AWS AppSync でデータベースを作成できますか? 

お客様は手動で、またはコンソールを使用して GraphQL スキーマを作成できます。AWS AppSync では、自動的に Amazon DynamoDB テーブルをプロビジョニングし、適切なインデックスを付与します。さらに、データソースが「GraphQL リゾルバ」に接続されるため、お客様はアプリケーションコードとデータ構造に集中して作業できます。

Q:アプリケーションを AppSync API に接続するためにどのクライアントを使用できますか?

HTTP または GraphQL クライアントを使用して、AppSync の GraphQL API に接続できます。AppSync バックエンドに接続するために最適化された Amplify クライアントを使用することを強くお勧めします。アプリケーションのユースケースに応じて、いくつかのオプションがあります。

  • DynamoDB データソースの場合、Amplify クライアントの DataStore カテゴリを使用します。最高の開発者体験および組み込みの競合検出と解決を提供します。
  • オフライン要件がないシナリオの非 DynamoDB データソースの場合、Amplify クライアントの API (GraphQL) カテゴリを使用します。
  • オフライン要件があるシナリオの非 DynamoDB データソースの場合は、AppSync SDK を使用します。

AWS AppSync のお客様の詳細

カスタマーページを見る
始める準備はできましたか?
AWS AppSync コンソールを開く
ご不明な点がおありですか?
お問い合わせ