0Pricing
AWS Solutions Architect · Leçon

ECR : stockage et récupération d’images de conteneurs

Envoyez des images Docker vers Amazon ECR, appliquez des politiques de cycle de vie pour supprimer les anciennes images, puis récupérez-les de manière sécurisée dans des tâches ECS.

ECR : stockage et récupération d’images de conteneurs est une leçon AWS Solutions Architect gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage AWS Solutions Architect, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu’est-ce qu’Amazon ECR ?

Amazon Elastic Container Registry (ECR) est un registre d’images de conteneurs entièrement géré et compatible avec Docker. Il stocke, gère et déploie en toute sécurité des images de conteneurs dans AWS. ECR évite d’avoir à exploiter votre propre infrastructure de registre et s’intègre nativement à ECS, EKS, Lambda (images de conteneurs) et CodeBuild. Les images stockées dans ECR sont répliquées pour assurer une haute disponibilité et peuvent être analysées automatiquement afin de détecter les vulnérabilités de sécurité.

Dépôts ECR privés ou publics

ECR prend en charge deux types de dépôts : les dépôts privés d’Amazon ECR exigent une authentification AWS pour extraire les images ; ils conviennent parfaitement aux images d’applications propriétaires. L’accès est contrôlé par des politiques IAM et des politiques de ressources du dépôt. Les dépôts publics de la galerie publique ECR (public.ecr.aws) autorisent l’extraction sans authentification depuis n’importe quel emplacement sur Internet ; ils conviennent aux images de base libres, aux outils publics et aux images fournies par AWS (images de base Lambda, images AMI optimisées pour ECS). Les dépôts publics bénéficient d’un quota gratuit d’extractions, avec des limites de débit pour les requêtes non authentifiées.

# Create a private ECR repository
aws ecr create-repository \
  --repository-name 'myapp/backend' \
  --image-scanning-configuration scanOnPush=true \
  --image-tag-mutability IMMUTABLE

Authentification de Docker auprès d’ECR

Pour envoyer ou extraire des images ECR privées, Docker doit s’authentifier à l’aide d’informations d’identification AWS. Utilisez aws ecr get-login-password pour obtenir un jeton d’authentification temporaire, puis transmettez-le à docker login. Le jeton est valide pendant 12 heures. Dans les pipelines CI/CD, actualisez le jeton avant chaque envoi. Les agents de tâches ECS, Lambda et les nœuds de travail EKS s’authentifient automatiquement auprès d’ECR à l’aide de leur rôle IAM : aucune connexion manuelle n’est nécessaire pour les extractions effectuées lors de l’exécution dans les environnements AWS.

# Authenticate Docker CLI to ECR
aws ecr get-login-password --region us-east-1 | \
  docker login \
    --username AWS \
    --password-stdin \
    123456789012.dkr.ecr.us-east-1.amazonaws.com

Envoi d’images vers ECR

Flux standard pour envoyer une image vers ECR : (1) Build de l’image Docker en local ; (2) étiquetage de l’image avec l’URI du dépôt ECR (format : account.dkr.ecr.region.amazonaws.com/repo-name:tag) ; (3) envoi de l’image étiquetée. ECR stocke séparément chaque couche d’image et déduplique les couches communes entre les images, ce qui réduit les coûts de stockage. L’utilisation d’étiquettes immuables empêche leur remplacement et garantit ainsi que les versions d’images déployées sont stables et auditables.

# Build, tag, and push
docker build -t myapp/backend .
docker tag myapp/backend \
  123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3
docker push \
  123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp/backend:v1.2.3

Mutabilité des étiquettes d’image

Les étiquettes IMMUTABLE empêchent le remplacement d’une étiquette par une autre image. Lorsque la mutabilité des étiquettes est définie sur IMMUTABLE, l’envoi d’une nouvelle image vers une étiquette existante échoue : vous devez utiliser une nouvelle étiquette. Il s’agit d’une bonne pratique en production : elle garantit que :v1.2.3 désigne toujours exactement le même condensat d’image, ce qui permet des restaurations fiables et une bonne traçabilité. Utilisez des étiquettes MUTABLE uniquement pour les branches de développement ou l’étiquette pratique :latest dans les environnements hors production.

Analyse des images à la recherche de vulnérabilités

Activez l’analyse lors de l’envoi pour analyser automatiquement les images à la recherche de CVE connus lorsqu’elles sont envoyées. ECR utilise l’intégration avec Amazon Inspector (analyse améliorée) ou l’analyse de base intégrée, qui repose sur l’analyseur libre Clair. L’analyse améliorée fournit une analyse continue, et pas seulement lors de l’envoi, et couvre les paquets du système d’exploitation ainsi que ceux propres aux langages (Node.js, Python, Java). Consultez les résultats de l’analyse dans la console ECR ou via les notifications EventBridge destinées à votre équipe de sécurité.

# Enable enhanced scanning for a registry
aws ecr put-registry-scanning-configuration \
  --scan-type ENHANCED \
  --rules '[{"repositoryFilters": [{"filter": "*", "filterType": "WILDCARD"}], "scanFrequency": "CONTINUOUS_SCAN"}]'

Politiques de cycle de vie pour gérer les coûts des images

ECR facture le stockage par GB et par mois. Sans gestion, les anciennes images s’accumulent indéfiniment, ce qui augmente les coûts. Les politiques de cycle de vie font automatiquement expirer et suppriment les images selon des règles : par exemple, conserver uniquement les 10 dernières versions étiquetées ou supprimer les images non étiquetées âgées de plus de 7 jours. Les politiques de cycle de vie s’exécutent quotidiennement. Cela est particulièrement important dans les pipelines CI/CD qui envoient de nouvelles images à chaque validation et peuvent ainsi accumuler des centaines d’images par semaine.

