📒

appsyncについて学んだメモ

2023/09/06に公開

AppSyncとは

AppSyncは、AWSが提供するクラウドベースのデータ同期サービス。主要な特徴と機能は以下の通り:

  • データソース: AppSyncはさまざまなデータソースと統合でき、AWS内のデータベースから外部APIまで幅広いデータ元にアクセスできる。

  • GraphQL: GraphQLを使用して、クライアントが必要なデータを効率的に取得できる。リクエストとレスポンスの形式をカスタマイズできる。

  • リアルタイムデータ同期: データの変更が発生した際、リアルタイムでクライアントに通知を送信し、リアルタイムアプリケーションを構築できる。

  • セキュリティと認証: 様々な認証方法をサポートし、データへのセキュアなアクセスを確保できる。

  • オフラインデータ同期: モバイルアプリケーション向けに、デバイスがオフラインの場合でもデータ同期を可能にする。

AppSyncは、クラウドベースのアプリケーション開発において、データ同期とリアルタイム通信の要件を満たすための強力なツール。

ざっくりとできることを書いたので、いくつかの説明をもう少し掘り下げていく。

データソース

AppSyncは複数のデータベースからデータをまとめて取得できる。つまり異なるデータソースと統合することができ、AWS内の複数のデータベースサービス(例: DynamoDB、RDS、Elasticsearch)や外部API(REST、GraphQL、HTTPなど)からデータを取得できる。

これはアプリケーションが複数のデータソースから情報を収集し、クライアントアプリケーションに統合する必要がある場合に非常に便利。例えば、ユーザープロファイル情報をDynamoDBから、製品情報を外部のREST APIから取得し、それらを1つのGraphQLクエリでまとめてクライアントに提供することができる。

GraphQL

Appsyncが使用できるGraphQLの利点は以下。

  • 柔軟なデータ取得: クライアントが必要なデータをクエリで指定できるため、必要な情報だけを取得し、過剰なデータの取得を防ぐことができる。無駄を減らせる。

  • 単一エンドポイント: GraphQL APIは通常、単一のエンドポイントで提供される。RESTful APIのようにいくつもエンドポイントを用意しなくて良い。APIのエンドポイント管理が簡略化され、クライアントからのリクエストも効率化される。便利。

  • タイプシステム: 型システムを持ち、データ型とそのフィールドを明示的に定義できるため、安全。

  • リアルタイムデータ: 双方向通信でリアルタイムデータの要件をサポートしている。チャットで使ってみる。

  • カスタムリゾルバ: GraphQLサーバーでは、各フィールドのデータ取得ロジックをカスタムリゾルバとして定義できる。JavaScriptにも対応したため、とても便利。

セキュリティと認証

セキュリティの具体例としては、AppsyncはAWSのCognitoの認証機能を利用できるため、簡単に認証関連が実装できる。便利。

Appsyncを使って嬉しいこと

  • restTemplateみたいにhttp通信でGET、POST、PUT、DELETE、PATCHで分けて管理しなくていい。
  • クエリでリクエストして複数のデータソースからまとめてデータ取得できる。
  • 双方向通信ができる。チャットに使おう。
  • AWSサービスのCognito、EC2、DynamoDB、RDSなどと連携できる。セキュリティやデータ管理楽。
  • AppsyncのリゾルバがJavaScriptにも対応したから、バック・フロントどちらも書ける。

結論

Appsyncを使って手軽にマイクロサービスを作れる。便利。

百聞は一見に如かず。
今後の個人開発で実際に使ってみて、学びを定着させる。

Discussion