COLUMN

AWS AppSyncとは?特徴やメリットなどをわかりやすく解説

AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。

AWS AppSyncとはGraphQLを用いて、複数のデータソースを統合し安全にアクセス・操作できるサーバーレス型マネージドサービスです。DynamoDBやElasticsearchなど複数のデータソースを統合でき、シンプルなAPIの設計が実現できます。

AWS AppSyncを活用すれば、RESTful APIで問題となったオーバーフェッチングを改善でき、アプリケーション開発の簡素化も可能です。

一方、AWS AppSyncはGraphQLが使用できるということを理解しているものの、特徴が分からず導入するべきか悩まれている方もいるでしょう。

そこで本記事では、AWS AppSyncの特徴やメリットを分かりやすく解説します。AWS AppSyncと似たサービスであるAmazon API Gatewayとの違いについても触れていますので、ぜひ参考にしてください。

1.AWS AppSyncとは?

AWS AppSyncとは「GraphQL」を活用し、複数のデータソースを統合し安全にアクセス・操作できるAWSのサーバーレス型マネージドサービスのことです。アカウントのデータソースへ即座に接続でき、リアルタイム機能やデータの同期などが可能です。そのほか、必要なデータのみを取得したり複数のデータソースへアクセスが容易になります。

AWS AppSyncを活用した主なユースケースは、以下の通りです。

  • リアルタイムのダッシュボード
  • ドキュメント・テキストの共同編集が可能なアプリケーション
  • SNSなどのチャット機能

上記のような機能を構築したい場合には、AWS AppSyncが最適です。

1-1.GraphQLとは?

AWS AppSyncで開発できるGraphQLとは、API用のクエリ言語とスキーマ言語のことです。定義に従ってクエリを書き、サーバーからJSONを取得できます。

GraphQLは、もともとFacebookを提供しているMeta社で開発されました。Meta社では、RESTful APIとFQL(Facebook Query Language)を活用しデータを利用していましたが、オーバーフェッチングが効率的な処理を妨げていたのです。

そこで、オーバーフェッチングを改善するために、リクエストしたデータのみを抽出できるGraphQLを開発しました。

GraphQLでは、クライアントはスキーマ指定されているレスポンス形式を自由に生成が可能です。クエリを受け取ったら、GraphQLはスキーマと照合しながら、クエリを実行していきます。スキーマのデータ操作を行うリゾルバによって、必要な情報だけを過不足なく取得できます。

そのほか既にあるクエリに影響を与えず、フィールドを増やしたり止めることも可能です。GraphQLは、柔軟性が高くクライアントにとって使い勝手のよいAPI用のクエリ言語とスキーマ言語といえるでしょう。

実際に現在大手サービスであるYouTubeやNetflixなども、GraphQLを活用しています。

1-2.Amazon API Gatewayとの違い

AWSには、AWS AppSyncと似たサービスで、Amazon API Gatewayがあります。

どちらも、APIを開発できるフルマネージドサービスですが、AWS AppSyncはGraphQLの開発ができるのに対し、Amazon API GatewayはRESTful APIとWEBSOCKET APIを作成できる点で異なります。

主な違いやメリット・デメリットを、見ていきましょう。

  • 横にスクロールします
AWSサービス AWS AppSync Amazon API Gateway
APIタイプ
  • GraphQL API
  • Pub/Sub API
  • RESTful API
  • WEBSOCKET API
メリット
  • サーバーレス
  • エンドポイントがひとつ
  • 必要なデータのみ抜粋するためフィルタリングは不要
  • テストが楽
  • 複雑なデータクエリが必要ない
デメリット
  • 専門的な知識が必要
  • リゾルバーのロジックが複雑になりやすい
  • DynamoDBへのアクセスが必要
  • エンドポイントが複数
  • 全データを取得するため、取得したデータのフィルタリングが必要

Amazon API Gatewayでは、1つのAPIで複数のエンドポイントが配置されます。一方、AWS AppSyncは、エンドポイントは一つでPOSTを承認するイメージです。

また、RESTfulではリソースごとにAPIコールが必要ですが、GraphQLではObject形式で得られるため複数の情報を1度のクエリで取得できます。

クライアントのリクエストが大きいと、Amazon API Gatewayでは対応するのが大変なためAWS AppSyncを使用した方が使いやすいでしょう。一方、RESTful APIよりも後に開発されたGraphQL APIは、専門的な知識が必要です。

Amazon API Gatewayについて詳しく知りたい方は、以下の記事をご覧ください。

関連記事:Amazon API Gatewayとは?基本をわかりやすく解説

AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。

2.AWS AppSyncの特徴と利用メリット

本章では、AWS AppSyncの特徴と利用するメリットを解説します。Amazon API Gatewayとは異なるメリットも多数ありますので、検討中の方は利用シーンを想像しながら見てください。

2-1.シンプルなAPI設計

AWS AppSyncは、シンプルなAPI設計が可能です。

GraphQLを使用することで、クライアントが必要とするデータを指定して効率的に取得できます。また必要なデータをレスポンス形式で指定するため、オーバーフェッチングやアンダーフェッチングが改善される点もメリットです。

