無限ノック › DEA 練習問題一覧 › 問題
DEAデータオペレーションとサポート

あるデータエンジニアリングチームは、AWS Batchを使用して数時間かかる大規模なデータ変換ジョブを実行しています。コスト削減のためスポットインスタンスを使用していますが、スポットインターラプション(スポットインスタンスの中断)によって断続的にジョブが失敗しています。 チームは以下の要件を満たしたいと考えています。 ・スポットインターラプションによる失敗時にジョブを最大3回まで自動的にリトライする ・3回リトライしてもすべて失敗した場合はジョブをFAILED状態にして停止する ・追加のAWSサービスや独自のモニタリングコードを不要にする 最も適切な方法はどれですか?

A
AWS Batchのジョブ定義(Job Definition)でリトライ戦略(Retry Strategy)のattemptsを3に設定し、evaluateOnExitでインフラ起因の終了条件を定義する
✓ 正解
AWS Batchのジョブ定義にはRetryStrategyが組み込まれており、attemptsに最大10までの値を設定するだけで自動リトライが有効になります。さらにevaluateOnExitを使用して終了コードやステータス理由に基づいた条件分岐を定義することで、スポットインターラプションなどのインフラ起因の失敗のみリトライし、アプリケーションエラーでは即座に停止するなど細かい制御も可能です。追加のAWSサービスは一切不要で要件を完全に満たします。
B
AWS Step Functionsステートマシンを作成し、AWS Batchジョブ実行→FAILEDイベント検知→再サブミットのループをリトライカウンターで制御する
Step Functionsステートマシンは要件は満たせますが、リトライ制御のためだけにStep Functionsを導入するのは過剰設計であり「追加サービスを不要にする」要件に反します。
C
Amazon EventBridgeルールでAWS BatchのジョブFAILEDイベントを検知し、AWS Lambda関数でジョブを再サブミットしてリトライ回数をAmazon DynamoDBで管理する
EventBridge+Lambda+DynamoDBの組み合わせは機能的には可能ですが実装が非常に複雑でコストも増加し、Batchのネイティブ機能で解決できる場合には不適切です。
D
AWS Batchコンピューティング環境のインスタンスタイプ設定を最適化し、スポット中断率の低いインスタンスファミリーを選択することでジョブ失敗を防止する
インスタンスタイプ最適化はスポット中断率を下げる効果はありますが、自動リトライの仕組みとは無関係であり要件を満たしません。

解説

AWS Batchのジョブ定義にはRetryStrategyが組み込まれており、attemptsに最大10までの値を設定するだけで自動リトライが有効になります。さらにevaluateOnExitを使用して終了コードやステータス理由に基づいた条件分岐を定義することで、スポットインターラプションなどのインフラ起因の失敗のみリトライし、アプリケーションエラーでは即座に停止するなど細かい制御も可能です。追加のAWSサービスは一切不要で要件を完全に満たします。 選択肢BのStep Functionsステートマシンは要件は満たせますが、リトライ制御のためだけにStep Functionsを導入するのは過剰設計であり「追加サービスを不要にする」要件に反します。 選択肢CのEventBridge+Lambda+DynamoDBの組み合わせは機能的には可能ですが実装が非常に複雑でコストも増加し、Batchのネイティブ機能で解決できる場合には不適切です。 選択肢Dのインスタンスタイプ最適化はスポット中断率を下げる効果はありますが、自動リトライの仕組みとは無関係であり要件を満たしません。

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

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

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