目次

Amazon ECR 完全ガイド v2.0

初心者から実務者向けの包括的解説


ドキュメントの目的

本ガイドは以下を対象としています。

  • 初心者向け: ECR とは何か、Docker コンテナレジストリの役割を学びたい方
  • DevOps/SRE 向け: プライベートレジストリ・脆弱性スキャン・レプリケーションを実装したい方
  • セキュリティエンジニア向け: Enhanced Scanning・Inspector 連携・コンプライアンス対応
  • 意思決定者向け: Docker Hub・GHCR・Artifactory・Quay との比較・投資判断

2025-2026 年の ECR 最新動向

  • Image Usage Status(2025年6月):EKS・ECS での実際の使用状況を表示。最終利用日・クラスター数・クラスター ARN
  • Enhanced Scanning 継続発展:OS + プログラミング言語パッケージの脆弱性検知。Inspector との深い統合
  • Cross-Region Replication 強化:複数リージョン間での スキャンルール統一・ライフサイクルポリシー自動同期
  • OCI Distribution Spec 準拠:Docker・Podman・Containerd との完全互換性
  • CloudFront 統合最適化:CDN キャッシュでグローバル配信を高速化

目次

  1. 本質・定義
  2. ECR が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. コアコンポーネント
  6. Repository 管理
  7. イメージプッシュ・プル
  8. Enhanced Scanning(脆弱性スキャン)
  9. Image Usage Status(2025年新機能)
  10. Cross-Region Replication
  11. Pull Through Cache
  12. Lifecycle Policy
  13. CloudFront CDN 統合
  14. ECR Public Gallery
  15. 類似サービス比較表
  16. セキュリティ・ベストプラクティス
  17. トラブルシューティング
  18. 2025-2026 最新動向
  19. コスト最適化
  20. 学習リソース・参考文献
  21. 実装例・チェックリスト
  22. まとめ

本質・定義

定義

Amazon Elastic Container Registry (ECR) は、「AWS ネイティブのマネージド Docker/OCI コンテナイメージレジストリ」。ECS・EKS・EC2・オンプレミスへのコンテナ配信を統一管理。IAM ベースのアクセス制御・自動脆弱性スキャン(Enhanced Scanning with Inspector)・マルチリージョンレプリケーション・Lifecycle Policy によるストレージ最適化が特徴。

初心者向けメモ: ECR は「AWS が管理してくれる Docker Hub」。Docker Hub と異なり、AWS IAM で権限管理でき、ECS・EKS と直接統合。プライベートレジストリがデフォルト。

このサービスを選ぶ理由

課題 Docker Hub・GHCR ECR での解決
プライベートレジストリ管理 有料・UI 管理 AWS アカウント管理・IAM 統合
脆弱性スキャン 手動 / Snyk 有料 Inspector 統合・自動連続スキャン
マルチリージョン対応 各リージョンに別リポジトリ Cross-Region Replication で自動同期
高速イメージ配信 遠隔リージョンで遅延 CloudFront CDN でグローバル高速化
IAM 統合 外部認証 ネイティブ IAM 権限管理
CI/CD 統合 API 呼び出し複雑 CodeBuild・CodePipeline 原生統合
イメージ使用状況把握 不可 Image Usage Status で EKS・ECS 実使用を表示

ECR が解決する課題

  1. セキュリティ:脆弱性を自動検知・修復優先度付けで安全性向上
  2. スケーラビリティ:無制限のイメージストレージ・100,000 イメージ/リポジトリ対応
  3. マルチリージョン:リプリケーションで DR・グローバル展開に対応
  4. コスト最適化:Lifecycle Policy で古いイメージ自動削除
  5. アクセス制御:IAM で細粒度権限管理・リソースベースポリシー
  6. パフォーマンス:CloudFront キャッシュで高速グローバル配信
  7. 可視性:Image Usage Status で実運用中のイメージを優先対応

主な特徴