ドキュメントが自動生成されるため、APIドキュメントを作成する時間も削減でき、よりシンプルにAPIの設計ができます。開発における手間を削減できるため、よりスピーディな開発ができるでしょう。

2-2.複数のデータソースとの統合

AWS AppSyncは、複数の異なるデータソースと統合が可能です。

統合できる主なデータソースは、以下の通りです。

  • DynamoDB
  • Relational Database Service
  • Elasticsearch
  • Lambda
  • HTTPリソース

またLambdaのデータソースを利用していた場合、AWS AppSyncで直接サポートをしていないAmazon S3なども利用可能です。

単一のエンドポイントで、さまざまなデータソースにアクセスできるため、アプリケーションの一元化も必要ありません。複数のデータソースを活用できれば、開発時の拡張性が高くなるため、より高度な開発をしたい場合に最適のサービスでしょう。

2-3.オフラインデータアクセス

AWS AppSyncでは、オフラインでもデータアクセスのサポートをしています。

たとえばモバイルアプリケーションがオフラインであったとしても、Amplify DataStoreにてアプリケーションのデータのやり取りが可能です。そのため、オフライン上からオンラインになった瞬間にデータは自動同期され、アプリケーションインターフェースに変更画面が表示されるようになっています。

2-4.リアルタイムデータ同期

AWS AppSyncではサブスクリプションを活用すれば、リアルタイムにてデータの利用設定が可能です。

WebSocketを使用すれば、データが変更されたなどの突然の変化があった場合でも、クライアントにリアルタイムで通知をしてくれます。

リアルタイムデータ同期を活用したユースケースとして、主な内容は以下の通りです。

  • SNSなどのアプリケーションにおけるチャット機能
  • 共同編集などのテキストアプリケーション
  • ニュース速報
  • 株価チャート

上記のようにリアルタイムで情報を引き出したい場合に最適な機能で、開発できるアプリケーションの幅を広げられます。

2-5.認証とアクセス制御の強化

AWS AppSyncではデータアクセス制御にレベルがあり、ユーザーがニーズに合わせて設定可能です。Amazon CognitoやAPIキー、IAMロールなどを使用でき、最適な方法で認証とアクセス制御を強化できます。

Amazon Cognitoでは、GoogleやFacebookなどのサードパーティとの連携も可能でユーザー認証がしやすくなります。ユーザーに合わせた最適なアクセス制御と認証ができることにより、データへの安全なアクセスが可能です。

2-6.スケーラビリティと高可用性

AWS AppSyncはスケーラブルなサービスで、高可用性のあるサービスなのもメリットと言えます。

AWS AppSyncではサーバーレスアーキテクチャを採用しており、オートスケーリング機能があります。このオートスケーリングにより、アプリケーションのトラフィックが増減するに従って自動的に容量を調節して、需要に対して柔軟に対応が可能です。

そのため、システムは常に適切なリソースを使用できるため、システム障害が起こりにくく高可用性が実現できるのです。

2-7.カスタムリゾルバ

AWS AppSyncはカスタムリゾルバをサポートしており、ビジネスロジックのカスタマイズやデータ変換が可能です。

リゾルバとは、スキーマとデータソースをつなぐ関数のことで、AWS AppSyncバックグラウンドでのリゾルバは、開発者が自由に利用できます。

1つ目のリゾルバは、Apache Velocity Template Language(VTL)というマッピングテンプレートです。

Apache Velocity Template Language(VTL)のマッピングテンプレートでは、リクエストテンプレートとレスポンステンプレートの両方を記述する必要があります。

そのほかAWS AppSync Samplesも提供され、JavaScriptでの記述も可能です。どちらの記述方法でも問題ないため、慣れ親しんだ関数を活用すると良いでしょう。

2-8.統合と拡張性

AWS AppSyncは、統合と拡張性にも優れています。

AWS Lambdaを統合すればAWS Lambda関数を呼び出して、リクエスト処理なども可能です。効率的にリクエストするための、リクエストオペレーションも提供されているため活用すると良いでしょう。

また、Elasticsearchを使用すれば高度な検索機能を実現することも可能です。

Elasticsearchとは、検索に特化した全文検索エンジンのことです。Elasticsearchを活用することで、大量のデータであっても処理ができます。

AWS AppSyncはシームレスにデータソースと統合できるため、拡張性が広がりより高度な開発が可能です。

AWSなどクラウドに関するお役立ち情報やイベント情報などをNTT東日本のクラソルメールマガジンにて毎週配信しております。ぜひご登録いただき、今後のクラウド活用の参考にしていただければと思います。

3.AWS AppSyncの料金体系

AWS AppSyncは、使用した分のみを支払う従量課金です。内容としてクエリと変更操作、リアルタイム更新に料金が発生します。

下表は、無料枠と費用の一覧です。

価格 無料枠(1ヶ月あたり)
クエリとデータ変更の操作 4.00USD/100万回 25万回まで
リアルタイムアップデート 2.00USD/100万回 25万回まで
サービスへの接続 0.08USD/100 万分 60万分