aws ecr put-lifecycle-policy \
  --repository-name 'myapp/backend' \
  --lifecycle-policy-text '{
    "rules": [
      {
        "rulePriority": 1,
        "description": "Keep last 10 tagged images",
        "selection": {"tagStatus": "tagged", "tagPrefixList": ["v"], "countType": "imageCountMoreThan", "countNumber": 10},
        "action": {"type": "expire"}
      },
      {
        "rulePriority": 2,
        "description": "Delete untagged images after 7 days",
        "selection": {"tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 7},
        "action": {"type": "expire"}
      }
    ]
  }'

Accès aux images entre comptes

Pour extraire des images d’un dépôt ECR du compte A vers ECS/EKS/Lambda dans le compte B, configurez une politique de dépôt (politique fondée sur les ressources) sur le dépôt ECR du compte A, en accordant au principal IAM du compte B l’autorisation d’appeler ecr:GetDownloadUrlForLayer, ecr:BatchGetImage et ecr:BatchCheckLayerAvailability. Cela évite de devoir copier les images entre les comptes et permet une gestion centralisée des images avec une consommation distribuée.

Réplication ECR pour les déploiements multirégions

La réplication ECR copie automatiquement les images de votre registre principal vers des registres situés dans d’autres régions AWS, et éventuellement dans d’autres comptes. Lorsque des tâches ECS d’une autre région extraient une image, elles l’extraient du registre régional local, ce qui réduit les coûts de transfert de données et la latence d’extraction. Configurez les règles de réplication au niveau du registre en indiquant les dépôts à répliquer ainsi que les régions et comptes de destination. La réplication est asynchrone et s’effectue presque en temps réel.

aws ecr put-replication-configuration \
  --replication-configuration '{
    "rules": [{
      "destinations": [
        {"region": "eu-west-1", "registryId": "123456789012"},
        {"region": "ap-southeast-1", "registryId": "123456789012"}
      ],
      "repositoryFilters": [{"filter": "prod/*", "filterType": "PREFIX_MATCH"}]
    }]
  }'

Chiffrement ECR

ECR chiffre les images au repos à l’aide du chiffrement côté serveur. Par défaut, il utilise une clé gérée par AWS (AWS_MANAGED_KEY). Pour bénéficier d’un contrôle et d’une traçabilité supplémentaires, configurez une clé KMS gérée par le client (CMK). Avec une CMK, vous contrôlez la rotation de la clé, pouvez révoquer l’accès en la désactivant et auditer toutes les opérations de déchiffrement dans CloudTrail. Activez le chiffrement KMS lorsque la conformité réglementaire (PCI-DSS, HIPAA, FedRAMP) exige des clés de chiffrement contrôlées par le client.

Utilisation d’ECR avec ECS dans les pipelines CI/CD

Pipeline CI/CD complet pour ECS avec ECR : (1) le développeur envoie le code vers Git ; (2) CodeBuild construit l’image Docker et l’envoie vers ECR avec une étiquette contenant le SHA de la validation ; (3) CodePipeline met à jour la définition de tâche ECS avec le nouvel URI d’image ; (4) ECS effectue une mise à jour progressive du service en extrayant la nouvelle image depuis ECR. Les tâches ECS utilisent le rôle d’exécution de tâche pour s’authentifier automatiquement auprès d’ECR : aucun identifiant n’a besoin d’être géré dans le pipeline pour les extractions lors de l’exécution.

Vérification rapide

Vérifiez votre compréhension des concepts AWS Solutions Architect (SAA-C03) présentés dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que les dépôts privés ECR stockent des images de conteneurs avec un accès contrôlé par IAM, des étiquettes immuables pour assurer la stabilité en production et une analyse automatique des vulnérabilités avec Inspector. Les politiques de cycle de vie font automatiquement expirer les anciennes images et les images non étiquetées afin de maîtriser les coûts de stockage dans les environnements CI/CD actifs. Enfin, la réplication ECR copie les images vers d’autres régions et comptes pour les déploiements multirégions, avec une latence d’extraction réduite. Nous allons maintenant découvrir la mise à l’échelle automatique des services ECS et l’intégration de l’équilibrage de charge.

Questions Fréquemment Posées

La leçon « ECR : stockage et récupération d’images de conteneurs » est-elle gratuite ?

Oui — le texte complet de « ECR : stockage et récupération d’images de conteneurs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours AWS Solutions Architect, passe à CoddyKit PRO. Le cours AWS Solutions Architect comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « ECR : stockage et récupération d’images de conteneurs » ?

Envoyez des images Docker vers Amazon ECR, appliquez des politiques de cycle de vie pour supprimer les anciennes images, puis récupérez-les de manière sécurisée dans des tâches ECS. Tu pratiques AWS Solutions Architect avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer AWS Solutions Architect ?

Aucune expérience préalable n'est requise. AWS Solutions Architect sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « ECR : stockage et récupération d’images de conteneurs » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon AWS Solutions Architect ?

Oui. Chaque leçon AWS Solutions Architect inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Clusters ECS, définitions de tâches et services
  2. Type de lancement EC2 ou Fargate
  3. ECR : stockage et récupération d’images de conteneurs
  4. Mise à l’échelle automatique et équilibrage de charge des services ECS
← Retour à AWS Solutions Architect