特徴 説明
完全マネージド インフラ管理不要。スケーリング自動
IAM 統合 AWS ID & Access Management で権限管理
Enhanced Scanning Amazon Inspector で OS・言語パッケージの脆弱性検知
Image Usage Status EKS・ECS での実使用状況を表示(最終利用日・クラスター数)
Cross-Region Replication 複数リージョンへ自動同期。スキャンルール・ポリシー統一
Pull Through Cache DockerHub・公開レジストリをプロキシ。初回プルで ECR にキャッシュ
Lifecycle Policies 古い・タグなしイメージ自動削除。ストレージ最適化
CloudFront 統合 CDN キャッシュで全リージョンから高速配信
Immutable Tags タグ上書き防止。本番環境での予期しない更新防止
KMS 暗号化 カスタマー管理キーでイメージ保護
EventBridge 統合 イメージプッシュ・スキャン完了をトリガー化
OCI Distribution Spec Docker・Podman・Containerd との互換性
graph TB
    subgraph Developer["開発者"]
        LocalDocker["ローカル Docker"]
        CI_CD["CI/CD Pipeline<br/>CodeBuild / GitHub Actions"]
    end
    
    subgraph ECR["Amazon ECR"]
        PrivateRepo["Private Repository"]
        PublicGallery["ECR Public Gallery"]
        Scanner["Amazon Inspector<br/>Enhanced Scanning"]
        Lifecycle["Lifecycle Policy<br/>ストレージ最適化"]
        PullThrough["Pull Through Cache<br/>DockerHub キャッシュ"]
    end
    
    subgraph Deployment["デプロイメント"]
        ECS["ECS / Fargate<br/>タスク実行"]
        EKS["EKS / Kubernetes<br/>ポッド実行"]
        EC2["EC2<br/>docker run"]
    end
    
    subgraph Replication["マルチリージョン"]
        ReplicaRegion["Replica Region<br/>Auto-Sync"]
        CloudFront["CloudFront CDN<br/>高速配信"]
    end
    
    LocalDocker -->|docker push| PrivateRepo
    CI_CD -->|自動プッシュ| PrivateRepo
    
    PrivateRepo --> Scanner
    PrivateRepo --> Lifecycle
    PrivateRepo --> PullThrough
    
    PrivateRepo -->|イメージ参照| ECS
    PrivateRepo -->|イメージ参照| EKS
    PrivateRepo -->|イメージ参照| EC2
    
    PrivateRepo -->|レプリケーション| ReplicaRegion
    ReplicaRegion --> CloudFront
    
    style Developer fill:#ccffcc
    style ECR fill:#e1f5ff
    style Deployment fill:#f0f4c3

アーキテクチャ

graph TB
    subgraph AWS_Region["AWS リージョン(プライマリ)"]
        Registry["ECR Private Repository<br/>my-app:latest, v1.0, v2.0"]
        Inspector["Amazon Inspector<br/>Enhanced Scanning<br/>OS・言語パッケージ脆弱性"]
        ImageUsage["Image Usage Status<br/>EKS・ECS での実使用"]
        Lifecycle["Lifecycle Policy<br/>古いイメージ削除"]
    end
    
    subgraph Replica_Region["AWS リージョン(セカンダリ)"]
        ReplicaRegistry["ECR Replica Repository<br/>Auto-Sync"]
        ReplicaScanning["Scanner(同期)"]
    end
    
    subgraph CDN["CloudFront / Edge"]
        Cache["Image Cache<br/>低遅延配信"]
    end
    
    subgraph Deployment["デプロイメント"]
        ECS["ECS / Fargate"]
        EKS["EKS / Kubernetes"]
        EC2["EC2 Instance"]
    end
    
    subgraph ExternalSources["外部ソース"]
        DockerHub["DockerHub<br/>Official Images"]
        GHCR["GitHub Container Registry"]
        Quay["Quay.io"]
    end
    
    CI_CD["CI/CD Pipeline<br/>CodeBuild / GitHub Actions"]
    
    CI_CD -->|docker push| Registry
    
    Registry --> Inspector
    Registry --> ImageUsage
    Registry --> Lifecycle
    
    Registry -->|レプリケーション| ReplicaRegistry
    ReplicaRegistry --> ReplicaScanning
    
    Registry --> Cache
    Cache -->|docker pull| ECS
    Cache -->|docker pull| EKS
    Cache -->|docker pull| EC2
    
    DockerHub -.->|Pull Through Cache| Registry
    GHCR -.->|Pull Through Cache| Registry
    Quay -.->|Pull Through Cache| Registry
    
    style AWS_Region fill:#e1f5ff
    style Replica_Region fill:#f0f4c3
    style CDN fill:#fff9c4