※2023年12月現在の料金です。

無料枠は、AWSアカウントを新規で作成してから12カ月間利用できる特典です。無料枠を超えた場合、超過した料金のみ課金されるため注意しましょう。

AWS AppSyncの最新の料金を確認したい方は、以下の公式ホームページより確認をお願いします。

出典:AWS AppSync の料金(AWS)

4.AWSの導入ならぜひNTT東日本にご相談ください

AWS AppSyncで、リアルタイムデータを活用したアプリケーションの開発を検討中だけれど、AWSでの構築や導入に不安がある方もいるでしょう。

そのほかRESTful APIを利用している場合GraphQLに変更が必要なのか、必要であればどのような構築をすれば良いのか分からないという方は、一度NTT東日本にご相談ください。

NTT東日本では、AWSの有資格者であるエンジニアが担当となり、親身にご相談に応じます。AWS AppSyncとAmazon API Gatewayどちらを導入するべきか悩んでいる方も含め、200以上の実績があるNTT東日本にどのような内容でもお気軽にご相談ください。

クラウドに関するご相談・お問い合わせフォーム

AWS AppSyncについてまとめ

AWS AppSyncとは「GraphQL」の開発ができるマネージドサービスです。AWS AppSyncを利用することで、リアルタイムデータの同期はもちろん、複数のデータソースをまとめて活用することも可能です。

さらに必要なデータだけを取得できるGraphQLは、RESTful APIで問題点だったオーバーフェッチングやアンダーフェッチングの改善もできます。

AWS AppSyncを利用しGraphQLにて開発をしたいと検討中ではあるものの、導入や構築に不安がある方はNTT東日本にぜひご相談ください。

クラウドに関するご相談・お問い合わせフォーム

ページ上部へ戻る

無料ダウンロード

自社のクラウド導入に必要な知識、ポイントを
このに総まとめ!

あなたはクラウド化の
何の情報を知りたいですか?

  • そもそも自社は本当にクラウド化すべき?オンプレとクラウドの違いは?
  • 【AWS・Azure・Google Cloud】
    どれが自社に最もマッチするの?
  • 情シス担当者の負荷を減らしてコストを軽減するクラウド化のポイントは?
  • 自社のクラウド導入を実現するまでの具体的な流れ・検討する順番は?

初めての自社クラウド導入、
わからないことが多く困ってしまいますよね。

NTT東日本では
そんなあなたにクラウド導入に必要な情報を

1冊の冊子にまとめました!

クラウド化のポイントを知らずに導入を進めると、以下のような事になってしまうことも・・・

  • システムインフラの維持にかかるトータルコストがあまり変わらない。。
  • 情シス担当者の負担が減らない。。
  • セキュリティ性・速度など、クラウド期待する効果を十分に享受できない。。
理想的なクラウド環境を実現するためにも、
最低限の4つのポイントを
抑えておきたいところです。
  • そもそも”クラウド化”とは?
    その本質的なメリット・デメリット
  • 自社にとって
    最適なクラウド環境構築のポイント
  • コストを抑えるため
    具体的なコツ
  • 既存環境からスムーズにクラウド化
    実現するためのロードマップ

など、この1冊だけで自社のクラウド化のポイントが簡単に理解できます。
またNTT東日本でクラウド化を実現し
問題を解決した事例や、
導入サポートサービスも掲載しているので、
ぜひダウンロードして読んでみてください。

クラウドのわからない・
面倒でお困りのあなたへ

クラウドのご相談できます!
無料オンライン相談窓口

NTT東日本なら貴社のクラウド導入設計から
ネットワーク環境構築・セキュリティ・運用まで
”ワンストップ支援”が可能です!

NTT東日本が選ばれる5つの理由

  • クラウド導入を
    0からワンストップでサポート可能!
  • 全体最適におけるコスト効率・業務効率の改善
    中立的にご提案
  • クラウド環境に問題がないか、
    第3者目線でチェック
    してもらいたい
  • 安心の24時間・365日の対応・保守
  • NTT東日本が保有する豊富なサービスの組み合わせで
    ”課題解決”と”コスト軽減”を両立

特に以下に当てはまる方はお気軽に
ご相談ください。

  • さまざまな種類やクラウド提供事業者があってどれが自社に適切かわからない
  • オンプレミスのままがよいのか、クラウド移行すべきなのか、迷っている
  • オンプレミスとクラウド移行した際のコスト比較を行いたい
  • AWSとAzure、どちらのクラウドが自社に適切かわからない
  • クラウド環境に問題がないか、第3者目線でチェックしてもらいたい
  • クラウド利用中、ネットワークの速度が遅くて業務に支障がでている

クラウドを熟知するプロが、クラウド導入におけるお客さまのLAN 環境や接続ネットワーク、
クラウドサービスまでトータルにお客さまのお悩みや課題の解決をサポートします。

相談無料!プロが中立的にアドバイスいたします

クラウド・AWS・Azureでお困りの方はお気軽にご相談ください。