データソース - AWS AppSync

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

データソース

前のセクションでは、スキーマがデータの形状を定義することを学びました。ただし、そのデータがどこから来たのかについては説明していません。実際のプロジェクトでは、スキーマはサーバーへのすべてのリクエストを処理するゲートウェイのようなものです。リクエストが行われると、スキーマはクライアントと接続する単一のエンドポイントとして機能します。スキーマはデータソースのデータにアクセスして処理し、クライアントに中継します。以下のインフォグラフィックを参照してください。

AWS AppSync および GraphQL はフロントエンド用バックエンド (BFF) ソリューションを見事に実装しています。これらは連携して、バックエンドを抽象化することで大規模な複雑さを軽減します。サービスで異なるデータソースやマイクロサービスを使用している場合は、各ソース (サブグラフ) のデータの形状を単一のスキーマ (スーパーグラフ) で定義することで、複雑さをある程度抽象化できます。つまり、GraphQL API は 1 つのデータソースの使用に限定されないということです。GraphQL API には任意の数のデータソースを関連付けて、それらがサービスとどのように相互作用するかをコードで指定できます。

インフォグラフィックでわかるように、GraphQL スキーマには、クライアントがデータを要求するために必要なすべての情報が含まれています。つまり、REST のように複数のリクエストを処理するのではなく、1 つのリクエストですべてを処理できるということです。これらのリクエストは、サービスの唯一のエンドポイントであるスキーマを通過します。リクエストが処理されると、リゾルバー (次のセクションで説明) がコードを実行して、関連するデータソースからのデータを処理します。レスポンスが返されると、データソースに関連付けられているサブグラフにスキーマ内のデータが入力されます。

AWS AppSync はさまざまなデータソースタイプをサポートします。以下の表では、各タイプについて説明し、それぞれの利点を列挙し、さらに詳しい情報を得るために役立つリンクを示します。

データソース 説明 利点 補足情報
「Amazon DynamoDB」 Amazon DynamoDB は、フルマネージド NoSQL データベースサービスであり、シームレスなスケーラビリティを備えた高速で予測可能なパフォーマンスを提供します。DynamoDB を使用すると、ディストリビューションデータベースの運用とスケーリングに伴う管理作業をまかせることができるため、ハードウェアのプロビジョニング、設定と構成、レプリケーション、ソフトウェアパッチ適用、クラスタースケーリングなどを自分で行う必要はなくなります。また、DynamoDB も保管時の暗号化を提供し、機密データの保護における負担と複雑な作業を解消します。

  • 大規模環境でのパフォーマンス: DynamoDB は、どのような規模でも一貫したパフォーマンスを実現するように設計されています。これはパーティションを使用することで実現できます。DynamoDB はテーブルを複数の割り当てに自動的に分割し、複数のノードにまたがる複数の SSD に格納されます。これにより、一般的にネットワークスループットが向上し、レイテンシーが減少します。

  • 大規模なキャパシティ: DynamoDB はトラフィックを監視し、ネットワークが長時間にわたって過負荷状態になった場合にスループットを自動的にスケーリングできます。

  • 可用性と耐障害性: DynamoDB は物理的に隔離された複数のリージョンでサポートされており、各リージョンには物理的に分離された複数のアベイラビリティーゾーンがあります。DynamoDB は、サービスが中断されると自動的にバックアップゾーンに切り替わります。データを保証するために、データを手動でバックアップおよび複製することもできます。

  • ロギングとモニタリング: DynamoDB には、テーブル用の分析ツールがいくつか用意されています。テーブルのパフォーマンスをモニタリングし、サービスの大幅な変更を通知するアラームを作成できます。

  • セキュリティ: DynamoDB は厳格なプロトコルに従い、データが組織のセキュリティ要件に準拠していることを確認します。

  • AWSAppSync との統合: DynamoDB は当社のサービスとシームレスに統合されています。新しい DynamoDB テーブルを作成し、そこからスキーマを自動的に生成して、開発プロセスを効率化できます。また、リゾルバーのアカウント内の既存の DynamoDB テーブルからデータを簡単にリクエストできる一連のオペレーションも提供しています。

AWS Lambda 「AWS Lambda は、サーバーをプロビジョニングまたは管理せずにコードを実行できるようにするコンピューティングサービスです。

Lambda は可用性の高いコンピューティングインフラストラクチャでコードを実行し、コンピューティングリソースに関するすべての管理を行います。これには、サーバーおよびオペレーティングシステムのメンテナンス、容量のプロビジョニングおよび自動スケーリング、さらにログ記録などが含まれます。Lambda で必要なことは、サポートするいずれかの言語ランタイムにコードを与えることだけです。」

  • 従量課金制モデル :Lambda では、リソースを使用した場合にのみ課金されます。また、使用するリソースの量をアプリケーションのニーズに合わせて調整することもできます。

  • 自動スケーリング: アプリケーションが特定のプロセスのために追加の計算能力を必要とする場合があります。Lambda では、アプリケーションのニーズに合わせてコンピューティングリソースを自動的にスケーリングできます。

  • デプロイ時間の短縮: デプロイパッケージを使用すると開発プロセスを効率化できます。パッケージを使用して、関数コードを Lambda サービスにアップロードします。その後、そのランタイム環境を使用して関数をテストし、実行できます。

  • 汎用性: Lambda はさまざまなユースケースで使用できます。Lambda をサードパーティのサービスや AWS サービスと同様にシームレスに統合できます。例としては、CI/CD パイプラインや大量メールサービスなどがあります。

  • AWS AppSync との統合: リゾルバーで Lambda 関数を簡単に呼び出してリクエストを処理できます。当社のサービスは、Lambda 呼び出しを実行するための効率的なリクエスト操作を提供します。シングルコールとバッチコールの両方が可能です。

