本番環境のEC2 Auto Scalingグループで動画エンコードジョブを処理しています。スケールイン時にインスタンスが終了する直前、処理中のエンコードジョブを完了させ、中間ファイルをS3に退避してからインスタンスを終了させる必要があります。データ損失を最小化しながら最も確実にこの処理を実現する方法はどれですか?
Auto Scalingライフサイクルフックは、インスタンスの終了をWait状態で一時停止し、カスタム処理を完了させてからcomplete-lifecycle-actionを呼び出すことで終了を許可する機能です。 選択肢Aのスケールイン保護は、スケールイン対象から除外するだけで、終了前処理には不向きです。 選択肢CのALBのコネクションドレイニングは、HTTPリクエストのドレイン向けであり、バックグラウンドエンコードジョブには機能しません。 選択肢DのCloudWatchカスタムメトリクスと EventBridge による手動制御は、競合状態のリスクがあります。