Amazon ECR

Docker コンテナイメージを安全に保存 / 管理 / 配信できるフルマネージドなコンテナレジストリサービス

概要

Amazon Elastic Container Registry (ECR) は、Docker コンテナイメージと OCI アーティファクトを保存および管理するフルマネージドレジストリです。ECS、EKS、Lambda などの AWS コンテナサービスとネイティブに統合されており、イメージの push/pull が VPC エンドポイント経由でインターネットを介さずに行えます。イメージの脆弱性スキャン (Amazon Inspector 連携)、イメージ署名による改ざん検知、ライフサイクルポリシーによる古いイメージの自動削除など、エンタープライズ運用に必要な機能を備えています。

プライベートレジストリとパブリックレジストリの役割

ECR にはプライベートレジストリとパブリックレジストリの 2 種類があります。プライベートレジストリは IAM ポリシーでアクセスを制御し、社内のアプリケーションイメージを安全に管理する用途で使います。リポジトリポリシーでクロスアカウントの pull を許可でき、マルチアカウント環境で共通のベースイメージを配布する Hub-Spoke 構成が可能です。パブリックレジストリ (ECR Public Gallery) はオープンソースプロジェクトや公開ツールのイメージを配布する用途で、Docker Hub の代替として利用できます。料金はストレージとデータ転送などの従量課金で、Azure Container Registry のような SKU ベースの固定料金はありません (2026 年 10 月時点)。

ライフサイクルポリシーによるストレージ管理

ECR の運用で重要なのがライフサイクルポリシーの設定です。CI/CD パイプラインが頻繁にイメージを push する環境では、タグなしイメージや古いイメージが蓄積してストレージコストが膨らみます。「タグなしイメージは 1 日後に削除」「タグ付きイメージは最新 10 件のみ保持」のようなルールを設定し、自動クリーンアップを行います。なお、ECR 自体にはイメージのビルド機能がなく、CodeBuild や GitHub Actions など外部の CI/CD サービスでビルドしてから push する設計になります。

脆弱性スキャンとマルチアカウント運用

セキュリティ面では、Enhanced Scanning (Amazon Inspector 連携) を有効にすると、push 時だけでなく新しい CVE が公開されたタイミングでも既存イメージを再スキャンし、脆弱性を継続的に検出できます。Basic Scanning は push 時または手動で実行する OS の脆弱性スキャン (AWS ネイティブの技術を使用) です。Enhanced Scanning の料金は Amazon Inspector 側で発生します。マルチアカウント環境では、共有サービスアカウントに ECR リポジトリを集約し、リポジトリポリシーで各ワークロードアカウントからの pull を許可する構成をとれます。レプリケーション設定で複数リージョンにイメージを自動コピーすれば、マルチリージョンデプロイ時の pull レイテンシも削減できます。

参考資料 (AWS 公式)

本ページの一次情報は AWS 公式サイトと公式ドキュメントです。最新の仕様と料金は次の公式ページで確認できます。

本ページと公式ドキュメントの記述が食い違う場合は、公式ドキュメントを正としてください。

共有する