OpenSearch 「Amazon OpenSearch Service は、AWS クラウドにおける OpenSearch クラスターのデプロイ、オペレーション、スケーリングを容易にするマネージドサービスです。Amazon OpenSearch Service は、OpenSearch および従来の Elasticsearch OSS (ソフトウェアのファイナルオープンソースバージョンである 7.10 まで) をサポートしています。クラスターを作成するときに、どの検索エンジンを使用するかのオプションがあります。

OpenSearch はログ分析、リアルタイムのアプリケーションモニタリング、クリックストリーム分析などのユースケース向けの、完全なオープンソースの検索および分析エンジンです。詳細については、「OpenSearch ドキュメント」を参照してください。

Amazon OpenSearch Service は、OpenSearch クラスターのすべてのリソースをプロビジョニングして、OpenSearch クラスターを起動します。また、障害が発生した OpenSearch Service ノードを自動的に検出して置き換え、セルフマネージドインフラストラクチャに関連するオーバーヘッドを減らします。また、単一の API コールを使用するか、コンソールで数回クリックするだけで、クラスターを簡単にスケーリングできます。

  • スケーリング: OpenSearch サーバーレスを使用すると、サービス要件に合わせてサービスを簡単にスケーリングできます。

  • データ取り込み: OpenSearch Ingestion を使用してデータをインポート、処理、分析できます。データ取り込みには多数のアプリケーションがあり、こちらをご覧ください。

  • セキュリティ:OpenSearch は IAM、CloudTrail、VPC、認証などを含む AWS セキュリティ設定を管理できます。

  • 可用性: OpenSearch はサービス内のさまざまなリージョンやアベイラビリティーゾーンもサポートしています。

  • AWS AppSync との統合: AWS AppSync では、GraphQL API を使用して、アカウント内の既存の OpenSearch サービスドメインからデータを保存および取得できます。

HTTP エンドポイント HTTP エンドポイントをデータソースとして使用できます。 AWSAppSync は、パラメータやペイロードなどの関連情報を含むリクエストをエンドポイントに送信できます。HTTP レスポンスはリゾルバーに公開され、リゾルバーは操作終了後に最終レスポンスを返します。
  • Lambda のようなサービスとそれほど統合されていない単純なアプリケーションに役立ちます。

Amazon EventBridge EventBridge は、イベントを使用してアプリケーションコンポーネント同士を接続するサーバーレスサービスです。これにより、スケーラブルなイベント駆動型アプリケーションを簡単に構築できます。これを使用して、自社開発アプリケーション、AWS サービス、サードパーティソフトウェアなどのソースから組織全体のコンシューマアプリケーションにイベントをルーティングできます。EventBridge では、イベントの取り込み、フィルタリング、変換、配信をシンプルかつ一貫性のある方法で行うことができるため、新しいアプリケーションをすばやく構築できます。

  • イベント駆動型アーキテクチャ: イベント駆動型アーキテクチャを活用できます。

  • スケジュール: EventBridge Scheduler を使用すると、cron 式を使用してタスクやルールを自動化したり、イベントパターンの代わりに時間間隔を設定したりできます。

  • パイプ: EventBridge パイプを使用すると、イベントバスをパイプに置き換えることができます。パイプには、イベントをターゲットに送信する前に、追加のフィルタリングイベントパターンとデータ変換によるエンリッチメントが含まれます。

  • AWSAppSync との統合: AWSAppSync では、リゾルバーを使用してイベントバスにイベントを送信できます。

リレーショナルデータベース 「Amazon Relational Database Service (Amazon RDS) は、AWS クラウドでリレーショナルデータベースを簡単にセットアップ、および運用し、スケーリングすることのできるウェブサービスです。業界スタンダードのリレーショナルデータベース向けに、費用対効果に優れたエクステンションを備え、一般的なデータベース管理タスクを管理します。」

  • 管理が簡単に: RDS は定期的にリソースのメンテナンスを行います。通常、メンテナンスには DB インスタンスの基盤となるオペレーティングシステム (OS) やデータベースエンジンのバージョンのアップデートが伴います。通常の状況では、更新を実行するタイミングを決めることができます (セキュリティパッチは例外です)。

  • 推奨事項: RDS のレコメンデーション機能では、インスタンス内の潜在的な問題を解決するための提案が自動的に表示されます。

  • 可用性: RDS は世界中のさまざまな地域で使用できます。データベースのニーズをさまざまなノードに簡単に分散して、顧客により良いサービスを提供できます。

  • カスタマイズ: RDS は大企業の要件を満たすように調整されています。RDS には、コンピューティング、クイックデプロイ、スケーラビリティ、ストレージに関するさまざまなオプションが用意されています。

  • セキュリティ: RDS は複数のツールやサービスと統合されており、ユーザー、データベース、ネットワークのレベルでデータベースのセキュリティを維持しています。

  • AWSAppSync との統合: 成熟したバックエンドソリューションをお探しの場合は、AWS AppSyncを使用すると、インスタンスをデータソースとして使用してデータを送信、処理、保存、および返すことができます。

none データソース データソースサービスを使用する予定がない場合は、none に設定できます。none データソースは、設定後も明示的にデータソースとして分類されますが、ストレージメディアではありません。とはいえ、データ操作やパススルーには依然として役立つ場合があります。
  • データ変換などに役立つかもしれません。

  • 何かをローカルで解決する場合に便利です。

ヒント

データソースと AWS AppSync の相互作用の詳細については、「データソースのアタッチ」を参照してください。