Открыть сервис

Amazon Elastic Container Registry

Amazon Elastic Container Registry (Amazon ECR) — это полностью управляемый реестр контейнерных образов, предоставляемый в составе облачной платформы Amazon Web Services (AWS). ECR позволяет разработчикам и администраторам хранить, управлять и развёртывать образы Docker и образы, совместимые с Open Container Initiative (OCI), в безопасной и масштабируемой инфраструктуре AWS. Сервис интегрирован с другими компонентами AWS, такими как Amazon ECS, Amazon EKS и AWS Lambda, что упрощает процессы непрерывной интеграции и доставки (CI/CD).

История

Сервис Amazon ECR был анонсирован в ноябре 2015 года на конференции AWS re:Invent и стал доступен для всех пользователей AWS в декабре того же года. До появления ECR пользователи AWS были вынуждены использовать сторонние реестры контейнеров, такие как Docker Hub или собственные решения, развёрнутые на виртуальных машинах. ECR предложил встроенную интеграцию с экосистемой AWS, что снизило задержки при развёртывании и повысило безопасность за счёт использования IAM-политик.

В 2017 году была добавлена поддержка репликации образов между регионами AWS, а в 2019 году — функция сканирования уязвимостей на основе технологии Clair. В 2021 году ECR получил поддержку образов для архитектуры ARM, что было связано с ростом популярности процессоров AWS Graviton. По состоянию на 2025 год Amazon ECR остаётся одним из наиболее распространённых решений для хранения контейнерных образов в корпоративной среде.

Архитектура и принципы работы

Amazon ECR построен на базе распределённой объектной системы хранения Amazon S3, но предоставляет специализированный API для работы с контейнерными образами. Каждый образ хранится как набор слоёв, которые могут быть общими для нескольких образов, что экономит дисковое пространство. Пользователи взаимодействуют с ECR через стандартные инструменты командной строки (Docker CLI, Podman, containerd) или через AWS Management Console, AWS CLI и SDK.

Репозитории

ECR организует образы в репозитории — логические контейнеры, которые могут быть приватными или публичными. Публичные репозитории (Amazon ECR Public) доступны для всех пользователей без аутентификации, что позволяет распространять открытые образы. Приватные репозитории требуют авторизации через AWS Identity and Access Management (IAM). Каждый репозиторий имеет уникальный URI вида account-id.dkr.ecr.region.amazonaws.com/repository-name.

Аутентификация и авторизация

Для доступа к ECR используется токен авторизации, получаемый через AWS CLI командой aws ecr get-login-password. Этот токен передаётся в Docker командой docker login. IAM-политики позволяют гибко управлять правами: например, разрешить чтение образов только определённым ролям или запретить удаление тегов.

Ключевые возможности

Управление образами

ECR поддерживает версионирование образов через теги (tags) и уникальные цифровые идентификаторы (digest). Пользователи могут назначать теги, например latest, v1.0.0, или использовать семантическое версионирование. Сервис позволяет автоматически удалять старые образы на основе политик жизненного цикла, что предотвращает переполнение хранилища.

Сканирование на уязвимости

Встроенный механизм сканирования анализирует слои образа на наличие известных уязвимостей (CVE) на основе баз данных, обновляемых ежедневно. Сканирование может выполняться при каждой загрузке образа или по расписанию. Результаты отображаются в консоли AWS и могут быть интегрированы с AWS Security Hub и AWS Lambda для автоматического оповещения.

Репликация и крос-региональная доступность

ECR поддерживает репликацию образов между регионами AWS. Это позволяет уменьшить задержки при развёртывании в глобально распределённых приложениях и обеспечить отказоустойчивость. Репликация настраивается на уровне реестра и может быть как однонаправленной, так и двунаправленной.

Интеграция с CI/CD

ECR интегрируется с сервисами AWS CodePipeline, AWS CodeBuild и сторонними инструментами, такими как Jenkins, GitLab CI и GitHub Actions. При сборке образов в CodeBuild результат может автоматически загружаться в ECR. Это позволяет строить полностью автоматизированные конвейеры доставки.

Виды реестров

Amazon ECR предлагает два типа реестров:

Применение

Развёртывание микросервисов

ECR является основным хранилищем образов для сервисов оркестрации контейнеров AWS: Amazon ECS (Elastic Container Service) и Amazon EKS (Elastic Kubernetes Service). При создании задач (tasks) в ECS или подов в EKS образы загружаются непосредственно из ECR, что исключает необходимость в дополнительных прокси-серверах.

Бессерверные вычисления

Начиная с 2020 года, AWS Lambda поддерживает образы контейнеров до 10 ГБ, хранящиеся в ECR. Это позволяет запускать функции Lambda с произвольными зависимостями, включая системные библиотеки и большие модели машинного обучения.

Разработка и тестирование

Команды разработчиков используют ECR для хранения промежуточных сборок во время разработки. Интеграция с Git-репозиториями и системами CI/CD обеспечивает автоматическую загрузку образов после каждого коммита.

Ограничения и стоимость

Ограничения

Стоимость

Amazon ECR взимает плату за хранение данных (в гигабайтах в месяц) и за передачу данных (в гигабайтах) при загрузке образов в интернет. Передача данных между сервисами AWS в пределах одного региона обычно бесплатна. Сканирование уязвимостей для бесплатного уровня включает 100 сканирований в месяц; далее взимается плата за каждое сканирование. Публичный реестр ECR Public не взимает плату за хранение, но передача данных тарифицируется.

Сравнение с альтернативами

Amazon ECR конкурирует с такими решениями, как Docker Hub, Google Container Registry (GCR), Azure Container Registry (ACR) и self-hosted реестрами (Harbor, Nexus). Ключевые отличия ECR:

Критика

Несмотря на популярность, Amazon ECR имеет ряд недостатков, отмечаемых сообществом:

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →