現場実践|Amazon ECR管理

Amazon ECRコンテナイメージ管理実践|プッシュ・スキャン・ライフサイクルポリシーの設定

「DockerイメージをAWSに保管・管理したい」「古いイメージが溜まってコストがかかっている」——Amazon ECR(Elastic Container Registry)のイメージプッシュ・脆弱性スキャン・ライフサイクルポリシーの設定を解説します。

読了目安:約18分更新日:2026年3月

💡 ECRはAWSのプライベートDockerレジストリ。古いイメージが蓄積するとストレージコストが増加します。ライフサイクルポリシーで自動削除・脆弱性スキャンでセキュリティを確保する仕組みを整備することが重要です。

この記事を書いた人
現役ITエンジニア・IT講師(経験14年)
CCNA・CCNP 取得LPIC-1 保有SES現場を複数経験

ECRを使ったコンテナイメージ管理を複数の本番環境で担当してきた立場から解説します。

1. ECRへのイメージプッシュ

# ECRにログイン(AWS CLI v2)
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 my-app:latest .

# ECRのリポジトリURIでタグ付け
docker tag my-app:latest \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest

# ECRにプッシュ
docker push \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest

# タグをGitのSHAに設定(CI/CDの標準パターン)
docker tag my-app:latest \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:${GITHUB_SHA}

2. ECR拡張スキャン(Inspector連携)

ECRのイメージスキャンには基本スキャン(OS脆弱性)と拡張スキャン(AWS Inspectorと連携・OSとアプリケーションライブラリの両方をスキャン)があります。本番環境のリポジトリには拡張スキャンを有効にして「CRITICALまたはHIGHの脆弱性があるイメージをデプロイしない」ポリシーをCI/CDパイプラインに組み込むことを推奨します。

3. ライフサイクルポリシーで古いイメージを自動削除

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "latestタグ以外で30日以上古いイメージを削除",
      "selection": {
        "tagStatus": "tagged",
        "tagPrefixList": ["v"],
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 30
      },
      "action": {"type": "expire"}
    },
    {
      "rulePriority": 2,
      "description": "タグなしイメージを1日後に削除",
      "selection": {
        "tagStatus": "untagged",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 1
      },
      "action": {"type": "expire"}
    }
  ]
}

4. ECRのクロスアカウントアクセス

マルチアカウントのAWS環境では「共有サービスアカウントのECRから各環境(dev/stg/prod)がイメージをpullする」構成が一般的です。ECRのリソースポリシーで「別のAWSアカウントIDからのPull操作を許可する」設定を行うことで実現できます。

📌 この記事のポイント
  • ECRへのプッシュはCIでGitのSHAをタグにすることでイメージとコードの対応が明確になる
  • 拡張スキャン(Inspector連携)でOSとアプリライブラリの両方をスキャンしてCRITICALイメージのデプロイをブロックする
  • ライフサイクルポリシーで30日以上古いイメージとタグなしイメージを自動削除してEBSコストを削減する

キャリアの疑問、一緒に解決しませんか?

Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。

※ECRの料金・機能はAWSにより変更される場合があります。

【編集・制作ポリシー】
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。 編集ポリシーはこちら
ABOUT ME
たから
フリーランスIT講師/エンジニア。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900//サーティファイC言語/情報処理技術者 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営