Bien comprendre AWS EC2 Container Service
Certaines entreprises se jettent la tête la première dans les services de conteneurs dans le Cloud, mais la technologie, un forme ancienne de la virtualisation redevenue à la mode, ne fait pas l’unanimité chez tous.
La conteneurisation semble être aujourd’hui la norme dans le Cloud. Les utilisateurs choisissent de plus en plus cette technologie pour renforcer la portabilité de leurs applications Cloud et améliorer leur efficacité. Dans ce contexte, Docker fait office de chef de file.
Cette forme de virtualisation n’est pourtant pas une nouvelle. Docker a contribué à ramener ce principe sur le devant de la scène. Pourtant la dernière génération de conteneurs n’est pas exempte de certaines bizarreries. Et comme avec les autres technologies, les administrateurs doivent évidemment considérer les coûts, la sécurité ainsi que leurs besoins spécifiques avant de se lancer à corps perdu dans Docker.
Pour aider les entreprises à s’y retrouver, voici ce qu’il faut retenir d’AWS Container Service.
Les conteneurs : qu’est-ce que c’est et quelle solution cela apporte-t-il ?
La virtualisation apportée par les conteneurs permet d’exécuter plusieurs applications sur un seul OS et d’en partager les ressources. En ce sens, un conteneur est différent d’une VM, qui s’exécute sur un OS dédié. Les conteneurs Linux au format Docker savent répondre plus rapidement aux pics de demande de ressources et démarrent en une fraction de seconde en s’appuyant sur le noyau de l’OS hôte. Cette particularité intéresse particulièrement les équipes de développements, dans leur processus de testing de code, par exemple.
Outre le fait de se lancer rapidement, le côté très léger des conteneurs permet à un serveur hôte d’exécuter des centaines de conteneurs simultanément, à condition toutefois que les ressources soient disponibles. De plus, les conteneurs offrent des possibilités de portabilité étendues – ils n’ont en effet pas besoin d’hyperviseur. Tant que le serveur cible dispose du même OS que l’original, les conteneurs migrent en toute transparence.
Ces possibilités ont suscité l’intérêt des professionnels de l’IT. Alors qu’ils ne sont que naissants, les conteneurs transforment déjà les datacenters et les opérations dans le Cloud.
Comment AWS met en scène les conteneurs ?
AWS propose d’exécuter des instances au sein de EC2 ou met à disposition son service de conteneurs. Amazon EC2 Container Service (ECS) prend en charge les conteneurs Docker dans AWS, permettant ainsi de facilement les dimensionner (up o down), et calculer et de contrôler la consommation CPU. Ces conteneurs AWS s’exécutent sur un cluster managé d’instances EC2, ECS automatisant l’installation et l’exploitation de l’infrastructure. AWS y apporte logiquement ses services, comme le load balancing, l’auto-scaling ou encore la gestion des identités et des accès.
On peut y définir des tâches pour relier par exemple des conteneurs à des services type ou à des microservices ; ce qui peut être très utile pour des workloads plus complexes. Les utilisateurs peuvent aussi créer un service pour dimensionner automatiquement leurs tâches. En bref, ECS élimine les aléas liés à la gestion des applications en conteneurs en les ajustant au plus prêt des contraintes en matière de CPU et de mémoire.
Quels sont les inconvénients à utiliser les conteneurs et ECS
La sécurité est un problème récurrent lorsqu’on aborde le sujet des conteneurs Docker. Ces conteneurs ont un accès root au système de fichiers, pouvant compromettre les opérations sur le serveur.
AWS tend à réduire les risques en matière de sécurité et de réseau, en permettant par exemple de mettre en place VPC (Virtual Private Cloud) ou des groupes de sécurité pour limiter justement l’accès aux ressources. Toutefois, cela n’élimine pas le problème de l’accès root ; VPC fait seulement office de couche d’isolation.
ECS propose aussi des fonctions avancées de sécurité – plus que Docker lui-même. Mais cela laisse encore sceptiques les clients les plus pointilleux. Certains préfèrent aussi avoir recours à des ordonnanceurs tiers, autres que les deux présents dans ECS. AWS a encore du travail à effectuer en ce sens.
Conteneur dans AWS : quelle est la prochaine étape ?
Il est encore très difficile de prédire les prochaines orientations. Mais les promesses en matière de portabilité sont très séduisantes. Mais pouvoir exécuter un même conteneur sur n’importe quelle VM pourrait être bien être plus facile à dire qu’à faire. Quant aux problèmes de sécurité, les conteneurs Docker n’ont pas le même niveau d’isolation que les VM, même si installer un conteneur au dessus d’une VM peut minimiser les risques.
Reste aussi qu’on ne connaît pas encore toutes les limites des technologies de conteneurs. Pouvoir isoler certains éléments de l’application dans des microservices permet de protéger l’application, mais encore une fois, les inquiétudes semblent encore dépasser les certitudes.
ECS a été le premier service Cloud à supporter Docker, mais des améliorations sont encore possibles. Tracer les conteneurs sur ECS se limitent aux logs, et peut donc déboucher sur une gestion difficile si l’on dispose de nombreux conteneurs. Sans parler des coûts induits. La console AWS Management Console ainsi que des outils tiers peuvent faire remonter des informations sur le niveau d’utilisation du compute ainsi que sur les coûts.
Les clients ont aussi eu des problèmes pour faire tourner Elastic Beanstalk avec ECS. Toutefois, avec cette popularité autour des conteneurs, Docker et AWS vont assurément s’attaquer à ses problèmes et répondre aux besoins des clients, de plus en plus nombreux.
Traduit et adapté par la rédaction