無限ノック › DVA 練習問題一覧 › 問題
DVAAWSのサービスを使用した開発

ユーザーが最大15GBの動画ファイルをS3にアップロードできるWebアプリケーションを構築しています。ネットワークの不安定さによりアップロードが途中で中断されることがあります。中断されたアップロードを途中から再開可能にし、かつ効率的にアップロードを完了させるために使用すべき機能はどれですか?

A
S3マルチパートアップロードを使用し、各パートを個別にアップロードしてからCompleteMultipartUpload APIで結合する
✓ 正解
正解です。S3マルチパートアップロードは100MB以上のオブジェクトに推奨され、ファイルを最大10,000パートに分割して並列アップロードできます。失敗したパートのみ再送可能なため、ネットワーク中断時の効率的な再開に最適です。InitiateMultipartUpload → UploadPart(並列) → CompleteMultipartUploadの3ステップで実装します。
B
S3 Transfer Accelerationを有効化してCloudFrontエッジロケーション経由でアップロードを高速化する
不正解です。S3 Transfer Accelerationはエッジロケーション経由でアップロード速度を向上させるサービスですが、ネットワーク中断時に途中から再開する機能は持ちません。転送速度の改善のみが目的であり、中断再開の要件に対応できません。
C
S3のPutObject APIを使い、アップロード失敗時はアプリケーション側でリトライロジックを実装する
不正解です。PutObject APIにアプリケーション側のリトライロジックを追加しても、ネットワーク中断時は常にファイルの最初からアップロードが再開されるため、大容量ファイルの効率的な再開には対応できません。
D
S3バケットにCORSを設定し、ブラウザから直接XMLHttpRequestで再試行付きアップロードを実装する
不正解です。CORS(Cross-Origin Resource Sharing)はブラウザのクロスオリジンHTTPリクエストを許可するアクセス制御設定であり、アップロード方式ではありません。XMLHttpRequestで再試行を実装してもPutObject APIの5GB制限を回避できず、中断再開機能は実現できません。

解説

S3マルチパートアップロードは100MB以上のオブジェクトに推奨され、ファイルを最大10,000パートに分割して並列アップロードできます。失敗したパートのみ再送可能なため、中断再開に最適です。フローはInitiateMultipartUpload → UploadPart(並列)→ CompleteMultipartUploadの3ステップです。なお5GBを超えるオブジェクトはPutObject単体では送信不可であり、マルチパートアップロードが必須となります。 選択肢B の S3 Transfer Accelerationは転送速度向上には有効ですが、中断再開機能は持ちません。 選択肢C の PutObjectにリトライロジックを追加しても、ネットワーク中断時は毎回最初からアップロードが再開されるため大容量ファイルの効率的な再開には対応できません。 選択肢D の CORS(Cross-Origin Resource Sharing)はブラウザのクロスオリジンHTTPリクエストを許可するためのアクセス制御設定であり、アップロード方式そのものではありません。XHRによる通常のPUTリクエストでは5GBの制限を回避できず、真の中断再開も実現できません。

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

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

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