目次
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 キャッシュでグローバル配信を高速化
目次
- 本質・定義
- ECR が解決する課題
- 主な特徴
- アーキテクチャ
- コアコンポーネント
- Repository 管理
- イメージプッシュ・プル
- Enhanced Scanning(脆弱性スキャン)
- Image Usage Status(2025年新機能)
- Cross-Region Replication
- Pull Through Cache
- Lifecycle Policy
- CloudFront CDN 統合
- ECR Public Gallery
- 類似サービス比較表
- セキュリティ・ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- コスト最適化
- 学習リソース・参考文献
- 実装例・チェックリスト
- まとめ
本質・定義
定義
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 が解決する課題
- セキュリティ:脆弱性を自動検知・修復優先度付けで安全性向上
- スケーラビリティ:無制限のイメージストレージ・100,000 イメージ/リポジトリ対応
- マルチリージョン:リプリケーションで DR・グローバル展開に対応
- コスト最適化:Lifecycle Policy で古いイメージ自動削除
- アクセス制御:IAM で細粒度権限管理・リソースベースポリシー
- パフォーマンス:CloudFront キャッシュで高速グローバル配信
- 可視性: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 統合)
ECR Public Gallery
パブリックイメージを共有。無料・認証不要でアクセス可能。
# パブリックリポジトリ作成
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 公式
- Amazon ECR User Guide
- ECR Enhanced Scanning with Inspector
- Cross-Region Replication
- Image Usage Status
ブログ・ホワイトペーパー
- AWS Containers Blog
- ECR in Multi-Account and Multi-Region Architectures
- How to Use Inspector for ECR Scanning
標準・仕様
比較リファレンス
実装例・チェックリスト
フェーズ 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 でグローバル展開に対応。
主要なポイント:
- セキュリティ重視:Enhanced Scanning で OS・言語パッケージの脆弱性を自動検知
- IAM 統合:AWS Identity & Access Management で細粒度権限管理
- スケーラビリティ:無制限ストレージ・100,000 イメージ/リポジトリ対応
- マルチリージョン:Cross-Region Replication で自動同期・グローバル対応
- コスト効率:Lifecycle Policy でストレージ最適化・CloudFront CDN で高速配信
- 可視性:Image Usage Status で実装上のイメージを優先対応
Docker Hub・GHCR との比較で、特に AWS メインインフラ・脆弱性管理重視・マルチリージョン展開が必要な場合に ECR は最適選択。
最終更新:2026-04-26 バージョン:v2.0 著者:Claude (Anthropic) — i のメモ拡充プロジェクト