Q:AWS AppSync では、どのアプリケーション開発言語がサポートされていますか?

AWS AppSync SDK では iOS、Android、JavaScript がサポートされています。JavaScript のサポート範囲には、React や Angular などのウェブフレームワーク、および React Native や Ionic といったテクノロジーが含まれます。また、AppSync GraphQL エンドポイントへの接続にオープンソースクライアントを使用して、一般的な HTTP ライブラリやシンプルな CURL コマンドなど、その他のプラットフォームも利用できます。

Q:GraphQL とは何ですか? 

GraphQL は、サーバーからのデータに対して、クライアントによるフェッチ、変更、サブスクライブを可能にするデータ言語です。GraphQL クエリでは、サーバーから返されたデータをどのように構造化するかをクライアントが指定します。これによって、クライアントは必要なデータのみを必要なフォーマットでクエリできます。

Q:GraphQL スキーマとは何ですか? 

A: GraphQL スキーマは、どのようなデータ機能をクライアントアプリケーションに対して実行可能にするかを定義します。例えば、スキーマは、どのクエリが利用可能か、アプリケーションがデータをどのようにサブスクライブできるかについて、基盤となるデータソースについて知ることなく指定します。スキーマはアプリケーションのデータモデルから利用できるタイプシステムによって定義されます。

Q:開始にあたり GraphQL について知っておく必要はありますか? 

いいえ、AWS AppSync は自動的にすべての API、スキーマをセットアップし、データソースを数秒でデータモデルに入力できるシンプルな UI ビルダーに接続します。クライアントアプリケーションで、すぐにエンドポイントの使用を開始できます。コンソールは、アプリケーションが完全に機能するよう、多数のサンプルスキーマとデータソースも提供しています。

Q:AWS AppSync で使用できるデータソースはどのようなものですか?

AWS AppSync は、Amazon DynamoDB、AWS Lambda、Amazon OpenSearch Service のテーブル、関数、ドメインなどの新規または既存の AWS リソースと、GraphQL スキーマで使用することができます。HTTP API を提供するデータソースやサービスに接続することができます。AWS AppSync では、JavaScript で書かれたリゾルバとのインタラクションを設定することができます。

Q:AWS AppSync のビジネスロジックはどのように書けばよいですか?

GraphQL リクエストは「リゾルバ」として実行されるため、メッセージ形式は、AWS AppSync と統合するさまざまな AWS のサービスに適した形に変換する必要があります。例えば、あるフィールドの GraphQL クエリは、Amazon DynamoDB、AWS Lambda、Amazon OpenSearch Service 向けにそれぞれ固有の形式に変換する必要があります。AWS AppSync では、JavaScript を使用してリゾルバのカスタムロジックを書き、カスタム AppSync JavaScript ランタイム上でコードを実行することができます。これにより、受信したリクエストをどのように変換してデータソースとやりとりするか、また、データソースからのレスポンスをどのように GraphQL レスポンスにマッピングして返すべきかを定義することができます。

Q:自分の JavaScript コードの動作を確認するには?

コードの動作は、コンソールから直接確認することができます。コンソールからは、モックデータを使用して、データソースとやりとりすることなく、リゾルバの評価をテストすることができます。AppSync は、モックデータを使用して JavaScript コードを評価するために使用できるリモート API も提供しています。これらの API は AWS CLI や AWS SDK から利用することができます。これにより、お気に入りのテストフレームワーク内でリゾルバを評価し、ユニットテストを実行することができます。また、コンソールのクエリエディタを使用して、GraphQL クエリ、ミューテーション、サブスクリプションをテストし、各リクエストのログデータをリアルタイムでライブストリーミングすることができます。

Q:データソースに直接アクセスするために JavaScript リゾルバを使用すべきですか? それとも Lambda データソースを使用してビジネスロジックを処理すべきでしょうか?

JavaScript リゾルバを使えば、独自のビジネスロジックを実装した独自のコードを書いて、データソースにアクセスすることができます。これにより、Amazon DynamoDB、Amazon Aurora Serverless、Amazon OpenSearch Service、HTTP API、 およびその他の AWS サービスなどのデータソースと、追加のコンピューティングサービスやインフラストラクチャをデプロイすることなく、簡単に直接やりとりすることができます。また、AWS AppSync は、Lambda データソースを設定することで、AWS Lambda 関数と簡単にやりとりすることができます。Lambda データソースを使用すると、AWS Lambda のフルセット機能を使用して複雑なビジネスロジックを実行し、GraphQL リクエストを解決することができます。ほとんどの場合、ターゲットデータソースに直接接続された AppSync 関数で、必要なすべての機能が提供されます。JavaScript リゾルバがサポートしない複雑なビジネスロジックを実装する必要がある状況では、Lambda データソースをプロキシとして使用して、ターゲットデータソースとやりとりすることができます。

Q:AWS AppSync は API フェデレーションをサポートしていますか?

はい。API フェデレーションは AWS AppSync の Merged API 機能によってサポートされています。Merged API は、さまざまなサービスまたはデータソースを表す複数のソース GraphQL API から構成された単一の GraphQL API です。Merged API を使用すると、組織は単一の API スキーマをデータコンシューマーに提供できると同時に、関連するデータドメインに最も精通しているチームがサブスキーマを独立して進化させることができます。1 つの AppSync API の開発を共有するチームの場合、Merged API 機能を使用すると、独立して運用しながらシームレスにコラボレーションできます。 

Q:AWS AppSync は既存の AWS リソースと併用できますか? 

