Faire le premier pas
Introduction
Les conteneurs sont un élément clé du développement d'applications modernes. Ils sont devenus le moyen standard d'organiser les ressources de calcul et de gérer le contenu de vos déploiements d'applications.
Les conteneurs fournissent un environnement de calcul discret et reproductible. Ils permettent également de simplifier la gestion de l'empaquetage et des dépendances. Qu'il s'agisse d'orchestrer de très grandes propriétés multiclusters ou d'applications Web, ou même de tester votre travail et de réaliser une preuve de concept sur votre ordinateur portable, ils constituent un excellent moyen de démarrer et de créer des logiciels à déployer dans le cloud.
Ce guide de décision vous aide à démarrer et à choisir le bon service de conteneur AWS pour le développement de vos applications modernes.
Cet extrait de quatre minutes provient d'un enregistrement de 57 minutes d'une présentation de Vikram Venkataraman, responsable technique principal des comptes chez AWS, donnée lors du Sommet AWS DC 2022. Il fournit une vue d'ensemble des services de conteneurs AWS disponibles.
Durée de lecture
20 minutes
Objectif
Vous aider à déterminer le service de conteneurs AWS qui conviennent le mieux à votre organisation.
Niveau
Débutant
Date de la dernière mise à jour
26 avril 2023
Services abordés
Plus de guides de décision sur
Compréhension
Les conteneurs sont devenus une norme de facto pour l'empaquetage du code, des configurations et des dépendances des applications dans un seul artefact, car ils peuvent être déployés de manière cohérente dans plusieurs environnements.
Les conteneurs constituent un élément clé de toute stratégie de développement d'applications moderne. Pour fournir un certain contexte aux services AWS liés aux conteneurs, l'image de droite montre les options de conteneur AWS disponibles par couche (expliquées plus en détail dans cette vidéo).
Capacité
La capacité fait référence à l'unité de calcul sous-jacente sur laquelle vous allez déployer votre conteneur, à votre unité centrale de traitement (CPU) et à vos besoins en mémoire. La capacité est l'infrastructure sur laquelle le conteneur va fonctionner. Deux options s'offrent à vous en ce qui concerne la capacité de vos conteneurs sur AWS :
- Amazon Elastic Compute Cloud (Amazon EC2) vous permet d'exécuter vos conteneurs sur des machines virtuelles que vous gérez.
- AWS Fargate est un moteur de calcul sans serveur pour les conteneurs qui vous permet d'exécuter des conteneurs sans gérer l'infrastructure sous-jacente. Avec Fargate, vous pouvez lancer et mettre à l'échelle des conteneurs sans vous soucier des instances EC2 sous-jacentes.
Orchestration
Il n'est pas rare que les organisations gèrent non pas un ou quelques conteneurs, mais des milliers. Il devient difficile de gérer un environnement aussi complexe. Les services d'orchestration facilitent le déploiement et la gestion de ces applications. AWS propose trois services d'orchestration :
- Amazon Elastic Container Service (Amazon ECS) est un service d'orchestration de conteneurs entièrement géré, idéal pour les organisations qui recherchent un moyen simple et rentable de déployer et de gérer des applications conteneurisées.
- Amazon Elastic Kubernetes Service (Amazon EKS) est un service Kubernetes entièrement géré qui vous permet d'exécuter et de gérer des clusters Kubernetes sur AWS.
- Le service Red Hat OpenShift sur AWS (ROSA) est un service OpenShift entièrement géré qui vous permet d'exécuter et de gérer des clusters OpenShift sur AWS. C'est une bonne option pour les clients qui utilisent déjà OpenShift sur site.
Mise en service
Le provisionnement fournit une interface avec la couche d'orchestration des services. Chaque orchestrateur présente ses propres complexités. Les services de provisionnement masquent cette complexité et facilitent l'utilisation du service. Les services AWS de cette catégorie comprennent :
- AWS App Runner est un service entièrement géré qui crée automatiquement des images de conteneurs à partir de votre code source, déploie les conteneurs sur une infrastructure entièrement gérée et les met à l'échelle en fonction de la demande.
- AWS Elastic Beanstalk est un service entièrement géré qui facilite le déploiement, la gestion et la mise à l'échelle des applications Web. Elastic Beanstalk prend également en charge les conteneurs et fournit une plateforme entièrement gérée pour le déploiement et la mise à l'échelle d'applications conteneurisées.
- Amazon Lightsail est un moyen simple et économique de lancer et de gérer des serveurs privés virtuels, mais propose également un support pour les conteneurs, ce qui vous permet de créer et de déployer des applications conteneurisées à l'aide d'instances Lightsail.
Considération
Il est important de choisir un service de conteneurs qui corresponde aux exigences de votre application et à vos préférences opérationnelles. La section suivante décrit certains des principaux critères à prendre en compte lors du choix d'un service de conteneur, ainsi que les outils et services de soutien.
-
Service géré et frais d'exploitation
-
Caractéristiques des charges de travail
-
Portabilité d'application
-
Taille et compétences de l'organisation
-
Déploiement simple
-
Les entreprises peuvent choisir le cloud pour réduire leurs coûts opérationnels en normalisant les services gérés qui font peser la charge opérationnelle sur AWS. Des niveaux d'abstraction plus élevés permettent aux développeurs et aux opérateurs de se concentrer sur leurs propres activités à valeur ajoutée, plutôt que sur des tâches indifférenciées.
La création à l'aide de conteneurs sur AWS utilise des services présentant des niveaux d'abstraction plus élevés afin de transférer vers AWS les frais opérationnels liés à la maintenance de l'infrastructure.
-
Vous pouvez plus facilement faire des choix d'architecture en comprenant vos modèles de charge de travail. Il peut s'agir d'applications Web, de microservices basés sur des API, d'applications basées sur des événements, de diffusion en continu et de messagerie, de pipelines de données, d'automatisations informatiques, et bien d'autres choses encore. Certaines charges de travail seront plus performantes ou plus rentables dans un environnement à calcul unique que dans un autre type d'environnement.
-
De nombreux clients souhaitent s'assurer que leurs applications peuvent s'exécuter dans un environnement différent et être facilement migrées ou déplacées vers celui-ci. Il est important pour eux de pouvoir conserver leur choix, ou d'exécuter une application à la fois sur site et dans le cloud.
Nous vous recommandons de développer vos compétences en matière d'architectures logicielles et de créer des empaquetages qui vous permettent de transférer plus facilement une logique métier différenciée entre les services de calcul.
Les applications créées à l'aide de certaines technologies peuvent s'exécuter plus efficacement sur certains services de calcul que sur d'autres.
-
Les compétences de votre organisation représentent un facteur important lorsqu'il s'agit de choisir les services de conteneurs que vous utilisez. L'approche que vous adoptez nécessitera un certain investissement dans les équipes DevOps et SRE (Site Reliability Engineer). La création d'un pipeline automatisé pour déployer des applications est courante dans la plupart des développements d'applications modernes.
Certains choix augmentent le niveau de gestion. Par exemple, certaines entreprises disposent des compétences et des ressources nécessaires pour exécuter et gérer une implémentation de Kubernetes, car elles investissent dans de robustes équipes SRE chargées de gérer les clusters Kubernetes. Ces équipes s'occupent des mises à niveau fréquentes des clusters (par exemple, Kubernetes publie trois versions majeures par an et rend obsolètes les anciennes versions).
La taille de l'organisation est un facteur clé, car les plus petites start-ups peuvent disposer d'un personnel informatique restreint composé de personnes occupant plusieurs rôles, tandis que les grandes entreprises peuvent prendre en charge des centaines de charges de travail en production à la fois.
-
Les différents services de conteneurs AWS répondent à des besoins uniques en termes de complexité du déploiement. Voici comment chaque service est optimisé pour son propre rôle :
- AWS AppRunner offre la solution la plus simple, qui vous permet de déployer votre application sur l'Internet public sans gérer ni personnaliser l'infrastructure sous-jacente.
- Amazon ECS est un bon choix si vous avez besoin d'un peu plus de contrôle sur les configurations réseau et de sécurité sans pour autant sacrifier la mise à l'échelle ou les fonctionnalités.
- Amazon EKS peut vous permettre d'utiliser la flexibilité et le contrôle du déploiement et de l'orchestration des applications fournis par la technologie Kubernetes.
- AWS AppRunner offre la solution la plus simple, qui vous permet de déployer votre application sur l'Internet public sans gérer ni personnaliser l'infrastructure sous-jacente.
Choix
Maintenant que vous connaissez le critère d'évaluation de vos options de conteneurs, vous êtes prêt à choisir le ou les services de conteneurs AWS les mieux adaptés aux exigences de votre organisation.
Le tableau suivant indique les services optimisés à chaque circonstance. Utilisez le tableau pour déterminer quel est le service de conteneur le plus adapté à votre organisation et à votre cas d'utilisation.
Options de capacité
La capacité fait référence à l'unité calcul sous-jacente sur laquelle vous allez déployer votre conteneur, à vos besoins en matière de CPU et de mémoire. La capacité est l'infrastructure sur laquelle le conteneur va fonctionner.
Amazon EC2 est un service Web qui fournit une capacité de calcul redimensionnable, utilisant des serveurs dans les centres de données Amazon, que vous exploitez pour concevoir et héberger vos systèmes logiciels.
AWS Fargate est une technologie que vous pouvez utiliser avec Amazon ECS pour exécuter des conteneurs sans avoir à gérer les serveurs ou les clusters d'instances Amazon EC2. Avec Fargate, il n'est plus nécessaire de mettre en service, de configurer ou de mettre à l'échelle des clusters de machines virtuelles pour exécuter des conteneurs.
Orchestration de conteneurs
Les services d'orchestration de conteneurs gèrent quand et où vos conteneurs s'exécutent.
Service Red Hat OpenShift sur AWS (ROSA)
Le service Red Hat OpenShift sur AWS simplifie la création et l'exploitation de clusters Red Hat OpenShift sur AWS. Pour les applications déjà conteneurisées sur site sur OpenShift Container Platform, ROSA fournit une API familière et conserve la même chaîne d'outils de déploiement pour vous permettre de vous concentrer sur la refactorisation du modèle de données, et non sur l'ensemble de la pile d'applications.
Amazon Elastic Kubernetes Service
Amazon EKS vous aide à démarrer, exécuter et mettre à l'échelle des applications Kubernetes dans le Cloud AWS ou sur site.
Amazon ECS est un service d'orchestration de conteneurs entièrement géré qui permet de déployer, de gérer et de mettre à l'échelle des applications conteneurisées.
Mise en service
La catégorie de mise en service des services fournit une interface avec la couche d'orchestration des services. Chaque orchestrateur présente ses propres complexités. La mise en service des services masque cette complexité et permet aux clients d'utiliser plus facilement le service.
Avec Elastic Beanstalk, vous pouvez déployer et gérer rapidement des applications sur le Cloud AWS, sans devoir étudier l'infrastructure qui les exécute. Elastic Beanstalk réduit la complexité inhérente à la gestion sans pour autant sacrifier le choix ou le niveau de contrôle.
AWS App Runner vous permet de créer et d'exécuter des applications conteneurisées sur un service entièrement géré avec un minimum de connaissances en matière d'infrastructure.
Lightsail offre des instances de serveur privé virtuel (VPS), des conteneurs, du stockage, des bases de données et bien plus encore, faciles à utiliser et à un prix mensuel avantageux.
Outils
Outils permettant de fournir un registre de conteneurs ainsi que de conteneuriser et de migrer des applications existantes.
Amazon Elastic Container Registry
Amazon ECR est un registre de conteneurs entièrement géré qui offre un hébergement haute performance, afin que vous puissiez déployer de manière fiable des images d'applications et des artefacts n'importe où.
Sur site
Vous permet d'exécuter un plan de contrôle familier pour garantir une expérience cohérente quel que soit l'endroit où s'exécutent vos applications basées sur des conteneurs.
Tarification d'Amazon Elastic Container Service (ECS) Anywhere
Amazon ECS Anywhere est une fonctionnalité d'Amazon ECS qui vous permet d'exécuter et de gérer des charges de travail de conteneur sur votre infrastructure.
Amazon EKS Anywhere vous permet de créer et d'exploiter des clusters Kubernetes sur votre propre infrastructure.
Amazon EKS utilise Amazon EKS Distro, une distribution Kubernetes créée et gérée par AWS. Amazon EKS Distro facilite la création de clusters fiables et sécurisés.
Utilisation
Vous devriez maintenant avoir une compréhension claire de chaque service de conteneur AWS (et des outils et services AWS associés) et savoir lequel est le plus adapté à votre organisation et à votre cas d'utilisation.
Pour découvrir comment utiliser et en savoir plus sur chacun des services de conteneurs AWS disponibles, nous avons conçu un parcours permettant d'explorer le fonctionnement de chacun de ces services. La section suivante contient des liens vers une documentation détaillée, des didacticiels pratiques et des ressources pour vous aider à démarrer.
-
Amazon EC2
-
Amazon ECR
-
Amazon ECS
-
Amazon EKS
-
Amazon Lightsail
-
AWS App Runner
-
AWS Elastic Beanstalk
-
AWS Fargate
-
ROSA
-
Amazon EC2
-
Mise en route avec Amazon EC2
Accédez à l'ensemble de la documentation technique Amazon EC2, y compris des guides sur les instances Linux et Windows.
Guide de l'Utilisateur VM Import/Export
Découvrez comment importer des images de machines virtuelles (VM) depuis votre environnement de virtualisation existant vers Amazon EC2, puis les réexporter.Amazon EC2 Auto Scaling avec les instances Spot EC2
Découvrez comment créer une charge de travail sans état et tolérante aux pannes à l'aide d'Amazon EC2 Auto Scaling avec des modèles de lancement pour demander des instances Spot Amazon EC2.
Déployer une application Web sur Amazon EC2
Nous vous accompagnons dans la création d'une instance Amazon EC2 à l'aide d'AWS CDK, et dans le déploiement d'une application Web sur cette instance.
-
Amazon ECR
-
Qu'est-ce qu'Amazon Elastic Container Registry (ECR) ?
Un guide pour la mise en route et l'utilisation d'ECR.Amazon ECR dans les architectures multi-comptes et multirégions
Découvrez les principales considérations relatives aux architectures Amazon ECR couvrant tous les comptes AWS et les régions AWS, ainsi qu'aux architectures liées à des cas d'utilisation de clients hypothétiques.
Créez un pipeline avec une source Amazon ECR et un déploiement ECS vers CodeDeploy
Configurez un pipeline dans AWS CodePipeline qui déploie des applications de conteneur à l'aide d'un déploiement bleu/vert prenant en charge les images Docker.
-
Amazon ECS
-
Mise en route avec Amazon ECS
Ce guide fournit une présentation des outils disponibles pour accéder à Amazon ECS ainsi que des procédures d'introduction étape par étape pour exécuter des conteneurs.
Quelles sont les nouveautés et les prochaines étapes d'Amazon ECS
Découvrez les nouveautés depuis le lancement d'Amazon ECS Anywhere, les nouvelles fonctionnalités d'AWS Fargate et un aperçu des améliorations intéressantes apportées à Amazon ECS.
Déploiement d'Amazon Elastic Container Service (ECS)
Ce guide présente les options de déploiement d'Amazon ECS sur AWS et montre comment l'utiliser pour gérer une application conteneurisée simple.
Atelier Amazon ECS
Cet atelier est conçu pour former les personnes qui ne connaissent peut-être pas AWS Fargate, Amazon ECS et peut-être même le flux de travail des conteneurs Docker.
Déploiement de conteneurs Docker sur Amazon ECS
Découvrez comment exécuter une application modèle compatible avec Docker sur un cluster Amazon ECS derrière un équilibreur de charge. Vous pourrez tester l'application modèle et supprimer vos ressources pour éviter des frais.
-
Amazon EKS
-
Mise en route avec Amazon EKS
Apprenez-en plus sur Amazon Elastic Kubernetes Service (Amazon EKS), un service géré que vous pouvez utiliser pour exécuter facilement Kubernetes sur AWS sans devoir installer, exploiter ni maintenir votre plan de contrôle ou vos nœuds Kubernetes.
Déploiement d'Amazon Elastic Kubernetes Service (EKS)
Explorez les options de déploiement d'Amazon EKS sur AWS et découvrez comment l'utiliser pour gérer une application conteneurisée générale.
Déploiement de référence Amazon EKS Quick Start
À l'aide d'un guide de déploiement de référence Quick Start, nous fournissons des instructions étape par étape pour déployer des clusters Amazon Elastic Kubernetes Service (Amazon EKS).
Déployer une application Kubernetes
Dans ce didacticiel, vous allez apprendre à déployer une application conteneurisée vers un cluster Kubernetes géré par Amazon Elastic Container Service for Kubernetes (Amazon EKS).Atelier Amazon EKS
Exercices pratiques pour en savoir plus sur Amazon Elastic Kubernetes Service.
Consultez l'atelier »
-
Amazon Lightsail
-
Création, transmission et déploiement d'images de conteneurs
avec Amazon Lightsail
Ce didacticiel montre comment créer une image de conteneur sur votre ordinateur local à l'aide d'un fichier Dockerfile. Une fois votre image créée, vous pouvez la transmettre à votre service de conteneur Lightsail pour la déployer.
Centre de ressources Amazon Lightsail
Explorez les didacticiels, les vidéos et les liens vers la documentation des concepts de base de Lightsail.
Lancer une machine virtuelle Linux avec Amazon Lightsail
Dans ce didacticiel, vous créez une instance Amazon Linux dans Amazon Lightsail. Une fois l'instance opérationnelle, vous pouvez vous y connecter via SSH dans la console Lightsail à l'aide du terminal SSH basé sur le navigateur.
-
AWS App Runner
-
Mise en route avec AWS App Runner
Ce didacticiel explique comment configurer le code source et le déploiement, la version du service et l'exécution du service pour déployer votre application sur le service App Runner. Il montre également comment déployer une version de code, apporter une modification à la configuration et consulter les journaux.
Utilisez le didacticiel »
AWS App Runner : du code à une application web pouvant être mise à l'échelle et sécurisée en quelques minutes
Découvrez comment AWS App Runner a été conçu pour faciliter le déploiement d'applications web et d'API dans le cloud, quelle que soit la langue dans laquelle elles sont écrites, même pour les équipes qui n'ont pas d'expérience préalable en matière de déploiement et de gestion de conteneurs ou d'infrastructures.
Déployer une application web à l'aide d'AWS App Runner
Suivez ces instructions étape par étape pour déployer une application web conteneurisée à l'aide d'AWS App Runner. Commencez avec votre code source ou une image de conteneur. App Runner crée et déploie automatiquement l'application web et équilibre la charge du trafic avec chiffrement. -
AWS Elastic Beanstalk
-
Premiers pas avec Elastic Beanstalk
Ce guide explique comment créer, explorer, mettre à jour et supprimer une application Elastic Beanstalk.Options de déploiement avec AWS Elastic Beanstalk
Ce guide explique que vous pouvez utiliser AWS Elastic Beanstalk pour déployer, gérer et mettre à l'échelle des applications sans la charge opérationnelle liée à la gestion de l'infrastructure.
Didacticiels et exemples intermédiaires sur AWS Electric Beanstalk
Ces didacticiels s'adressent aux utilisateurs intermédiaires et peuvent ne pas contenir d'instructions concernant les étapes de base telles que l'inscription à AWS.
-
AWS Fargate
-
Mise en route avec AWS Fargate
Ce guide explique les bases d'AWS Fargate, une technologie que vous pouvez utiliser avec Amazon ECS pour exécuter des conteneurs sans avoir à gérer des serveurs ou des clusters d'instances Amazon EC2.
Mise en route avec la console à l'aide de conteneurs Linux sur AWS Fargate
Démarrez avec Amazon ECS sur AWS Fargate en utilisant le type de lancement Fargate pour vos tâches dans les régions où Amazon ECS prend en charge AWS Fargate.
Création d'un cluster avec une tâche Fargate Linux à l'aide de l'AWS CLI
Configurez un cluster, enregistrez une définition de tâche, exécutez une tâche Linux et réalisez d'autres scénarios courants dans Amazon ECS à l'aide de l'AWS CLI. -
ROSA
-
Mise en route avec le service Red Hat OpenShift sur AWS
Ce guide vous aidera à commencer à utiliser le service Red Hat OpenShift sur AWS.
Pourquoi utiliseriez-vous ROSA ?
Cette vidéo explique dans quels cas vous pouvez utiliser Red Hat OpenShift plutôt que Kubernetes standard et explore en profondeur ROSA sur AWS.
Exploration
Explorez les diagrammes d'architecture de référence pour les conteneurs sur AWS.
Consultez les livres blancs qui vous aideront à démarrer et à découvrir les bonnes pratiques.
Découvrez des solutions approuvées et des conseils architecturaux pour les cas d'utilisation courants des conteneurs.