Amazon ECR
Containers Cloud Practitioner Solutions Architect Associate

Amazon ECR

Amazon Elastic Container Registry

Zarządzany rejestr obrazów kontenerów na AWS. Przechowuj, skanuj i wdrażaj obrazy Docker w pełni zintegrowane z ECS, EKS i Fargate.

Amazon ECR (Elastic Container Registry) to w pełni zarządzany rejestr obrazów kontenerów Docker i OCI. Działa jak prywatny Docker Hub zintegrowany z ekosystemem AWS - przechowujesz obrazy, skanujesz je pod kątem podatności i wdrażasz bezpośrednio do ECS, EKS czy Fargate.

ECR eliminuje konieczność utrzymywania własnego rejestru kontenerów. Obrazy są automatycznie szyfrowane, replikowane w ramach regionu i dostępne z minimalnym opóźnieniem dla serwisów AWS. Jeśli budujesz aplikacje kontenerowe na AWS - ECR to naturalne miejsce na Twoje obrazy.

Czy wiesz, ze...

ECR przechowuje obrazy w warstwach (layers). Jeśli masz 10 obrazów opartych na tym samym bazowym Alpine Linux, warstwa bazowa jest przechowywana tylko raz - oszczędzasz storage i przyspieszasz pobieranie.

Pro Tip

Zawsze włączaj scanOnPush przy tworzeniu repozytorium. Kosztuje to niewiele, a automatycznie wykryjesz podatności w obrazach zanim trafią na produkcję. Dodaj lifecycle policy, żeby nie płacić za setki starych wersji obrazów.

Amazon Elastic Container Registry (ECR) to w pelni zarzadzany rejestr obrazow kontenerowych, zintegrowany z ECS, EKS i Lambda. ECR przechowuje, zarzadza i wdraza obrazy Docker (OCI). Oferuje skanowanie podatnosci, szyfrowanie at-rest, lifecycle policies do automatycznego czyszczenia starych obrazow oraz replikacje miedzy regionami. ECR eliminuje potrzebe utrzymywania wlasnego rejestru kontenerow.

1

Tworzenie repozytorium

Repozytorium ECR to logiczny kontener na obrazy Docker - analogicznie do repozytorium na Docker Hub. Kazde repozytorium ma unikalna nazwe w obrebie konta i regionu, np. my-app/backend. Przy tworzeniu konfigurujesz: tag immutability (czy tagi moga byc nadpisywane), skanowanie obrazow (manual lub scan on push), szyfrowanie (AES-256 domyslne lub KMS). URI repozytorium ma format: {account_id}.dkr.ecr.{region}.amazonaws.com/{repo_name}.

2

Konfiguracja lifecycle policies

Lifecycle policies automatycznie usuwaja stare obrazy wedlug zdefiniowanych regul, co kontroluje koszty przechowywania. Reguly moga byc oparte na: wieku obrazu (np. usun obrazy starsze niz 30 dni), liczbie obrazow (np. zachowaj ostatnie 10), statusie tagu (tagged vs untagged). Reguly sa ewaluowane w kolejnosci priorytetu. Typowa konfiguracja: usun untagged images po 1 dniu, zachowaj ostatnie 20 tagged images. Bez lifecycle policies repozytorium rosnie w nieskonczonosc.

3

Push obrazu (docker push)

Proces push wymaga trzech krokow: (1) autentykacja - aws ecr get-login-password | docker login, token jest wazny 12 godzin, (2) tagowanie obrazu URI repozytorium ECR - docker tag my-app:latest {ecr-uri}:latest, (3) push - docker push {ecr-uri}:latest. Kazdy push wysyla tylko warstwy (layers), ktorych jeszcze nie ma w rejestrze - dzieki deduplication transfer jest szybki. W CI/CD pipeline uzyj aws ecr get-login-password w kroku autentykacji i cache layers miedzy buildami.

4

Pull obrazu

Pull pobiera obraz z ECR do lokalnego srodowiska lub serwisu AWS. ECS, EKS i Lambda maja natywna integracje - wystarczy podac URI obrazu w definicji taska/poda. Dla EC2 lub lokalnego srodowiska potrzebna jest autentykacja docker login. ECR wspiera VPC Endpoints (PrivateLink) - pull z instancji w VPC nie przechodzi przez internet, co poprawia bezpieczenstwo i obniza koszty transferu. Pull jest bezplatny w obrebie tego samego regionu.

5

Skanowanie podatnosci

ECR oferuje dwa tryby skanowania: Basic scanning (darmowy, oparty na bazie CVE Clair - skanuje warstwy OS) i Enhanced scanning (platny, powered by Amazon Inspector - skanuje takze pakiety jezykowe: npm, pip, Maven). Scan on push automatycznie skanuje kazdy nowy obraz. Wyniki skanowania sa dostepne w konsoli, API i jako zdarzenia EventBridge - mozesz zbudowac pipeline, ktory blokuje deploy obrazow z krytycznymi podatnosciami.

6

Cross-region i cross-account replication

