0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS SAP】AppSyncとは

Last updated at Posted at 2025-01-05

AppSyncとは

GraphQL API構築・管理サービスです。

もう少し具体的に

AWS AppSyncとは、GraphQL APIの構築・管理を支援するフルマネージドサービスです。GraphQLを用いることで、クライアントは単一のエンドポイントから必要なデータのみを効率的に取得・操作できます。AppSyncは、AWSのデータソース(DynamoDB、RDS、Lambda、OpenSearchなど)や外部APIと統合し、柔軟でスケーラブルなデータ操作を可能にします。また、リアルタイム機能やオフライン同期もサポートしており、接続状況に依存しないアプリケーションの構築が容易です。セキュリティ面では、CognitoやIAM、APIキーを使った認証が統合されており、安全なデータアクセスを提供します。これにより、効率的なAPI設計と運用が実現します。

AppSyncがあると何が便利か

GraphQL APIを簡単に構築ができます。

AppSyncがないと?

GraphQL APIを手動で構築(GraphQLサーバーの構築、データソースとの連携、認証機能やリアルタイム更新の実装など)をする必要があります。

何が実装できる?

  • リアルタイムチャット:
    • メッセージをGraphQLで送受信、全クライアントへ通知
  • スコアボード更新:
    • DynamoDB連携でスコア保存、リアルタイム反映
  • プレイヤーマッチメイキング:
    • クエリで条件検索、サブスクリプションで結果配信
  • ゲーム進行状態同期:
    • セッション状態をGraphQLで管理、全プレイヤーに即時共有
  • 通知システム:
    • DynamoDBトリガーでイベント生成、リアルタイム通知

ゲームのセッションデータ管理は、リアルタイム性ならAmazon ElastiCache、永続化が必要ならAmazon DynamoDBが適切です。

「AppSync」の名前の由来は?

アプリケーション(App)とデータの同期(Sync)を効率的に行う機能に由来しています。

そもそも、GraphQLとは

GraphQLとは、クライアントが必要なデータをクエリで指定して取得・操作できるAPI設計仕様および言語です。
Facebookが2012年に開発し、2015年にオープンソース化され、効率的なAPI設計として普及しました。

何が効率的なのか

GraphQLは、必要なデータのみ取得できる柔軟なクエリ構造と、単一エンドポイントで複雑なデータ操作が可能な点が効率的です。

もう少し具体的に

GraphQLは、クライアントがクエリで必要なデータやフィールドを正確に指定できるため、REST APIのように過剰なデータ取得や不足取得が発生しません。また、単一エンドポイントで異なるデータ操作が可能で、ネスト構造のデータも一度のリクエストで取得できます。さらに、型定義によってデータ構造が明確化され、クライアントとサーバー間の整合性が保たれるため、APIの設計・運用が効率化します。

GraphQLはエンドポイントが単一!

REST APIはデータベース毎に必要...

REST APIを使うくらいならGraphQL?

用途によりますが、複雑なデータ取得や操作が必要ならGraphQLが効率的です。単純な操作ならREST APIも有効です。

バックエンドで対応しているデータソースは?

  • AWS Lambda
  • Amazon DynamoDB
  • Amazon Elasticsearch
  • Amazon Aurora Serverless
  • HTTPエンドポイント
    など

GraphQLはオワコン?

image.png
GraphQLが「オワコン」と言われる理由は、導入や運用が複雑で、用途によってはRESTの方が適している場合があるためです。

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?