AWS EC2 : Comment utiliser l’outil d’Amazon

-
5
 m de lecture
-

Faisant partie des premiers services proposés par AWS, EC2 a vu le jour en 2006 et il n’y a aucun doute sur le fait qu’AWS s’est imposé dans le marché du Cloud grâce à lui. Mais que fait donc ce service ? Quels sont les cas d’usage ? C’est ce que nous allons observer avec cet article.

Qu’est ce que le service EC2 de AWS ?

Le service EC2, qui signifie Elastic Compute Cloud, donne la possibilité à toute personne de louer des serveurs.

Jadis, les entreprises étaient contraintes d’avoir des serveurs physiques pour différents usages tels que l’hébergement d’un site ou le stockage de bases de données. Cependant, ces ressources ont un coût. Il y a évidemment le coût d’achat, mais nous avons aussi le coût lié à la maintenance de ces serveurs

Avec EC2, les entreprises n’ont plus besoin de se préoccuper de soucis techniques qui pourraient arriver sur leurs serveurs, AWS. De ce fait, l’entreprise obtient un gain de coût mais aussi de temps.

Nous augmentons aussi notre gain de temps, avec ce que nous allons nommer la configuration de notre machine. En effet, si nous avions nos propres serveurs, il y a un temps de configuration à prendre en compte avant qu’ils soient fonctionnels. Au contraire avec EC2, en un enchaînement de clic, nous avons une machine opérationnelle.

Enfin, il est encore possible de réduire nos coûts en s’adaptant à nos besoins, via des forfaits variés. Par exemple, imaginons que nous hébergeons un site et que chaque début de mois, il y ait un afflux important dessus. Pour un bon fonctionnement du site, nous avons besoin de plus de puissance, ensuite ce trafic important terminé, nous pouvons revenir à une machine moins puissante. 

Par ailleurs, il est aussi facile de stopper notre instance EC2 rapidement lorsque nous n’en avons plus besoin et de la rallumer aussitôt. Ainsi, nous faisons des économies car nous payons uniquement à l’utilisation(pay as you go), il s’agit d’un concept clé du Cloud Computing. En énumérant les différentes possibilités avec une instance EC2, nous comprenons la présence du mot Elastic dans EC2.

Voici une image qui montre le cycle de vie d’une machine EC2 : 

Composants clés d’Amazon ECS​

Amazon ECS repose sur plusieurs composants clés qui offrent une plateforme robuste pour l’orchestration de conteneurs. Il est essentiel de comprendre ces composants pour tirer parti  du service.

Composants Amazon ECS
Cluster :​

Il s’agit d’un regroupement logique de ressources où les tâches ECS sont exécutées. Ces clusters peuvent être composés d’une ou plusieurs instances EC2, ou vous pouvez opter pour Fargate, une option sans serveur, qui gère la provision des ressources pour vous.

Tâche :​

Une tâche est l’unité de travail la plus petite et la plus fondamentale d’Amazon ECS. Chaque tâche est une instance d’une définition de tâche et contient un ou plusieurs conteneurs qui sont déployés ensemble sur la même instance EC2 ou Fargate.

Définition de tâche :​

Ce sont des modèles pour vos tâches. Elles décrivent les paramètres pour les conteneurs qui sont lancés ensemble en tant que tâche. Les paramètres incluent des informations telles que l’image à utiliser, la quantité de CPU et de mémoire à allouer à chaque conteneur, les ports à ouvrir pour votre application, et bien d’autres.

Service :​

Un service est utilisé pour gérer des tâches à long terme. Il maintient le nombre souhaité d’instances simultanées d’une tâche définie dans votre cluster. Si une tâche ou un service échoue, le service planifie une autre tâche pour la remplacer et ainsi maintenir le nombre souhaité de tâches dans le service.

Comment lance-t-on une instance sur l'EC2 de AWS ?

Comme dit précédemment, il suffit de quelques clics pour utiliser une machine virtuelle mais voyons brièvement les différentes étapes pour démarrer une instance EC2.

La première étape est de sélectionner le type. Par type, nous entendons le système d’exploitation de votre machine. Nous avons encore le choix et ceci grâce aux AMI (Amazon Machine Images). Vous pouvez avoir une AMI de type Linux par exemple Ubuntu, Fedora et même RedHat, mais il est aussi possible d’avoir une machine virtuelle basée sur Windows Server et même prochainement nous pourrons en avoir basée sur macOS.

Une fois le type choisi, il faut déterminer la famille de votre machine. En effet, nous devons choisir le nombre de CPU, la mémoire vive, le type de stockage, le processeur. Dans chaque famille, les instances sont classées par taille. Plus la taille est grande, plus la machine est performante. Ci-dessous, nous avons un exemple de nom d’une machine.

