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

機械学習エンジニア–アソシエイト

正解 A問題
分野3:ML ワークフローのデプロイとオーケストレーション タスクステートメント3.3:自動オーケストレーションツールによる CI/CD パイプラインの構築
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
ある企業は、顧客サポートの効率化のため、Amazon Kendraを利用した関連ドキュメントの検索と、Amazon Lexを利用したチャットボットシステムを導入しています。
このシステムでは、Amazon S3バケットに新しいサポートドキュメントが追加された際にKendraインデックスが迅速に更新されることと、ユーザーの問い合わせ意図が不明瞭な場合にLexが適切に代替応答を行うことが求められています。
これらの要件を同時に満たし、両サービスが最適に連携するソリューションとして最も適切なものはどれですか。
  • Amazon S3イベント通知を使用してAWS Lambda関数をトリガーし、Kendraインデックスを更新する。Lexボットには、組み込みのフォールバックインテントを設定して曖昧な問い合わせを処理する。
  • AWS Glueクローラーを定期的に実行してS3バケット内のドキュメントをスキャンし、Kendraインデックスを更新する。Lexボットには、AWS Step Functionsと連携して複雑な代替応答ロジックを実装する。
  • AWS CloudTrailでS3バケットへのドキュメントアップロードを監視し、そのイベントに基づいてKendraのデータソースを再同期する。Lexボットには、特定のキーワードに一致しない場合にのみ発動するカスタムインテントを定義する。
  • Amazon EventBridgeのスケジュールルールを設定し、毎日特定の時間にKendraインデックスの更新APIを呼び出す。Lexボットには、Amazon Comprehendを利用して質問の感情を分析し、ネガティブな場合に代替応答を返す。
解説 頻出度★★★★★
この問題は、「S3 への追加を迅速にインデックスへ反映 × 意図が不明瞭な発話への代替応答」という 2 つの要件を、イベント駆動(S3 通知→Lambda)Lex の組み込みフォールバックインテントという定石で満たせるかがポイントです。
正解

A. Amazon S3イベント通知を使用してAWS Lambda関数をトリガーし、Kendraインデックスを更新する。Lexボットには、組み込みのフォールバックインテントを設定して曖昧な問い合わせを処理する。

Amazon S3 のイベント通知でオブジェクト作成をトリガーに AWS Lambda を起動し、Kendra のインデックス更新(データソースの同期や BatchPutDocument)を実行すれば、ドキュメント追加からほぼリアルタイムでインデックスに反映できます。定期実行と違い、追加が無いときは何も動かないため無駄もありません。

Amazon Lex の組み込みフォールバックインテント(AMAZON.FallbackIntent)は、ユーザーの発話がどのインテントにもマッチしない、あるいは信頼度スコアが閾値に届かない場合に自動的に発動する標準機能です。「意図が不明瞭なときに代替応答を返す」という要件をそのまま満たし、追加実装も不要なため、2 つの要件を最小構成で満たすこの選択肢が正解です。

B. AWS Glueクローラーを定期的に実行してS3バケット内のドキュメントをスキャンし、Kendraインデックスを更新する。Lexボットには、AWS Step Functionsと連携して複雑な代替応答ロジックを実装する。

AWS Glue クローラーは Glue データカタログにスキーマ(メタデータ)を登録するためのもので、Kendra のインデックスを更新する仕組みではありません。加えて「定期的に実行」する方式である以上、S3 への追加から反映までにスケジュール間隔ぶんの遅延が生じ、「迅速に」という要件を満たせません。

Lex のフォールバックに AWS Step Functions を持ち出すのも過剰です。組み込みのフォールバックインテントで足りる処理に対して、不要なコンポーネントと運用負荷を追加しているだけです。

C. AWS CloudTrailでS3バケットへのドキュメントアップロードを監視し、そのイベントに基づいてKendraのデータソースを再同期する。Lexボットには、特定のキーワードに一致しない場合にのみ発動するカスタムインテントを定義する。

AWS CloudTrail は API アクティビティを記録・監査するためのサービスであり、それ自体が処理を起動するトリガー機構ではありません(イベント駆動にするには結局 EventBridge などを介する必要があり、S3 イベント通知を直接使うより遠回りで、記録までのタイムラグも生じます)。

また Lex の「特定のキーワードに一致しない場合にのみ発動するカスタムインテント」という設計は、Lex の仕組みと噛み合いません。インテントはユーザー発話にマッチさせるもので、「マッチしなかった場合」の受け皿としてはフォールバックインテントが用意されています。

D. Amazon EventBridgeのスケジュールルールを設定し、毎日特定の時間にKendraインデックスの更新APIを呼び出す。Lexボットには、Amazon Comprehendを利用して質問の感情を分析し、ネガティブな場合に代替応答を返す。

