Amazon Elastic Container Registry
コンテナイメージ保管
脆弱性スキャン付きのプライベートな Docker/OCI image リポジトリで、ECS/EKS/Lambda が pull して実行します。
- コスト$ 安い
- 難易度●●●●●
- 未使用でも課金?少し
- AWS マネージド
- 出題試験SAA · DVA
たとえるなら型の倉庫のようなものです。製品(container)を作りたいときは、ここから型(image)を取り出します。
ECR はシステムのどこにある?
ECR を呼び出す
具体例でステップごとに
- チームは新しいコードが入るたびに API の Docker イメージをビルドします。
- CI パイプラインが IAM の権限で ECR にログインし、社内のプライベートリポジトリにイメージをプッシュします。
- ECR はプッシュ直後にイメージの脆弱性をスキャンし、危険なライブラリを知らせます。
- ECS や EKS は同じリージョンの ECR から、インターネットを経由せず高速にイメージを取得します。
- ライフサイクルポリシーで最新 30 個より古いイメージを自動削除し、保存料金が増え続けないようにします。
いつ使う?
✓ 使うべき場面
AWS 上で動くアプリケーションの image を保存する場合。
よくある使い方
- ECS、EKS、Lambda 用の image を保存
- image のセキュリティ脆弱性をスキャン
- image を別のアカウントや Region へレプリケート
ECR・S3・ECS の違い
料金はいくら?
料金の例20 image × 500 MB = 10 GB ≈ $1/月。
- 課金方式: ストレージ約 $0.10/GB 月 + Region 外またはインターネットへのデータ転送料金。同じ Region 内での image の pull にはデータ転送料金はかかりません。
- 無料枠: わずかです。
⚠️ 料金の落とし穴
lifecycle policy を設定せず古い image がたまり続ける。VPC endpoint ではなく NAT Gateway 経由で image を pull する。
💡 試験のコツ
ECS が ECR からイメージを取得できない原因の多くは、タスク実行ロールの権限不足です。イメージを他のリージョンやアカウントへ自動コピーしたいなら、ECR のレプリケーションを有効にします。
よくある質問
ECR と Docker Hub の違いは何ですか?
ECR は AWS アカウント内のプライベートなイメージレジストリで、IAM で権限を管理でき、ECS、EKS、Lambda と連携します。同じリージョン内でのイメージ取得は高速で、インターネットを経由しません。Docker Hub は外部の公開レジストリで、取得回数に制限があります。
ECR はイメージの脆弱性をスキャンできますか?
はい。ベーシックスキャンはイメージのプッシュ時またはオンデマンドで実行されます。拡張スキャンは Amazon Inspector を使って継続的にスキャンし、OS パッケージとプログラミング言語のライブラリの両方を対象とします。
ECR の料金はどのように決まりますか?
月ごとのイメージの保存容量と、外部へのデータ転送量に応じて課金されます。ライフサイクルポリシーを設定して古いイメージを自動削除し、保存料金が増え続けないようにしましょう。
AWS 認定試験では ECR について何が問われますか?
ECS がイメージを取得するための権限(タスク実行ロール)、古いイメージを削除するライフサイクルポリシー、他のリージョンやアカウントへのイメージのレプリケーション、脆弱性スキャンなどです。