Vous pouvez avoir une idée des caractéristiques proposées en observant les différentes familles d’instances.D’autres aspects restent à configurer mais nous n’allons pas les aborder ici car les paramètres par défaut suffisent.

Tous les paramètres de notre machine sont fixés. La seule étape qu’il nous reste est de paramétrer la sécurité. C’est notamment dans cette section que nous allons voir comment nous nous connectons dessus. Pour cela, il y a deux manières : 

  • À l’aide du protocole SSH, il faudra définir une paire de clés
  • À l’aide du service AWS Session Manager qui vous ouvrira un onglet sur votre navigateur et où vous pourrez opérer sur l’instance. 

Et voilà, vous pouvez utiliser votre instance EC2 ! 

Bénéfices liés à l’utilisation d’Amazon ECS​

Ce service offre une multitude d’avantages pour la gestion et le déploiement de conteneurs à grande échelle. En voici quelques uns :

benefices-amazon-ecs
Facilité d’utilisation :​

Il s’agit d’un regroupement logique de ressources où les tâches ECS sont exécutées. Ces clusters peuvent être composés d’une ou plusieurs instances EC2, ou vous pouvez opter pour Fargate, une option sans serveur, qui gère la provision des ressources pour vous.

Evolutivité :​

Une tâche est l’unité de travail la plus petite et la plus fondamentale d’Amazon ECS. Chaque tâche est une instance d’une définition de tâche et contient un ou plusieurs conteneurs qui sont déployés ensemble sur la même instance EC2 ou Fargate.

Flexibilité :

Ce sont des modèles pour vos tâches. Elles décrivent les paramètres pour les conteneurs qui sont lancés ensemble en tant que tâche. Les paramètres incluent des informations telles que l’image à utiliser, la quantité de CPU et de mémoire à allouer à chaque conteneur, les ports à ouvrir pour votre application, et bien d’autres.

Sécurité :​

S’intégrant avec AWS Identity and Access Management (IAM), vous permettant de définir des autorisations fines pour chaque tâche. De plus, ECS est compatible avec AWS PrivateLink, qui vous permet d’accéder à vos conteneurs sans exposer votre trafic à Internet.

Intégration avec l’écosystème AWS :​

Amazon ECS s’intègre avec de nombreux autres services AWS, tels que Elastic Load BalancingAmazon RDSAWS Lambda et S3. Cela permet des workflows fluides et une gestion simplifiée de vos applications.

Support pour les microservices :​

Amazon ECS supporte les architectures de microservices, facilitant le développement, le déploiement et l’évolutivité d’applications complexes.

Quelques exemples d’usage de l'EC2

Comme nous l’avons énoncé précédemment, un exemple classique de l’utilisation d’une machine virtuelle EC2 est l’hébergement d’un site. C’est le cas notamment du Studio de DataScientest, qui recense les meilleurs projets d’apprenants. Derrière cette jolie page, se cache simplement une instance EC2 avec bien sûr quelques fichiers de code. 

Nous pouvons aussi simplement l’utiliser comme environnement de développement. Une fois nos tests terminés, nous pouvons arrêter complètement notre machine mais aussi en rallumer une nouvelle pour tester des nouvelles fonctionnalités.

En Data Science, notamment en Deep Learning, il est nécessaire d’avoir une machine puissante pour pouvoir entraîner notre modèle sur des jeux de données volumineux, nous allons donc passer par EC2. De même, lorsque nous devons lancer un script python qui met du temps à s’exécuter.

Pour aller plus loin

Nous avons vu que les possibilités du service EC2 sont sans limites (à part celle du portefeuille). Toutefois, il devient plus compliqué d’utiliser uniquement une machine virtuelle pour certaines fonctionnalités et nous perdons du temps à solutionner des erreurs que nous pouvons rencontrer. Par exemple, nous avons dit qu’il était possible d’utiliser une instance EC2 pour stocker nos bases de données et nous pouvons avoir des difficultés pour la maintenir ou pour opérer dessus, c’est pourquoi AWS propose des services uniquement consacrés aux bases de données. Nous pouvons citer RDS qui est est utilisé pour les bases de données relationnelles, mais il y a aussi DynamoDB, pour une base de données NoSQL. 

Si vous voulez en apprendre plus sur le lancement de machines virtuelles avec AWS, mais aussi sur les différents services proposés par AWS, vous pouvez suivre la formation DataScientest pour être certifié Solution Architect

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.
Poursuivre la lecture

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?