Replication rules automatycznie kopiuja obrazy do innych regionow lub kont AWS. Cross-region replication jest kluczowa dla disaster recovery i multi-region deployments - obraz pushowany w eu-west-1 automatycznie pojawia sie w us-east-1. Cross-account replication pozwala wspoldzielic obrazy miedzy kontami (np. dev -> staging -> prod) bez recznego kopiowania. Konfiguracja na poziomie rejestru (registry level), nie pojedynczego repozytorium.

Sprawdzone praktyki zarzadzania obrazami kontenerowymi w ECR - od lifecycle policies po strategie bezpieczenstwa i optymalizacje kosztow.

Lifecycle policies - kontroluj koszty przechowywania

Skonfiguruj lifecycle policies od pierwszego dnia - bez nich repozytorium rosnie bez limitu. Minimalna konfiguracja: usun untagged images po 1 dniu (to artefakty z nieudanych buildow) i zachowaj ostatnie N tagged images (np. 20-50 w zaleznosci od czestotliwosci deployow i potrzeby rollbacku). Dla srodowisk dev/staging agresywniejsze limity (10 obrazow), dla produkcji wiecej (30-50). Monitoruj koszt przechowywania w Cost Explorer - ECR kosztuje $0.10/GB/miesiac.

Poczatkujacy

Immutable tags dla produkcji

Wlacz tag immutability na repozytoriach produkcyjnych. Zapobiega to nadpisaniu istniejacego tagu nowym obrazem - jezeli tag v1.2.3 juz istnieje, push z tym samym tagiem zostanie odrzucony. Bez immutability ktos moze przypadkowo nadpisac obraz produkcyjny, a rollback do tego samego tagu nie przywroci poprzedniej wersji. Uzywaj semantic versioning (v1.2.3) lub git SHA jako tagow. Tag latest nie powinien byc uzywany w produkcji.

Poczatkujacy

ECR Public dla open source

ECR Public Gallery (public.ecr.aws) to publiczny rejestr dla obrazow open source i wspoldzielonych. W przeciwienstwie do prywatnego ECR, obrazy sa dostepne bez autentykacji. Uzyj go do: publikowania narzedzi i bibliotek open source, wspoldzielenia base images w organizacji, udostepniania obrazow partnerom. ECR Public ma oddzielny pricing i limity transferu. Kazdy obraz ma URI w formacie public.ecr.aws/{alias}/{repo}:{tag}.

Zaawansowany

Pull-through cache dla Docker Hub

Pull-through cache rules pozwalaja cachowac obrazy z Docker Hub (i innych publicznych rejestrow) w Twoim prywatnym ECR. Zamiast docker pull nginx, uzywasz {account}.dkr.ecr.{region}.amazonaws.com/docker-hub/nginx. Pierwszy pull pobiera z Docker Hub i cachuje w ECR, kolejne pull bierze z cache. Eliminuje to limity rate limiting Docker Hub (100 pulls/6h dla anonimowych, 200 dla zalogowanych) i przyspiesza buildy w CI/CD.

Zaawansowany

Scan on push - automatyczne skanowanie

Wlacz scan on push na wszystkich repozytoriach - kazdy nowy obraz jest automatycznie skanowany pod katem podatnosci. Dla produkcji rozwaaz Enhanced scanning (Amazon Inspector) - skanuje nie tylko pakiety OS, ale takze zaleznosci jezykowe (npm, pip, Maven, Go modules). Zintegruj wyniki z EventBridge: zdarzenie ECR Image Scan Complete moze triggerowac Lambda, ktora blokuje deployment jezeli znajdzie podatnosci CRITICAL lub HIGH.

Poczatkujacy

Cross-account access z resource policies

Udostepnij repozytorium ECR innym kontom AWS przez resource-based policy na repozytorium. Typowy scenariusz: konto CI/CD builduje i pushuje obrazy, konta dev/staging/prod pulluja. Policy na repozytorium daje ecr:GetDownloadUrlForLayer, ecr:BatchGetImage i ecr:BatchCheckLayerAvailability kontom docelowym. Alternatywnie uzyj cross-account replication rules do automatycznego kopiowania obrazow do rejestrow w innych kontach.

Zaawansowany

Screenshoty z AWS Console

Wkrotce pojawia sie tu zrzuty ekranu pokazujace jak korzystac z Amazon ECR bezposrednio w konsoli AWS.

Do czego sluzy Amazon ECR?

01

Pipeline CI/CD dla kontenerów

Builduj obrazy Docker w CodeBuild, pushuj do ECR i automatycznie wdrażaj na ECS/EKS przez CodePipeline.

02

Przechowywanie obrazów produkcyjnych

Centralne repozytorium obrazów dla wszystkich środowisk: dev, staging, produkcja. Z wersjowaniem i tagami.

03

Skanowanie bezpieczeństwa

Automatyczne skanowanie obrazów przy pushu - ECR wykrywa znane podatności (CVE) i raportuje ich poziom zagrożenia.

04

