現場実践|ECRコンテナレジストリ管理

Amazon ECRでコンテナイメージを安全に管理する|ライフサイクルポリシー・イメージスキャン・クロスリージョンレプリケーション

「ECRってただのイメージ置き場じゃないの?」「古いイメージを自動で削除したい」——Amazon ECRのライフサイクルポリシー・脆弱性スキャン・クロスリージョンレプリケーションまで実践的に解説します。

読了目安:約15分更新日:2026年4月

💡 ECRは単なるDockerイメージの置き場ではなく、脆弱性スキャン・ライフサイクル管理・アクセス制御が統合されたエンタープライズグレードのコンテナレジストリです。本番環境では適切な設定が必要です。

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

ECRを使ったコンテナイメージ管理を複数案件で実装してきた立場から解説します。

1. ECRの基本設定

  • プライベートリポジトリを使う:本番環境のイメージはパブリックリポジトリではなくプライベートECRに保管する。IAMポリシーでアクセス制御する
  • イメージタグの命名規則:「latest」タグのみを使うのは危険。GitのコミットSHA(git rev-parse –short HEAD)をタグにすることでどのコードからビルドしたかを追跡できる
  • リポジトリポリシーでクロスアカウントアクセスを設定:マルチアカウント環境では本番アカウントのECSが開発アカウントのECRからイメージをプルする設定が必要になることがある

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

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "最新10イメージのみ保持",
      "selection": {
        "tagStatus": "tagged",
        "tagPrefixList": ["v"],
        "countType": "imageCountMoreThan",
        "countNumber": 10
      },
      "action": { "type": "expire" }
    },
    {
      "rulePriority": 2,
      "description": "タグなし(untagged)イメージを7日後に削除",
      "selection": {
        "tagStatus": "untagged",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 7
      },
      "action": { "type": "expire" }
    }
  ]
}

3. ECR Inspectorによる脆弱性スキャン

🔍
ベーシックスキャン(無料)
OSパッケージの既知CVEをスキャン。プッシュ時に自動スキャンするよう設定できる。スキャン結果はECRコンソールで確認できる。
🛡️
拡張スキャン(Amazon Inspector)
OSパッケージに加えてアプリケーション言語ライブラリ(Node.js・Python等)も継続的にスキャン。新しいCVEが公開されると自動で再スキャンされる。
📌 この記事のポイント
  • ECRはilatestタグのみでなくGitコミットSHAをタグに使い、どのコードからビルドしたかを追跡できるようにする
  • ライフサイクルポリシーで最新10イメージのみ保持・タグなしイメージを7日後に削除することで容量コストを管理する
  • ECR InspectorでOSパッケージとアプリライブラリの脆弱性を継続的にスキャンして本番イメージを安全に保つ

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

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

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

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営