ECR — imageを安全に届け、
戻せるようにする
Docker imageをECRに保存し、ECSが実行する版を選びます。保存することより、どの版を再現できるかが運用の中心です。
TL;DR
- build → push → ECS pull の一本道を捉える
- タグはGit commitと対応させてimmutableにする
- 環境分離と世代管理で削除事故を防ぐ
01imageがECSで動くまで
ECRは実行物を受け渡す保管庫です。ローカルでbuildしたimageをpushし、task definitionが参照するimageをECSがpullします。

02タグは「何を動かすか」の約束
latestを上書きすると、同じ名前が別の内容を指します。Git commit hashをimmutableなtagにすれば、実行版の追跡とロールバックができます。

| 運用 | 結果 |
|---|---|
| mutableなlatest | 参照先が変わり、過去の版を特定しにくい |
| immutableなcommit tag | Gitのcommitと実行imageを対応付けられる |
03削除は環境ごとに管理する
dev・stg・prdを同じrepositoryに入れると、開発のpushが本番の保存世代を押し出し得ます。repositoryを環境で分け、lifecycle policyはロールバック用の世代を残して設定します。

結論
- ECRはECSが動かすimageの版管理である。
- commitと対応したimmutable tagを選ぶ。
- lifecycle policyは復旧に必要な世代を残す。