AWS認定資格 WEB問題集&徹底解説

ソリューションアーキテクト – アソシエイト

正解 B問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある金融サービス企業は、モバイルアプリケーション向けのバックエンドAPIを構築しています。このAPIは、複数のAmazon Aurora ServerlessデータベースおよびサードパーティのREST APIからデータを取得し、クライアントに統合されたレスポンスを返す必要があります。開発チームは、各データソースへの接続設定や統合ロジックをコードではなく宣言的に管理し、運用負荷を最小限に抑えたいと考えています。これらの要件を満たす最も適切なソリューションはどれですか?
  • Amazon API GatewayでAPIエンドポイントを定義し、すべてのデータ取得・統合ロジックをAWS Lambda関数内に実装する
  • AWS AppSyncでGraphQLスキーマを定義し、各データソースに対してリゾルバーを設定することで統合レスポンスを返す
  • AWS Step Functionsで各データソースへのアクセスをステートマシンとして定義し、Amazon API Gatewayから同期的に呼び出す
  • Amazon S3にデータを集約してAWS Glueでカタログを構築し、Amazon Athenaでクエリを実行する
解説 頻出度★★★★★
この問題は、「複数データソースの統合 × コードではなく宣言的な管理 × 運用負荷の最小化」の要件で、AWS AppSyncのGraphQLリゾルバーで各データソースを宣言的に束ねるという定石を選べるかがポイント

A. Amazon API GatewayでAPIエンドポイントを定義し、すべてのデータ取得・統合ロジックをAWS Lambda関数内に実装する

API Gateway+Lambdaでも複数データソースの統合自体は実現できるが、接続処理・エラーハンドリング・データ統合ロジックをすべてコードとして実装する必要があり、「宣言的な管理」という要件を満たさない。
データソースが増えるたびにLambdaの実装・保守が膨らみ、運用負荷も増加する。

正解

B. AWS AppSyncでGraphQLスキーマを定義し、各データソースに対してリゾルバーを設定することで統合レスポンスを返す

AWS AppSyncは、GraphQLスキーマとリゾルバーによってデータソースごとの接続・取得ロジックを宣言的に定義できるマネージドサービス。
Aurora(RDS Data API経由)にはRDSリゾルバー、サードパーティREST APIにはHTTPデータソースを割り当てるだけでよく、コードを書かずに複数データソースの統合レスポンスを構築できる。
「宣言的な管理」「運用負荷の最小化」という要件に最も直接的に合致する。

C. AWS Step Functionsで各データソースへのアクセスをステートマシンとして定義し、Amazon API Gatewayから同期的に呼び出す

AWS Step FunctionsはAPI Gateway(Express Workflow)から同期呼び出しできるが、データ統合を目的としたAPIバックエンドとして使う設計は一般的ではなく、複数データソースを宣言的に統合する仕組みも持たない。
ステートマシンの定義自体はJSON/ASLで書けるが、それは処理フローの制御であって、データソース統合の宣言的管理には該当しない。

D. Amazon S3にデータを集約してAWS Glueでカタログを構築し、Amazon Athenaでクエリを実行する

Amazon S3・AWS Glue・Amazon Athenaはバッチ処理や分析用途向けのサービス群であり、モバイルアプリからのリアルタイムなAPIリクエストや、サードパーティREST APIとの動的な統合には対応していない。
クライアントへの即時レスポンスが求められる本ユースケースには不適切。

構成図

モバイルアプリ
   │
   ▼
AWS AppSync(GraphQL API)
   ├─ リゾルバー ─▶ Amazon Aurora Serverless
   └─ リゾルバー ─▶ サードパーティ REST API(HTTPデータソース)
これだけ覚える(記憶フック)
複数データソースを宣言的に統合するなら AppSync。接続処理をコードで書き始めたら、それ自体が要件から外れている合図。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
複数のAurora ServerlessデータベースとサードパーティREST APIからデータを取得 AppSyncはRDSリゾルバー(Aurora)とHTTPデータソース(REST API)を併用でき、異種データソースを1つのAPIに統合できる
→選択肢(B)が最有力
クライアントに統合されたレスポンスを返す GraphQLは1回のリクエストで複数リゾルバーの結果を集約して返せる
→選択肢(B)を後押し
接続設定や統合ロジックをコードではなく宣言的に管理したい 選択肢AはロジックをすべてLambdaのコードとして実装する必要があり、宣言的管理の要件に反する
→選択肢(A)を消す
運用負荷を最小限に抑えたい Step Functions・S3/Glue/Athenaはいずれも本来の用途がAPIバックエンドの宣言的統合ではないため運用上のミスマッチが生じる
→選択肢(C・D)を消す
ひっかけポイント
  • AppSyncがリレーショナルDBにネイティブ接続できるのはRDS Data API経由のAurora Serverlessだけで、Data API非対応の標準RDSインスタンスならLambdaリゾルバー経由が必要になる。問題文が「Aurora Serverless」と明示している点が、選択肢Bを成立させる前提条件
  • 選択肢Cの「API Gatewayから同期呼び出し」という記述はもっともらしいが、複数データソースを宣言的に束ねる仕組みそのものを持たない点を見落としやすい
  • 選択肢Dは「データを集約する」という言葉に引っ張られやすいが、S3・Glue・Athenaはバッチ/分析用途であり、モバイルアプリ向けのリアルタイムAPIバックエンドには使えない
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「データソースがDynamoDBのみで、REST APIとの統合は不要」 AppSync+DynamoDBリゾルバーのみのシンプルな構成が正解として、より明確に浮上する。
「接続ロジックを自由にコードで実装したい(宣言的管理は不要)」 API Gateway+Lambdaが正解軸に変わる。
「複数データソースへの逐次処理・リトライ制御が主目的」 AWS Step Functionsによるオーケストレーションが正解軸に浮上する。
「リアルタイム性は不要で大量データの分析・レポート作成が目的」 S3+Glue+Athenaの構成が適切になる。
関連サービスの解説 Amazon API Gateway
Amazon EventBridge
Amazon RDS
Amazon Simple Storage Service (Amazon S3)
AWS AppSync
AWS Glue
AWS Lambda
AWS Organizations
AWS Step Functions
リファレンス この問題を解くために必要な知識を扱う公式ドキュメントです。
知識項目 公式ドキュメント
AppSync が接続できるデータソースの種類(リレーショナル DB は Aurora Serverless / Data API 経由) AWS AppSync でのデータソースのアタッチ
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 45%
No.18 解説
ある金融サービス企業は、モバイルアプリケーション向けのバックエンドAPIを構築しています。このAPIは、複数のAmazon Aurora ServerlessデータベースおよびサードパーティのREST APIからデータを取得し、クライアントに統合されたレスポンスを返す必要があります。開発チームは、各データソースへの接続設定や統合ロジックをコードではなく宣言的に管理し、運用負荷を最小限に抑えたいと考えています。これらの要件を満たす最も適切なソリューションはどれですか?
  • Amazon API GatewayでAPIエンドポイントを定義し、すべてのデータ取得・統合ロジックをAWS Lambda関数内に実装する
  • AWS AppSyncでGraphQLスキーマを定義し、各データソースに対してリゾルバーを設定することで統合レスポンスを返す
  • AWS Step Functionsで各データソースへのアクセスをステートマシンとして定義し、Amazon API Gatewayから同期的に呼び出す
  • Amazon S3にデータを集約してAWS Glueでカタログを構築し、Amazon Athenaでクエリを実行する

(会員限定)当問題の評価をお願いします。改善に活用します。