AWS AppSyncとは?GraphQL API の開発を容易にする
まずは、GraphQLの概要とユースケース把握をした方がイメージしやすいので、後にAWS AppSync概要を説明します。
GraphQLとは?
API 用のクエリ言語で、クライアントがサーバーからデータをQuery(取得)、Mutation(変更)、Subscription(購読)できるようにするためのデータ言語でもあります。また、GraphQL クエリではクライアントがレスポンスの形式を指定することができ、これにより、クライアントは必要なデータのみを必要な形式で照会することが可能になります。
特徴、ユースケース
1)リアルタイムほぼリアルタイムでデータを更新。最新の情報をウォッチするダッシュボード。
2)コラボレーション複数ユーザーが共同編集を行うアプリケーションドキュメント、画像、メッセージなど、さまざまなコンテンツタイプを自動更新
3)ソーシャルメディアチャット機能、オフライン時でもアプリケーションを操作でき、再接続時に自動Sync
AWS AppSyncとは?
AWS AppSyncとは、データソースのデータに安全にアクセス出来ると共に操作・結合するための API が作成できます。その為、アプリケーションの開発が簡素化でき開発スピードが上がります。
AWS AppSyncは、GraphQL API の開発を容易にする、完全マネージド型サービスです。このサービスは、Amazon DynamoDB や AWS Lambda、その他のデータソースとの安全な接続に必要な、面倒な作業を自動的に処理します。パフォーマンスを向上させるためのキャッシュや、リアルタイムの更新を可能にするためのサブスクリプション、そして、オフラインのクライアントを簡単に同期できるようにするクライアント側のデータストアなどが、簡単に利用できるようになります。
利点
・シンプルかつ安全なデータアクセス
AWS AppSync を使用すると、複数の同時認証モードを使用してアプリケーションのデータを簡単に保護できます。また、セキュリティやキャッシング、きめの細かいアクセス制御を、GraphQL スキーマから直接、データの定義レベルで設定できます。
・組み込まれたリアルタイム & オフラインの機能
マネージド型の GraphQL サブスクリプションにより、AWS AppSync では、数百万のクライアントに対し Websockets を介して、データの更新をリアルタイムでプッシュできます。また、AppSync では、モバイルおよびウェブアプリケーションのために、オフライン時のデバイスによるローカルデータへのアクセスと、オンラインに復帰した際に競合を解決するためのカスタマイズ可能な機能を備えた、データ同期機能までを提供します。
・サーバー管理が不要
AWS AppSync には、GraphQL API に関するセットアップ、管理、保守の機能が、高可用性のサーバーレスインフラストラクチャを使用した完全マネージド型として組み込まれています。GraphQL API を、AWS CLI やコンソール、Amplify CLI、もしくは CloudFormation 経由で、数秒の内に作成することができます。クセス制御を、GraphQL スキーマから直接、データの定義レベルで設定できます。
・組み込まれたリアルタイム & オフラインの機能
マネージド型の GraphQL サブスクリプションにより、AWS AppSync では、数百万のクライアントに対し Websockets を介して、データの更新をリアルタイムでプッシュできます。また、AppSync では、モバイルおよびウェブアプリケーションのために、オフライン時のデバイスによるローカルデータへのアクセスと、オンラインに復帰した際に競合を解決するためのカスタマイズ可能な機能を備えた、データ同期機能までを提供します。
・サーバー管理が不要
AWS AppSync には、GraphQL API に関するセットアップ、管理、保守の機能が、高可用性のサーバーレスインフラストラクチャを使用した完全マネージド型として組み込まれています。GraphQL API を、AWS CLI やコンソール、Amplify CLI、もしくは CloudFormation 経由で、数秒の内に作成することができます。