はい。AWS AppSync では GraphQL スキーマを使用して、Amazon DynamoDB、AWS Lambda、Amazon OpenSearch Service の既存のテーブル、関数、ドメインを使用できます。AWS AppSync なら、既存の AWS リソースを使ってデータソースを作成し、マッピングテンプレートを使用して相互作用を設定できます。

Q.AWS AppSync ではデータがどのように保護されますか? 

保管中のアプリケーションデータはお客様の AWS アカウントに保存され、AWS AppSync サービス内には保存されません。AWS AppSync では、AWS Identity and Access Management (IAM) や Amazon Cognito ユーザープールなどを使用したセキュリティコントロールによって、アプリケーションからこのデータへのアクセスを保護できます。さらに、認証されたリクエスト用にユーザーコンテキストを引き渡すことができるため、AWS AppSync のマッピングテンプレートを使用して、リソースに対するきめ細かなアクセスコントロールロジックを実行できます。

Q:AWS AppSync ではデータをリアルタイムで作成できますか?

はい。AWS AppSync では、どのようなデータソースについてもサブスクリプションがサポートされているため、突然の変化が発生したときは、over WebSockets を使用して、イベントストリームをサブスクライブしているクライアントにその結果をすぐに引き継ぐことができます。

Q:AWS AppSync で複雑なクエリを実行するにはどうすればよいですか?

AWS AppSync で利用できるデータソースでは、GraphQL を使用することで、Amazon DynamoDB、Amazon OpenSearch Service、AWS Lambda によって提供される機能を最大限活用できます。インデックス作成や条件チェックといった機能によって、DynamoDB から包括的な結果が返されます。あいまい検索、位置情報検索などの Amazon OpenSearch Service のユースケースもアプリケーションで利用できます。さらに、Lambda を使用した連続的なリクエストやバッチリクエストによって、Amazon Aurora などの他のソースからもデータを返すことができます。

Q:AWS AppSync はどの AWS リージョンで利用できますか?

AWS AppSync は世界の様々なリージョンでご利用いただけます。詳細については、AWS リージョン表をご覧ください。

Q:既存の Amazon DynamoDB テーブルをインポートできますか? 

AWS AppSync では、テーブルのキースキーマとインデックスの推論を含む既存の DynamoDB テーブルから GraphQL スキーマを自動で生成できます。インポートが完了すると、GraphQL クエリ、ミューテーション、サブスクリプションを使用できます。コーディングは不要です。また AppSync は、GraphQL タイプから DynamoDB 属性に、非キー属性を「オートマップ」します。

Q:AWS AppSync でデータベースを作成できますか? 

お客様は手動で、またはコンソールを使用して GraphQL スキーマを作成できます。AWS AppSync では、自動的に Amazon DynamoDB テーブルをプロビジョニングし、適切なインデックスを付与します。さらに、データソースが「GraphQL リゾルバ」に接続されるため、お客様はアプリケーションコードとデータ構造に集中して作業できます。

Q:アプリケーションを AppSync API に接続するためにどのクライアントを使用できますか?

HTTP または GraphQL クライアントを使用して、AppSync の GraphQL API に接続できます。AppSync バックエンドに接続するために最適化された Amplify クライアントを使用することを強くお勧めします。アプリケーションのユースケースに応じて、いくつかのオプションがあります。

  • DynamoDB データソースの場合、Amplify クライアントの DataStore カテゴリを使用します。最高の開発者体験および組み込みの競合検出と解決を提供します。
  • オフライン要件がないシナリオの非 DynamoDB データソースの場合、Amplify クライアントの API (GraphQL) カテゴリを使用します。
  • オフライン要件があるシナリオの非 DynamoDB データソースの場合は、AppSync SDK を使用します。

Q:自分の AppSync GraphQL エンドポイントにアクセスするために独自のドメイン名を使用できますか?

AWS AppSync では、お客様が AWS AppSync API でカスタムドメイン名を使用して、GraphQl エンドポイントとリアルタイムエンドポイントにアクセスすることができます。AppSync でカスタムドメイン名を作成するには、所有するドメイン名を提供し、ドメインをカバーする有効な AWS Certificate Manager (ACM) 証明書を示すだけです。カスタムドメイン名を作成すると、アカウントで利用可能な AppSync API にドメイン名を関連付けることができます。AppSync が提供するドメイン名にマッピングするように DNS レコードを更新した後、新しい GraphQL エンドポイントとリアルタイムエンドポイントを使用するようにアプリケーションを設定することができます。アプリケーションを更新しなくても、カスタムドメインの API アソシエーションをいつでも変更できます。AppSync がカスタムドメインエンドポイントでリクエストを受信すると、関連する API にルーティングして処理します。

Q.AppSync でプライベート API を作成することはできますか?

はい。AWS AppSync はプライベート API をサポートしています。プライベート API を使用すると、Amazon 仮想プライベートクラウド (VPC) からのみアクセスできる GraphQL API を作成できます。

Q.リゾルバーとは

AWS AppSync では、データソースに対してオペレーションを実行することで GraphQL リクエストに応答できます。クエリ、ミューテーション、またはサブスクリプションを実行する GraphQL フィールドごとに、リゾルバーをアタッチする必要があります。各リゾルバーには、データソースと通信する 1 つ以上の機能が設定されています。リゾルバーを JavaScript で直接記述することも、TypeScript コードをバンドルすることもできます。

AWS AppSync のお客様の詳細

カスタマーページを見る
始める準備はできましたか?
AWS AppSync コンソールを開く
ご不明な点がおありですか?
お問い合わせ
  • 選択