Udostępnianie obrazów publicznie

ECR Public Gallery pozwala publikować obrazy open-source dostępne dla wszystkich, jak na Docker Hub.

Co musisz wiedziec?

Repozytorium

Kontener na obrazy Docker o tej samej nazwie, ale różnych tagach/wersjach. Np. repozytorium "moja-aplikacja" z tagami :latest, :v1.0, :v1.1.

Obraz (Image)

Paczka zawierająca aplikację i wszystkie jej zależności. Identyfikowana przez digest (SHA256) i opcjonalnie tagi tekstowe.

Image Scanning

ECR skanuje obrazy pod kątem znanych podatności (CVE). Basic scanning jest darmowy, Enhanced scanning (przez Amazon Inspector) daje głębszą analizę.

Lifecycle Policy

Reguły automatycznego czyszczenia starych obrazów. Np. "usuń obrazy starsze niż 30 dni" lub "zachowaj tylko 10 najnowszych wersji".

Cross-Region Replication

Automatyczna replikacja obrazów do innych regionów AWS. Przydatne dla aplikacji multi-region i disaster recovery.

ECR Public

Publiczny rejestr obrazów dostępny pod gallery.ecr.aws. Alternatywa dla Docker Hub bez limitów pull rate.

Architektura: Amazon ECR w pipeline CI/CD kontenerow

Pipeline budowy i wdrazania obrazow kontenerowych, w ktorym ECR pelni role centralnego rejestru. Developer pushuje kod, CI/CD buduje obraz i pushuje do ECR, a serwisy compute pulluja gotowe obrazy. Skanowanie podatnosci generuje zdarzenia do EventBridge.

Developer Commituje Dockerfile i kod zrodlowy do repozytorium Git
git push trigger
Docker Build (CI/CD)
Docker Build (CI/CD) CodeBuild lub GitHub Actions buduje obraz z Dockerfile
docker push
Amazon ECR
Amazon ECR Przechowuje obrazy z lifecycle policies, skanowaniem i replikacja
docker pull
ECS / EKS / Lambda
ECS / EKS / Lambda Serwisy compute pulluja obrazy z ECR do uruchomienia kontenerow
scan results
EventBridge
EventBridge Odbiera zdarzenia scan complete i triggeruje akcje (np. blokada deploy)
Scan on push automatycznie sprawdza kazdy nowy obraz pod katem podatnosci CVE.
Lifecycle policies zapobiegaja niekontrolowanemu wzrostowi kosztow przechowywania obrazow.
Cross-region replication zapewnia dostepnosc obrazow w wielu regionach dla multi-region deployments.

Ile kosztuje Amazon ECR?

Storage

Płacisz za przechowywanie obrazów w repozytoriach. Warstwy współdzielone między obrazami nie są liczone podwójnie.

$0.10/GB/mies. za prywatne repo

Transfer danych

Pobieranie obrazów do serwisów AWS w tym samym regionie jest darmowe. Transfer poza region jest płatny.

Pull z ECS/EKS w tym samym regionie: $0

ECR Public

Darmowy storage do 50 GB i 500 GB transferu miesięcznie dla anonimowych użytkowników.

50 GB storage + 500 GB transfer gratis

Przyklady AWS CLI

Zaloguj Docker do ECR

Uwierzytelnia Docker CLI z rejestrem ECR w Twoim koncie

aws ecr get-login-password --region eu-central-1 | \
  docker login --username AWS --password-stdin \
  123456789012.dkr.ecr.eu-central-1.amazonaws.com

Utwórz repozytorium

Tworzy nowe prywatne repozytorium z włączonym skanowaniem obrazów

aws ecr create-repository \
 --repository-name moja-aplikacja \
 --image-scanning-configuration scanOnPush=true \
 --encryption-configuration encryptionType=AES256

Pushuj obraz do ECR

Taguje i pushuje lokalny obraz Docker do repozytorium ECR

docker tag moja-aplikacja:latest \
  123456789012.dkr.ecr.eu-central-1.amazonaws.com/moja-aplikacja:latest

docker push \
  123456789012.dkr.ecr.eu-central-1.amazonaws.com/moja-aplikacja:latest

Wylistuj obrazy w repozytorium

Pokazuje wszystkie obrazy z tagami i datami w danym repozytorium

aws ecr describe-images \
 --repository-name moja-aplikacja \
 --output table

Quiz: Amazon ECR

Sprawdz czy dobrze rozumiesz podstawy. Kliknij odpowiedz — feedback pojawi sie od razu.

Twoj wynik: 0 / 3

1. Co robi Image Scanning w Amazon ECR?

2. Ile kosztuje pobieranie obrazów z ECR do ECS w tym samym regionie?

3. Do czego służy Lifecycle Policy w ECR?

Chcesz poznac Amazon ECR w praktyce?

Darmowy kurs "AWS od podstaw" pokazuje jak uzywac Amazon ECR krok po kroku. Teoria + praktyka od zera.

Zacznij darmowy kurs Wszystkie serwisy