ECS one-shot task で行う
DB migration
DBスキーマ変更をアプリ起動の副作用にせず、独立したECS taskとして可観測に実行する考え方です。
TL;DR
- migrationは一回限りの独立taskにする。
- RDSへ届くprivate subnetと最小権限を使う。
- schema確認までを実行完了に含める。
01 migration を独立 task にする

APIのデプロイ失敗とmigration失敗を分離する。 失敗時にはtaskの終了状態とログだけを追えばよく、影響範囲を限定できます。
02 実行を可観測にする

taskを起動した事実だけでは不十分です。終了コード・ログ・期待したテーブルやカラムの存在を確認して初めて、変更が適用されたと判断します。
03 互換性を壊さない順序

まず追加可能なschemaを広げ(expand)、データを移行し、アプリを切り替え、最後に旧schemaを片付ける(contract)。この順ならロールバック余地を保てます。
結論: migrationは、ネットワーク・権限・ログ・schema確認を揃えた独立ジョブとして扱います。