コアコンポーネント

1. Repository(リポジトリ)

イメージ保存の基本単位。複数バージョン・タグで管理可能。

# リポジトリ作成
aws ecr create-repository \
  --repository-name my-app \
  --region ap-northeast-1 \
  --image-scan-configuration scanOnPush=true \
  --image-tag-mutability IMMUTABLE \
  --encryption-configuration encryptionType=KMS,kmsKey=arn:aws:kms:...

2. Image(イメージ)

Docker コンテナイメージ。複数タグで参照可能。

# イメージリスト表示
aws ecr list-images \
  --repository-name my-app \
  --region ap-northeast-1

# 特定イメージの詳細
aws ecr describe-images \
  --repository-names my-app \
  --image-ids imageTag=latest

3. Image Manifest

イメージのメタデータ。複数イメージタグが同じ Manifest を参照可能。

4. Scanning(スキャン)

Enhanced Scanning with Amazon Inspector。OS・プログラミング言語パッケージの脆弱性検知。


Repository 管理

Repository 設定(IaC)

# Terraform による ECR リポジトリ定義
resource "aws_ecr_repository" "my_app" {
  name                 = "my-app"
  image_tag_mutability = "IMMUTABLE"  # タグ上書き防止
  
  image_scanning_configuration {
    scan_on_push = true  # プッシュ時に自動スキャン
  }

  encryption_configuration {
    encryption_type = "KMS"
    kms_key         = aws_kms_key.ecr.arn
  }

  tags = {
    Environment = "production"
    Team        = "platform"
  }
}

# ライフサイクルポリシー:最新 10 イメージを保持
resource "aws_ecr_lifecycle_policy" "my_app" {
  repository = aws_ecr_repository.my_app.name

  policy = jsonencode({
    rules = [
      {
        rulePriority = 1
        description  = "Keep last 10 images"
        selection = {
          tagStatus     = "any"
          countType     = "imageCountMoreThan"
          countNumber   = 10
        }
        action = {
          type = "expire"
        }
      }
    ]
  })
}

# リポジトリポリシー:別アカウントからアクセス許可
resource "aws_ecr_repository_policy" "my_app" {
  repository = aws_ecr_repository.my_app.name

  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Effect = "Allow"
        Principal = {
          AWS = "arn:aws:iam::999999999999:root"
        }
        Action = [
          "ecr:BatchGetImage",
          "ecr:GetDownloadUrlForLayer",
          "ecr:DescribeImages"
        ]
      }
    ]
  })
}

Repository 削除

# リポジトリ内のすべてのイメージを削除後に削除
aws ecr delete-repository \
  --repository-name my-app \
  --force  # イメージ削除なしで強制削除

イメージプッシュ・プル

認証(6 時間有効)

# AWS CLI でエンドポイント・クレデンシャル取得
aws ecr get-login-password --region ap-northeast-1 | \
  docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com

Build → Push パイプライン

# 1. イメージ構築
docker build -t my-app:latest .

# 2. ECR タグ付け
docker tag my-app:latest \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest

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

# 4. Pull(ECS・EKS・EC2 上)
docker pull \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest

docker run -it \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/my-app:latest \
  bash

AWS CodeBuild による自動化

version: 0.2

phases:
  build:
    commands:
      # AWS CLI で ECR 認証
      - aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin $AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com
      
      # イメージ構築
      - docker build -t $REPOSITORY_URI:$IMAGE_TAG .
      
      # ECR にプッシュ
      - docker push $REPOSITORY_URI:$IMAGE_TAG

artifacts:
  name: build-artifact
  files:
    - "**/*"

Enhanced Scanning(脆弱性スキャン)

スキャン有効化

# リポジトリレベルでスキャン有効化
aws ecr put-image-scanning-configuration \
  --repository-name my-app \
  --image-scanning-configuration scanOnPush=true

スキャン結果確認

# 特定イメージのスキャン結果
aws inspector describe-image_scan_findings \
  --registry-id 123456789012 \
  --repository-name my-app \
  --image-id imageTag=latest

