あるデータパイプラインはAWS Step Functionsを使用してオーケストレーションされており、Amazon S3からデータを読み込み、AWS Glueジョブで変換し、Amazon Redshiftにロードします。Glueジョブが断続的に「ThrottlingException」で失敗することがあります。パイプライン全体の再実行を避けつつ、このような一時的なエラーを自動的に処理するための最適な方法はどれですか?
正解: Step Functionsのステートマシン定義でGlueジョブ呼び出しステートにRetryブロックを追加し、ThrottlingExceptionに対して指数バックオフで自動再試行するよう設定する。 AWS Step Functionsのステートマシンでは、各ステートにRetryブロックを定義することで特定のエラーに対する自動再試行ロジックを組み込めます。ErrorEquals・IntervalSeconds・MaxAttempts・BackoffRateパラメータを設定することで、ThrottlingExceptionのような一時的エラーに対して指数バックオフでの自動再試行が可能です。Retryブロックによりコード変更なしに自動的な再試行が行われ、パイプライン全体の再実行を防ぎます。 選択肢BのCloudWatch Alarmsによる検知は可能ですが、手動オペレーターの介入が必要であり自動化の要件を満たしません。 選択肢CのCatchブロックはRetryで対処できなかった最終的なエラーのフォールバック処理に使用するものであり、再試行には適しません。 選択肢DのLambdaによるカスタム実装は不必要な複雑性を追加し、Step Functionsのネイティブ機能で代替できます。