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 プロジェクトやベースイメージの配布に適している。

さらに掘り下げるなら関連書籍が参考になる。

関連用語