# 出力例:
# {
#   "imageScanFindings": {
#     "imageScanCompletedAt": "2026-04-26T12:34:56Z",
#     "vulnerabilities": [
#       {
#         "severity": "HIGH",
#         "name": "CVE-2025-XXXXX",
#         "uri": "https://nvd.nist.gov/vuln/...",
#         "attributes": [
#           {
#             "key": "package_version",
#             "value": "1.2.3"
#           },
#           {
#             "key": "package_name",
#             "value": "openssl"
#           }
#         ]
#       }
#     ],
#     "findingsSeverityCounts": {
#       "CRITICAL": 1,
#       "HIGH": 5,
#       "MEDIUM": 3
#     }
#   }
# }

Image Usage Status(2025年新機能)

実際に EKS・ECS で使用中のイメージを優先対応。

# イメージの使用状況を確認
aws ecr describe-image-scan_findings \
  --registry-id 123456789012 \
  --repository-name my-app \
  --image-id imageTag=v1.0

# 出力に以下が含まれる:
# {
#   "imageUsageStatus": {
#     "lastUsedAt": "2026-04-25T10:30:00Z",
#     "usedInClusterCount": 3,
#     "usedInServices": [
#       {
#         "clusterArn": "arn:aws:ecs:ap-northeast-1:...:cluster/production",
#         "serviceName": "my-service"
#       }
#     ]
#   }
# }

優先度付け戦略

  • 最終利用日 < 30 日のイメージ:最優先で脆弱性対応
  • 最終利用日 > 90 日のイメージ:リポジトリから削除検討

Cross-Region Replication

複数リージョンへの自動同期。ディザスタリカバリー・グローバル展開対応。

# レプリケーションルール作成
aws ecr put-replication-configuration \
  --replication-configuration '{
    "rules": [
      {
        "destinations": [
          {
            "region": "us-east-1",
            "registryId": "123456789012"
          },
          {
            "region": "eu-west-1",
            "registryId": "123456789012"
          }
        ],
        "repositoryFilters": [
          {
            "filter": "prefix-list",
            "filterValue": ["prod-"]
          }
        ]
      }
    ]
  }'

レプリケーション後の同期項目(2025年新機能):

  • Enhanced Scanning ルール
  • Lifecycle Policy
  • イメージタグ・メタデータ

Pull Through Cache

DockerHub などの公開レジストリをプロキシ。初回プルで ECR にキャッシュ。

# プルスルーキャッシュルール作成
aws ecr create-pull-through-cache-rule \
  --ecr-repository-prefix dockerhub \
  --upstream-registry-url docker.io \
  --upstream-registry docker

aws ecr create-pull-through-cache-rule \
  --ecr-repository-prefix ghcr \
  --upstream-registry-url ghcr.io \
  --upstream-registry github

# キャッシュを通じてプル
docker pull \
  123456789012.dkr.ecr.ap-northeast-1.amazonaws.com/dockerhub/library/nginx:latest

# 初回:DockerHub から取得して ECR にキャッシュ
# 2回目以降:ECR キャッシュから高速供給

メリット

  • DockerHub レート制限の回避(Docker Hub 匿名利用は 100 pull/6h の制限あり)
  • キャッシュを通じた高速提供
  • キャッシュの脆弱性スキャン

Lifecycle Policy

古い・タグなしイメージを自動削除してストレージ最適化。

パターン 1:日付ベース削除

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "Delete images older than 30 days",
      "selection": {
        "tagStatus": "untagged",
        "countType": "sinceImagePushed",
        "countUnit": "days",
        "countNumber": 30
      },
      "action": {
        "type": "expire"
      }
    }
  ]
}

パターン 2:イメージ数ベース保持

{
  "rules": [
    {
      "rulePriority": 1,
      "description": "Keep last 20 images tagged with 'v'",
      "selection": {
        "tagStatus": "tagged",
        "tagPrefixList": ["v"],
        "countType": "imageCountMoreThan",
        "countNumber": 20
      },
      "action": {
        "type": "expire"
      }
    }
  ]
}

Terraform での定義

