ECR
AWS のマネージドコンテナレジストリで、Docker イメージを安全に保存・管理・配信する
AWSコンテナ
ECR とは
ECR (Elastic Container Registry) は、AWS のマネージドコンテナレジストリで、Docker イメージを安全に保存・管理・配信する。ECS、EKS、Lambda (コンテナイメージ) からイメージをプルする際に使用する。Docker Hub のプライベート版に相当する。
Docker Hub との比較
| 観点 | ECR | Docker Hub |
|---|---|---|
| ホスティング | AWS マネージド | SaaS |
| 認証 | IAM | Docker ID |
| プルレート制限 | なし (同一リージョン) | 100 プル/6 時間 (無料) |
| 脆弱性スキャン | ネイティブ対応 | 有料プラン |
| コスト | ストレージ + データ転送 | 無料枠あり |
基本操作
# ECR にログイン
aws ecr get-login-password --region ap-northeast-1 | \
docker login --username AWS --password-stdin 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com
# イメージのビルド・タグ付け・プッシュ
docker build -t myapp .
docker tag myapp:latest 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:v1.0.0
docker push 123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/myapp:v1.0.0
ライフサイクルポリシー
古いイメージを自動削除してストレージコストを抑える。
| ルール | 説明 |
|---|---|
| タグなしイメージを 7 日後に削除 | ビルド中間イメージの自動クリーンアップ |
| 最新 10 個のイメージのみ保持 | 古いバージョンを自動削除 |
脆弱性スキャン
ScanOnPush: true でプッシュ時に自動スキャンされる。Amazon Inspector と統合し、OS パッケージとアプリケーション依存の脆弱性を検出する。
イメージタグ戦略
# ❌ latest のみ → どのバージョンがデプロイされているか不明
docker tag myapp:latest ...
# ✅ Git SHA + セマンティックバージョン
docker tag myapp:latest .../myapp:v1.2.3
docker tag myapp:latest .../myapp:abc1234
ECR Public
パブリックなコンテナイメージを公開する場合は ECR Public Gallery を使用する。OSS プロジェクトやベースイメージの配布に適している。
さらに掘り下げるなら関連書籍が参考になる。