3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

「AppSyncってなんだ?」を解消しよう

Last updated at Posted at 2023-08-20

はじめに

開発で既に AppSync が使用されており、「AppSyncってなんだ?」となったので、そもそものリソース自体を調べたのを以下にまとめました。

本記事の対象者

  • AppSync を初めて知る方
  • 実装ではなく、リソース自体を知りたい方

Appsync とは

AWS AppSyncは、AWS によって開発されたフルマネージドサーバーレスの GraphQL サービスです。サーバーレスの GraphQL API を作成し、単一のエンドポイントを通じて安全にデータの照会、更新、公開を行うことができます。

クライアント側は単一の GraphQL エンドポイントから複数のデータベース、マイクロサービス、およびAPIにクエリを実行できます。

スクリーンショット 2023-08-06 20.45.25.png

ここで、GraphQL が出てきて、GraphQL もわからないので、調べました。

GraphQL とは

GraphQLは、APIクエリ言語とサーバーサイドのランタイムの両方を指します。単一のエンドポイントを用意して、そこにクエリを投げ込むことで操作を行います。

クライアント側でクエリを単一のエンドポイントに投げて、AppSync側でスキーマを定義して、定義された各リクエストタイプにリゾルバー(リクエスト先の情報)をアタッチすることができます。

以下は、簡単なクエリ(リクエスト)になります。

query {
   users {
     name
   }
 }

個人的には、以下のメリットがあると思いました。

  • 単一のエンドポイントのため、複数のAPI呼び出しをまとめられる
  • スキーマで型定義できているため、クライアントとサーバー間の食い違いが発生するリスクが少なくなる

Amazon Aurora Serverless と DynamoDB との接続

Appsync は、Amazon Aurora ServerlessDynamoDB なら、直接連携することができます。ここでいう直接連携とは、中間サービス(Lambdaなど)を使用せず、連携できるという意味になります。リゾルバの設定は必要になります。

もしRDSと連携したいのならば、Lambda をリゾルバとして使用し、連携する必要があります。

DynamoDBを使用している場合

フルマネージド NoSQL データベースサービスであり、シームレスなスケーラビリティを備えた高速で予測可能なパフォーマンスを提供します。

AWS公式には、上記にように記載がありました。
そのため、パフォーマンス観点でいうと、DynamoDBを使用する方がよさそうです。

普段RDSを使用している構築の場合は、Lambda等を利用して、DynamoDBにコピーするなどすれば良いかと思います。

料金体系(2023/08時点)

AppSync では使用した分に対してのみ支払いが発生します。主に以下3つに料金が発生します。

  • クエリとデータ変更操作
  • リアルタイム更新
  • キャッシュ

具体的な料金は公式サイトをご確認ください。

最後に

AppSyncを知るために、GraphQLやDynamoDBも知る必要があり、幅広くいろんな知識を入れることができてよかったです。次は実装をメインに調査をしてみようと思います。

最後までご覧いただき、ありがとうございました。

参考文献

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?