resource "aws_ecr_lifecycle_policy" "example" {
  repository = aws_ecr_repository.example.name

  policy = jsonencode({
    rules = [
      {
        rulePriority = 1
        description  = "Delete untagged images after 7 days"
        selection = {
          tagStatus     = "untagged"
          countType     = "sinceImagePushed"
          countUnit     = "days"
          countNumber   = 7
        }
        action = {
          type = "expire"
        }
      },
      {
        rulePriority = 2
        description  = "Keep only last 10 tagged images"
        selection = {
          tagStatus     = "tagged"
          countType     = "imageCountMoreThan"
          countNumber   = 10
        }
        action = {
          type = "expire"
        }
      }
    ]
  })
}

CloudFront CDN 統合

ECR をオリジンとして CloudFront CDN を構成。グローバル高速配信。

# CloudFront distribution 作成
aws cloudfront create-distribution \
  --distribution-config '{
    "CallerReference": "ecr-cdn-001",
    "Origins": [
      {
        "Id": "ecr-origin",
        "DomainName": "123456789012.dkr.ecr.ap-northeast-1.amazonaws.com",
        "CustomOriginConfig": {
          "HTTPPort": 80,
          "HTTPSPort": 443,
          "OriginProtocolPolicy": "https-only"
        },
        "OriginCustomHeaders": [
          {
            "HeaderName": "Authorization",
            "HeaderValue": "Bearer <ecr-auth-token>"
          }
        ]
      }
    ],
    "DefaultCacheBehavior": {
      "AllowedMethods": ["GET", "HEAD"],
      "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6",
      "TargetOriginId": "ecr-origin",
      "ViewerProtocolPolicy": "https-only",
      "Compress": true
    },
    "Enabled": true
  }'

メリット

  • グローバル Edge locations からの高速配信
  • バンド幅削減(キャッシュ活用)
  • DDoS 保護(AWS Shield 統合)

パブリックイメージを共有。無料・認証不要でアクセス可能。

# パブリックリポジトリ作成
aws ecr-public create-repository \
  --repository-name my-public-app \
  --region us-east-1

# パブリックイメージプッシュ
docker push \
  public.ecr.aws/xxxxxxxx/my-public-app:latest

類似サービス比較表

項目 ECR Docker Hub GHCR JFrog Artifactory GCP Artifact Registry Azure Container Registry
ホスティング AWS マネージド Docker Inc GitHub セルフ・SaaS GCP Azure
脆弱性スキャン Enhanced(Inspector) Snyk(有料) Dependabot オプション Automatic Automatic
プライベート デフォルト 有料 デフォルト デフォルト デフォルト デフォルト
IAM 統合 ✅ ネイティブ API のみ GitHub のみ LDAP・RBAC GCP IAM Azure IAM
マルチリージョン
Cross-Region Replication
CloudFront 統合
Image Usage Status ✅(2025年)
価格 ストレージ + 転送 無料・有料 無料 自社ホスト・SaaS ストレージ + 転送 ストレージ + 転送

判断基準

  • AWS メイン・ネイティブ統合 → ECR
  • エコシステム・高度な分析 → Docker Hub
  • GitHub 中心・コンテナ用途限定 → GHCR
  • マルチクラウド・柔軟性 → Artifactory・Artifact Registry

セキュリティ・ベストプラクティス

✅ 推奨される設定

項目 推奨 理由
Image Tag Mutability IMMUTABLE(本番) タグ上書き防止
Enhanced Scanning 有効化 脆弱性を継続監視
KMS 暗号化 カスタマー管理キー キー自社管理
IAM ポリシー 最小権限 アクセス制御強化
Lifecycle Policy 定義必須 ストレージ最適化・古いイメージ削除
Cross-Region Replication DR 構成 ディザスタリカバリー対応
EventBridge トリガー スキャン完了時 脆弱性検知の自動対応

❌ 避けるべきパターン

アンチパターン 問題 対策
latest タグで本番運用 バージョン管理不可 セマンティックバージョニング
Lifecycle Policy 未設定 ストレージ膨張・コスト増加 ポリシーで古いイメージ削除
スキャン無効 脆弱性見落とし Enhanced Scanning 必須
tag mutability なし 予期しないイメージ更新 IMMUTABLE に設定

トラブルシューティング

症状 原因 対策
認証エラー(401) トークン期限切れ・権限不足 get-login-password 再実行・IAM 確認
Push 失敗(Repository not found) リポジトリ未作成 create-repository で作成
スキャン結果なし Enhanced Scanning 非有効 put-image-scanning-configuration で有効化
レプリケーション失敗 宛先リージョン権限不足 宛先リージョン IAM ロール確認
Image pull throttling DockerHub rate limit Pull Through Cache で回避
Lifecycle Policy 非適用 ポリシー構文エラー CloudWatch Logs で詳細確認

