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

ソリューションアーキテクト-プロフェッショナル

正解 B問題
要復習(もう一度解きたい問題) 1 2 3 4
合格に向けて、もっと深く学習する
豊富な問題と詳細なAWSサービス解説を、24時間無料でお試しいただけます
プレミアム会員機能を無料で試す ❯
問題文と選択肢
あなたの会社は、家族がペットの健康的なライフスタイルを促進するのを支援するために生体データを収集する、次世代のペット用首輪を開発しています。各首輪は、JSON 形式の 30KB の生体データを 2 秒ごとに収集プラットフォームへ送信します。収集プラットフォームはデータを処理・分析し、Web ポータルを介してペットの飼い主や獣医に健康傾向の情報を提供します。経営陣から、次の要件を確実に満たすように収集プラットフォームを設計するよう指示されました。
・受信した生体データをリアルタイムに分析できること
・生体データの処理が高い耐久性を持ち、弾力的(スケーラブル)かつ並列に実行できること
・分析処理の結果は、後日のデータマイニングに備えて永続化すること
収集プラットフォームの初期要件を満たすアーキテクチャはどれですか。
  • Amazon S3 を利用して受信センサーデータを収集します。毎日スケジュール実行されるバッチのデータパイプラインで Amazon S3 上のデータを分析し、結果を Amazon Redshift クラスターに保存します。
  • Amazon Kinesis を利用して受信センサーデータを収集します。Kinesis クライアントライブラリ (KCL) を用いたアプリケーションでデータを分析し、Amazon EMR を使用して結果を Amazon Redshift クラスターに保存します。
  • Amazon SQS を利用して受信センサーデータを収集します。Amazon Kinesis を使用して Amazon SQS からのデータを分析し、結果を Microsoft SQL Server の Amazon RDS インスタンスに保存します。
  • Amazon EMR を利用して受信センサーデータを収集します。Amazon EMR からのデータを Amazon Kinesis で分析し、結果を Amazon DynamoDB に保存します。
解説 頻出度★★★★
この問題は、「2 秒ごとの連続したセンサーデータ × リアルタイム分析 × 並列・弾力的な処理 × 結果の永続化」の要件で、ストリーミング取り込みは Amazon Kinesis、分析結果の格納先は Amazon Redshift という定石を選べるかがポイント

A. Amazon S3 を利用して受信センサーデータを収集します。毎日スケジュール実行されるバッチのデータパイプラインで Amazon S3 上のデータを分析し、結果を Amazon Redshift クラスターに保存します。

Amazon S3 は耐久性の高い保存先だが、「毎日スケジュール実行されるバッチ」ではリアルタイム分析の要件を満たせない。2 秒ごとに届くデータを 1 日 1 回まとめて分析するのでは、健康傾向の即時把握という目的に応えられない。
また、多数のデバイスが 2 秒ごとに小さなオブジェクトを直接 PUT する設計は、ストリーム処理と比べて非効率でもある。リアルタイム性という第一要件で落ちる。

正解

B. Amazon Kinesis を利用して受信センサーデータを収集します。Kinesis クライアントライブラリ (KCL) を用いたアプリケーションでデータを分析し、Amazon EMR を使用して結果を Amazon Redshift クラスターに保存します。

Amazon Kinesis Data Streams は大量のデバイスから連続的に届くデータをリアルタイムに取り込むためのサービスで、データはシャードに分散され複数のアベイラビリティーゾーンに同期的に複製(高耐久)される。シャードを増減すれば弾力的にスケールし、シャード単位で並列に処理できるため、「高耐久・弾力的・並列」という 2 つ目の要件をそのまま満たす。
Kinesis クライアントライブラリ (KCL) を使ったアプリケーションがストリームからレコードを取得してリアルタイムに分析し、1 つ目の要件を満たす。
分析結果を Amazon EMR 経由で Amazon Redshift に格納すれば、後日のデータマイニング(大規模な分析クエリ)に備えた永続化という 3 つ目の要件も満たせる。3 要件すべてに答える唯一の選択肢。

C. Amazon SQS を利用して受信センサーデータを収集します。Amazon Kinesis を使用して Amazon SQS からのデータを分析し、結果を Microsoft SQL Server の Amazon RDS インスタンスに保存します。

Amazon SQS はジョブの分散処理に使うメッセージキューであり、ストリームデータの取り込み基盤としては不適。メッセージは消費すると削除され、複数のコンシューマーが同じデータを繰り返し読む(リプレイする)ことができないため、ストリーム分析の基盤にならない。
さらに「Kinesis で SQS からのデータを分析する」という構成自体が不自然(Kinesis は SQS のコンシューマーではない)。
結果の保存先である Microsoft SQL Server の RDS も、大規模な分析・データマイニング用途では Redshift に劣る。

D. Amazon EMR を利用して受信センサーデータを収集します。Amazon EMR からのデータを Amazon Kinesis で分析し、結果を Amazon DynamoDB に保存します。

データの流れが逆になっているのが最大の誤り。Amazon EMR は Hadoop / Spark によるバッチ分析基盤であって、デバイスからのデータを直接受け止める取り込み口ではない
取り込みに Kinesis、分析に EMR というのが本来の並びであり、「EMR で収集して Kinesis で分析する」は成立しない。
また DynamoDB は低レイテンシーのキーバリューアクセスに優れるが、データマイニングのような大規模な集計・探索クエリの基盤としては Redshift の方が適切

構成図

ペット用首輪(30KB JSON / 2 秒ごと)
   ▼
