無限ノック › SAA 練習問題一覧 › 問題
SAA弾力性に優れたアーキテクチャの設計

動画配信スタートアップ企業が、ユーザーのアップロード動画をバックグラウンドでトランスコード処理するシステムを構築しています。1件あたりの処理時間は5〜10分で、アップロード件数は日中に予測不可能なスパイクが発生します。「処理の遅延は許容できるが、未処理のまま動画が消失することは絶対に許容できない」という要件があります。最も弾力性に優れたアーキテクチャはどれですか?

A
EC2 Auto Scaling グループを使用し、CPU使用率に基づくターゲット追跡スケーリングポリシーを設定する
(CPU使用率ベースのスケーリング):処理完了後にCPUが低下するため、次のタスクへのスケールアウト反応が遅れます。また、キュー内の未処理メッセージ数を直接反映しないためスケーリングの精度が劣ります。
B
Amazon SQS キューにアップロードイベントを格納し、ApproximateNumberOfMessagesVisible メトリクスに基づいてEC2 Auto Scaling グループをスケールさせる
✓ 正解
SQSはメッセージを最大14日間保持するため、「未処理のまま動画が消失することは許容できない」という要件を確実に満たします。ApproximateNumberOfMessagesVisibleメトリクスに基づくスケーリングは、処理待ちタスク量に比例してワーカーを増減でき、スパイク時でも確実にジョブが処理されます。
C
Amazon Kinesis Data Streams でアップロードイベントを受信し、AWS Lambda 関数でリアルタイムにトランスコード処理を実行する
(Kinesis + Lambda):Lambda関数の最大実行時間は15分のため、5〜10分のトランスコードは処理時間がばらついた際にタイムアウトリスクがあります。また、Kinesis Data Streamsはリアルタイムストリーム処理向けであり、ジョブのバッファリングにはSQSが適切です。
D
Amazon EventBridge のルールでアップロードイベントをキャプチャし、AWS Step Functions のワークフローで直接EC2インスタンスを起動してトランスコードを実行する
(EventBridge + Step Functions):Step Functionsはワークフローのオーケストレーション向けであり、スパイク時のジョブバッファリングには不向きです。イベントごとにEC2インスタンスを直接起動する設計は起動時間のオーバーヘッドが大きく、スケーラビリティに欠けます。

解説

SQSはメッセージを最大14日間保持するため、「未処理のまま動画が消失することは許容できない」という要件を確実に満たします。ApproximateNumberOfMessagesVisibleメトリクスに基づくスケーリングは、処理待ちタスク量に比例してワーカーを増減でき、スパイク時でも確実にジョブが処理されます。 選択肢Aの(CPU使用率ベースのスケーリング):処理完了後にCPUが低下するため、次のタスクへのスケールアウト反応が遅れます。また、キュー内の未処理メッセージ数を直接反映しないためスケーリングの精度が劣ります。 選択肢Cの(Kinesis + Lambda):Lambda関数の最大実行時間は15分のため、5〜10分のトランスコードは処理時間がばらついた際にタイムアウトリスクがあります。また、Kinesis Data Streamsはリアルタイムストリーム処理向けであり、ジョブのバッファリングにはSQSが適切です。 選択肢Dの(EventBridge + Step Functions):Step Functionsはワークフローのオーケストレーション向けであり、スパイク時のジョブバッファリングには不向きです。イベントごとにEC2インスタンスを直接起動する設計は起動時間のオーバーヘッドが大きく、スケーラビリティに欠けます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSAAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SAA の問題一覧に戻る