Amazon EventBridge のスケジュールルールで毎日決まった時刻に更新する方式では、ドキュメント追加から最大 1 日近い遅延が発生し、「迅速に更新」という要件を満たせません。

Amazon Comprehend による感情分析は、質問がネガティブかどうかを判定するもので、意図が不明瞭かどうかとは無関係です。丁寧な言い回しでも意図不明な質問はあり、怒っていても意図が明確な質問もあるため、フォールバックの判定条件として成立しません。

これだけ覚える(記憶フック)
「迅速に」=スケジュールではなくイベント駆動。Lex で意図不明なら組み込みフォールバックインテント。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
S3 に新しいドキュメントが追加された際に迅速にインデックス更新 「迅速に」はイベント駆動の合図。スケジュール実行や定期クロールでは間隔ぶんの遅延が出る
→選択肢(B・D)を消す
S3 への追加を検知する手段の選択 S3 イベント通知→Lambda が最短経路。CloudTrail は監査ログであってトリガー機構ではない
→選択肢(C)を消す
更新対象は Kendra のインデックス Glue クローラーが更新するのは Glue データカタログであって Kendra インデックスではない
→選択肢(B)を消す
問い合わせ意図が不明瞭な場合に Lex が代替応答を行う どのインテントにもマッチしないときに発動する組み込みフォールバックインテントが標準解。感情分析やカスタムインテントは代用にならない
→選択肢(C・D)を消す
2 つの要件を同時に満たし、両サービスが最適に連携する S3 イベント通知+Lambdaフォールバックインテントの組み合わせが、追加実装も運用負荷も最小
→選択肢(A)が正解
ひっかけポイント
  • 選択肢 B の「Glue クローラー」はデータカタログ用。S3 と機械学習が絡むと反射的に選びたくなるが、Kendra インデックスとは無関係
  • 選択肢 C の CloudTrail は「S3 へのアップロードを監視」という文言が正しそうに見えるが、監視=トリガーではない。イベント駆動なら S3 イベント通知が直球
  • 選択肢 D の Comprehend 感情分析は「ネガティブ=困っている=代替応答」ともっともらしく繋げてくるが、問われているのは意図の不明瞭さであって感情ではない
  • 「フォールバック用のカスタムインテントを作る」は自作したくなる罠。Lex にはAMAZON.FallbackIntent が最初から用意されているので、作り込みは不要
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「S3 のドキュメントを1 日 1 回まとめて反映できればよい(コスト重視)」 EventBridge のスケジュールでデータソース同期を実行する方式が許容解に。
「Kendra が回答できない質問を人間のオペレーターにエスカレーションしたい」 フォールバックインテントから Lambda フック経由で Amazon Connect 等へ引き渡す構成が正解軸に。
「S3 のファイル更新・削除もインデックスに追随させたい」 Kendra S3 データソースの同期(削除の反映を含む)を Lambda から起動する形が正解軸に。
「ドキュメント検索ではなく、社内文書に基づく自然文の回答生成をしたい」 Amazon Bedrock ナレッジベース(RAG)が正解軸に。
関連サービスの解説 Amazon Kendra
Amazon Lex
Amazon Simple Storage Service (Amazon S3)
AWS Lambda
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 78%
No.8 解説
ある企業は、顧客サポートの効率化のため、Amazon Kendraを利用した関連ドキュメントの検索と、Amazon Lexを利用したチャットボットシステムを導入しています。
このシステムでは、Amazon S3バケットに新しいサポートドキュメントが追加された際にKendraインデックスが迅速に更新されることと、ユーザーの問い合わせ意図が不明瞭な場合にLexが適切に代替応答を行うことが求められています。
これらの要件を同時に満たし、両サービスが最適に連携するソリューションとして最も適切なものはどれですか。
  • Amazon S3イベント通知を使用してAWS Lambda関数をトリガーし、Kendraインデックスを更新する。Lexボットには、組み込みのフォールバックインテントを設定して曖昧な問い合わせを処理する。
  • AWS Glueクローラーを定期的に実行してS3バケット内のドキュメントをスキャンし、Kendraインデックスを更新する。Lexボットには、AWS Step Functionsと連携して複雑な代替応答ロジックを実装する。
  • AWS CloudTrailでS3バケットへのドキュメントアップロードを監視し、そのイベントに基づいてKendraのデータソースを再同期する。Lexボットには、特定のキーワードに一致しない場合にのみ発動するカスタムインテントを定義する。
  • Amazon EventBridgeのスケジュールルールを設定し、毎日特定の時間にKendraインデックスの更新APIを呼び出す。Lexボットには、Amazon Comprehendを利用して質問の感情を分析し、ネガティブな場合に代替応答を返す。

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