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

あるスタートアップ企業は、ユーザーから動画ファイルのアップロードを受け付け、EC2インスタンスでトランスコード処理(変換処理)を行うサービスを運営しています。通常時は1時間あたり50件のアップロードですが、イベント開催時には1時間あたり500件に急増します。トランスコード処理は1件あたり3〜10分かかります。急増時にアップロードを損失させず、コストも最適化するにはどのアーキテクチャが最適ですか?

A
ALBの背後にEC2 Auto ScalingグループをおきCPU使用率に基づきスケールし、アップロードファイルをS3に保存する。スケールアウトの遅延を考慮してALBのアイドルタイムアウトを延長する
ALBのスケールアウトラグにより急増時にタイムアウトが発生するリスクがあり、アップロードが損失する可能性があります。
B
ユーザーのアップロードをS3に直接保存し、S3イベント通知でSQSキューにメッセージを送信する。EC2 Auto ScalingグループがSQSキューの深さ(ApproximateNumberOfMessagesVisible)に基づいてスケールアウト・インしてトランスコード処理を行う
✓ 正解
S3への直接アップロードとSQSキューの組み合わせにより、アップロードの受付と処理をデカップリング(疎結合化)できます。SQSはメッセージの永続性を保証するため急増時もアップロードは損失しません。キュー深さ(ApproximateNumberOfMessagesVisible)に基づくAuto Scalingで需要に応じたスケールが可能で、アップロード受付とトランスコード処理を独立してスケールできます。
C
AWS Lambdaをアップロード用S3バケットのトリガーとして設定してトランスコード処理を行い、Lambda予約済み同時実行数を500に設定して急増に対応する
Lambdaの最大実行時間が15分であるため、処理時間が10分を超えるトランスコードに対応できない場合があります。
D
Elastic BeanstalkのWebサーバー層でアップロードを受け付け、同一インスタンス上のバックグラウンドスレッドでトランスコード処理を実行する。インスタンスタイプをコンピューティング最適化型に変更する
Elastic BeanstalkのWebサーバー層でアップロードとトランスコード処理を同一インスタンス上で実行する密結合な設計であり、スケーラビリティに欠けます。急増時にボトルネックが発生しやすく、アップロードを損失するリスクがあります。

解説

ユーザーのアップロードをS3に直接保存し、S3イベント通知でSQSキューにメッセージを送信する。EC2 Auto ScalingグループがSQSキューの深さ(ApproximateNumberOfMessagesVisible)に基づいてスケールアウト・インしてトランスコード処理を行う。 S3へのアップロードとSQSキューを組み合わせることでアップロードの受付と処理をデカップリング(疎結合化)できます。SQSはメッセージの永続性を保証するため急増時もアップロードは損失しません。キュー深さ(ApproximateNumberOfMessagesVisible)に基づくAuto Scalingで需要に応じたスケールが可能で、アップロード受付とトランスコード処理を独立してスケールできます。 選択肢A は ALBのスケールアウトラグにより急増時にタイムアウトが発生するリスクがあり、アップロードが損失する可能性があります。 選択肢C は Lambdaの最大実行時間が15分であるため、処理時間が10分を超えるトランスコードに対応できない場合があります。 選択肢D は アップロード受付とトランスコード処理を同一インスタンス上で実行する密結合な設計であり、スケーラビリティに欠けます。急増時にボトルネックが発生しやすく、アップロードを損失するリスクがあります。

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

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

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