Amazon Kinesis Data Streams(シャードで並列・弾力的に取り込み)
   ▼
KCL アプリケーション(リアルタイム分析)
   ▼
Amazon EMR ──分析結果を永続化──▶ Amazon Redshift(データマイニング)
これだけ覚える(記憶フック)
「デバイスから絶え間なく流れてくるデータをリアルタイムに」ときたら Amazon Kinesis。S3 のバッチでも SQS でもない。
正解への思考ルート 問題文から要件を抽出し、選択肢の適否を判断するのがポイントです。
要件 判断ポイント
30KB の JSON を 2 秒ごとに大量のデバイスが送信し続ける 連続的に流れ込むストリームデータの取り込みは Amazon Kinesis の役割。キュー(SQS)でも S3 直置きでもない
→選択肢(A・C)を消す
受信データのリアルタイム分析が必要 「毎日スケジュール実行のバッチ」ではリアルタイム要件を満たせない
→選択肢(A)を消す
処理が高耐久・弾力的・並列であること Kinesis は複数 AZ への複製(耐久性)とシャードによる並列処理・スケールを備える
→選択肢(B)が正解
分析結果を永続化し、後からデータマイニングする 大規模な分析クエリの受け皿は Amazon Redshift。SQL Server の RDS や DynamoDB は分析基盤として不適
→選択肢(C)を消す
各サービスの「取り込み → 分析 → 保存」の並び順が妥当か EMR は分析側であって取り込み口ではない。Kinesis と EMR の順序が逆の構成は成立しない
→選択肢(D)を消す
ひっかけポイント
  • 選択肢 D はデータの流れが逆(EMR で収集 → Kinesis で分析)。登場するサービス名が正解と同じなので、単語だけ拾うと引っかかる。順序まで読むこと
  • 選択肢 C の「SQS で収集」は一見もっともらしいが、SQS はキューであってストリームではない。読んだメッセージは消え、複数アプリでの並列読み出し・リプレイができない
  • 選択肢 A は S3・Redshift という正しそうなサービスを並べつつ、「毎日スケジュール実行」の 1 語でリアルタイム要件を外している
  • 保存先が DynamoDB か Redshift かで迷ったら目的を見る。「データマイニング/大規模集計」なら Redshift、「低レイテンシーの単一キー参照」なら DynamoDB
出題バリエーション 同じ知識が本番では条件を変えて出題されます。
問題文がこう変わったら 正解はこう変わる
「取り込んだストリームをコード開発なしで S3 や Redshift へ配信したい」 Amazon Data Firehose(旧 Kinesis Data Firehose)が正解軸に。KCL アプリの自作は不要。
「ストリームに対して SQL で継続的な集計を行いたい」 Amazon Managed Service for Apache Flink(旧 Kinesis Data Analytics)が正解に。
「デバイスが数百万台規模で、双方向通信やデバイス管理も必要」 AWS IoT Core が入口になり、ルールエンジンから Kinesis や S3 へ流す構成が正解軸に。
「分析結果をダッシュボードで可視化して飼い主に見せたい」 Amazon QuickSight(データソースは Redshift / S3)が加わる。
「首輪のデータを異常検知(急な心拍上昇など)してすぐ通知したい」 Kinesis → AWS Lambda によるリアルタイム処理+Amazon SNS 通知が正解軸に。
関連サービスの解説 Amazon DynamoDB
Amazon EMR
Amazon Kinesis Video Streams
Amazon RDS
Amazon Redshift
Amazon Simple Queue Service (Amazon SQS)
Amazon Simple Storage Service (Amazon S3)
+ 質問 / コメント
解答・解説に疑問がある場合や、よりよい解説がある場合など、お気軽にコメントください。ただし、短文コメントは表示されません。また、中傷などコメントの内容によっては、会員機能を停止させて頂きます。教え学び合える場になれば嬉しいです。(コメント投稿にはログインが必要です)
正答率 81%
No.16 解説
あなたの会社は、家族がペットの健康的なライフスタイルを促進するのを支援するために生体データを収集する、次世代のペット用首輪を開発しています。各首輪は、JSON 形式の 30KB の生体データを 2 秒ごとに収集プラットフォームへ送信します。収集プラットフォームはデータを処理・分析し、Web ポータルを介してペットの飼い主や獣医に健康傾向の情報を提供します。経営陣から、次の要件を確実に満たすように収集プラットフォームを設計するよう指示されました。
・受信した生体データをリアルタイムに分析できること
・生体データの処理が高い耐久性を持ち、弾力的(スケーラブル)かつ並列に実行できること
・分析処理の結果は、後日のデータマイニングに備えて永続化すること
収集プラットフォームの初期要件を満たすアーキテクチャはどれですか。
  • Amazon S3 を利用して受信センサーデータを収集します。毎日スケジュール実行されるバッチのデータパイプラインで Amazon S3 上のデータを分析し、結果を Amazon Redshift クラスターに保存します。
  • Amazon Kinesis を利用して受信センサーデータを収集します。Kinesis クライアントライブラリ (KCL) を用いたアプリケーションでデータを分析し、Amazon EMR を使用して結果を Amazon Redshift クラスターに保存します。
  • Amazon SQS を利用して受信センサーデータを収集します。Amazon Kinesis を使用して Amazon SQS からのデータを分析し、結果を Microsoft SQL Server の Amazon RDS インスタンスに保存します。
  • Amazon EMR を利用して受信センサーデータを収集します。Amazon EMR からのデータを Amazon Kinesis で分析し、結果を Amazon DynamoDB に保存します。

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