2025-2026 最新動向

1. Image Usage Status(2025年6月)

EKS・ECS での実使用状況を表示。脆弱性対応の優先度付けが可能。

  • v1.0:最終利用 5 日前、3 クラスターで使用 → 優先対応
  • v0.9:最終利用 120 日前、未使用 → リポジトリから削除

2. Enhanced Scanning 継続発展

OS + プログラミング言語パッケージの脆弱性検知がさらに精密化。新規言語対応。

3. Cross-Region Replication 強化

複数リージョン間での スキャンルール・ライフサイクルポリシー自動同期。

4. OCI Distribution Spec 準拠

Docker・Podman・Containerd との完全互換性。標準化進展。

5. CloudFront 統合最適化

Edge locations からのイメージキャッシング・高速配信がさらに最適化。


コスト最適化

料金体系

課金項目 価格
ストレージ $0.10/GB/月(最初 50 GB まで無料)
データ転送(アウト) EC2 から 0/GB・外部へ 0.09/GB

コスト削減例

【月間 100 イメージ・各 500 MB】
初期:100 × 500 MB = 50 GB = $0(無料枠)
3か月後:300 GB = (300 - 50) × $0.10 = $25/月

Lifecycle Policy 導入:
最新 20 イメージのみ保持 = 10 GB = $0
削減効果:100% ✅

学習リソース・参考文献

AWS 公式

  1. Amazon ECR User Guide
  2. ECR Enhanced Scanning with Inspector
  3. Cross-Region Replication
  4. Image Usage Status

ブログ・ホワイトペーパー

  1. AWS Containers Blog
  2. ECR in Multi-Account and Multi-Region Architectures
  3. How to Use Inspector for ECR Scanning

標準・仕様

  1. OCI Distribution Spec
  2. Docker Registry API

比較リファレンス

  1. Docker Hub Documentation
  2. GitHub Container Registry
  3. JFrog Artifactory

実装例・チェックリスト

フェーズ 1:基本セットアップ(1-2 週間)

  • [ ] ECR リポジトリ作成
  • [ ] ローカル Docker → ECR push テスト
  • [ ] IAM ロール・権限設定
  • [ ] KMS 暗号化設定

フェーズ 2:自動化・CI/CD(2-3 週間)

  • [ ] CodeBuild で自動ビルド・プッシュ
  • [ ] Enhanced Scanning 有効化
  • [ ] CloudWatch メトリクス確認

フェーズ 3:高度な機能(3-4 週間)

  • [ ] Cross-Region Replication 構築
  • [ ] Pull Through Cache ルール
  • [ ] Lifecycle Policy 定義
  • [ ] EventBridge トリガー設定

フェーズ 4:運用・最適化(継続)

  • [ ] Image Usage Status モニタリング
  • [ ] 脆弱性対応の優先度付け
  • [ ] CloudFront CDN 検討
  • [ ] ストレージコスト最適化

まとめ

Amazon ECR は、AWS 環境におけるコンテナレジストリの最適解。IAM ネイティブ統合・Enhanced Scanning による継続的脆弱性監視・Image Usage Status で実運用優先度付け・Cross-Region Replication でグローバル展開に対応。

主要なポイント

  1. セキュリティ重視:Enhanced Scanning で OS・言語パッケージの脆弱性を自動検知
  2. IAM 統合:AWS Identity & Access Management で細粒度権限管理
  3. スケーラビリティ:無制限ストレージ・100,000 イメージ/リポジトリ対応
  4. マルチリージョン:Cross-Region Replication で自動同期・グローバル対応
  5. コスト効率:Lifecycle Policy でストレージ最適化・CloudFront CDN で高速配信
  6. 可視性:Image Usage Status で実装上のイメージを優先対応

Docker Hub・GHCR との比較で、特に AWS メインインフラ・脆弱性管理重視・マルチリージョン展開が必要な場合に ECR は最適選択。


最終更新:2026-04-26 バージョン:v2.0 著者:Claude (Anthropic) — i のメモ拡充プロジェクト