Introduction aux conteneurs AWS

Les conteneurs sont des unités de développement logiciel standardisées qui vous permettent de regrouper le code, les configurations et les dépendances de votre application en un seul objet. Les conteneurs sont dérivés des principes de la virtualisation au niveau du système d'exploitation. Il vous permet d'exécuter l'application et ses dépendances dans des processus isolés des ressources, ce qui garantit des déploiements rapides, fiables et cohérents dans n'importe quel environnement.

Types de conteneurs

Les outils de gestion de conteneurs peuvent être classés en trois types: registre, orchestration et calcul. Les services de registre vous aident à stocker et à gérer en toute sécurité vos images de conteneur. Orchestration gère quand et où vos conteneurs s'exécutent. Et les moteurs de calcul alimentent vos conteneurs. Toutes les infrastructures sous-jacentes sont prises en charge par AWS. Les conteneurs rendent les développements et les déploiements faciles et efficaces.

1. Registre

Registre des conteneurs élastiques Amazon (ECR)

Il s'agit d'un registre de conteneurs Docker hautement évolutif, hautement disponible, hautement sécurisé et entièrement géré. Il aide les développeurs à stocker, gérer et déployer efficacement les images de conteneurs Docker. Amazon ECR est intégré à Amazon Elastic Container Service (ECS), ce qui simplifie le déploiement. Amazon ECR n'est payable que pour la quantité de données que vous stockez dans vos référentiels et les données transférées sur Internet.

Exemple de création d'image Docker d'une application Web simple et de la pousser dans Amazon ECR:

  1. Créez un fichier, Dockerfile.

  1. Modifiez le Dockerfile.

  1. Créez une image Docker.

  1. Vérifiez l'image Docker en l'exécutant.

Production:

  1. Exécutez l'image nouvellement créée.

  1. Pointez votre navigateur sur http://locallhost.com/ et le résultat sera:

  1. Arrêtez le conteneur Docker en tapant Ctrl + c.
  2. Poussez votre image vers Amazon ECR. Créez un référentiel Amazon ECR pour stocker l'image.

Production:

  1. Marquez l'image ecr-example avec la valeur Uri.

  1. Exécutez la commande d'authentification de connexion Docker pour votre registre.

  1. Exécutez la commande de connexion Docker.
  2. Poussez l'image vers Amazon ECR avec le référentiel Uri

2. Orchestration

Amazon Elastic Container Service (ECS)

Il s'agit d'un service de gestion de conteneurs entièrement géré, hautement évolutif et hautes performances. Il prend en charge les conteneurs Docker et permet aux utilisateurs d'exécuter efficacement l'application sur un cluster géré d'instances EC2. Les installations et les opérations d'orchestration de conteneurs sont gérées par AWS.

Exemple de déploiement de conteneurs Docker sur Amazon ECS:

  1. Amazon ECS - Configuration de la première exécution : il vous permettra de créer des clusters et de lancer des exemples d'applications Web. Vous allez entrer dans la console Amazon ECS et lancer l'assistant. Vous pouvez également utiliser Amazon ECR pour créer un référentiel d'images et y envoyer l'image.

Sélectionnez l'option et sélectionnez Continuer.

  1. Création de définition de tâche: c'est le modèle de votre application. Vérifiez les valeurs par défaut et sélectionnez l'étape suivante.

  1. Configuration du service: le service lance et conserve des copies de la définition de tâche dans votre cluster.
  • Nom du service: AWS fournit par défaut un exemple d'application Web «Hello World» basé sur le Web.
  • Nombre de tâches souhaité: la valeur par défaut est 1, pour le niveau gratuit AWS.
  • Elastic Load Balancing: vous pouvez utiliser un équilibreur de charge avec votre service.
  • Nom du conteneur: Port hôte: sélectionnez Simple-app : 80 et par défaut les champs restants.

Sélectionnez Rôle IAM de service si vous en avez déjà dans la liste déroulante ou Amazon ECS créera un rôle de service ECS par défaut.

Passez en revue vos entrées et sélectionnez l'étape suivante.

  1. Configuration de cluster
  • Nom du cluster: le nom par défaut est sample-cluster .
  • Type d'instance EC2: le type par défaut est t2.micro pour le niveau gratuit AWS.
  • Un certain nombre d'instances: la valeur par défaut est 1, pour le niveau gratuit AWS.
  • Paire de clés: vous pouvez continuer en en sélectionnant une - Impossible de SSH .
  • Groupe de sécurité: n'importe où par défaut. Il permet l'accès à partir d'Internet entier.
  • Rôle IAM de l'instance de conteneur: sélectionnez-en un si vous en avez déjà dans la liste déroulante ou

Amazon ECS en créera un par défaut.

Sélectionnez Vérifier et lancer.

  1. Lancer et afficher les ressources

Vous pouvez revoir la définition de votre tâche, la configuration de la tâche et les configurations de cluster avant de lancer.

Sélectionnez Lancer l'instance et exécuter le service.

Une fois le lancement terminé, sélectionnez Afficher le service.

  1. Ouvrez l'exemple d'application: vous pouvez vérifier et exécuter votre exemple d'application en pointant votre navigateur sur le nom DNS de l'équilibreur de charge.

Ouvrez la page d'exemple d'application Web et sélectionnez votre nom d'équilibreur de charge.

Copiez le nom DNS ELB et collez-le dans un nouveau navigateur et appuyez sur Entrée sur votre clavier.

Vous pouvez afficher votre exemple d'application.

Vous pouvez également nettoyer vos ressources à tout moment pour éviter des frais inutiles.

Service Amazon Elastic Kubernetes (EKS)

Il vous permet de gérer, déployer et mettre à l'échelle facilement des applications conteneurisées à l'aide de Kubernetes sur AWS. Il exécute le service Kubernetes sur plusieurs zones AWS pour éliminer un seul point d'erreur. Amazon EKS est une intégration Kubernetes certifiée, vous pouvez facilement migrer une application exécutée sur n'importe quel environnement Kubernetes standard vers AWS EKS.

3. Calculer

Amazon Elastic Compute Cloud (Amazon EC2)

Il s'agit d'une capacité de calcul sécurisée et redimensionnable dans le cloud qui exécute des conteneurs sur des infrastructures de machines virtuelles avec un contrôle total sur la mise à l'échelle et la configuration. Il vous donne un contrôle complet de vos ressources informatiques. Il réduit le temps requis pour obtenir et démarrer de nouvelles instances de serveur à seulement quelques minutes. Amazon EC2 fournit aux développeurs les outils pour créer des applications résistantes aux pannes.

Exemple: installez un serveur Web LAMP avec l'AMI Amazon Linux.

Cet exemple vous aide à installer un serveur Web Apache avec prise en charge PHP et MySQL sur votre instance Amazon Linux (également appelé serveur Web LAMP).

  1. Connectez-vous à l'instance Linux.
  2. Mettez à jour les packages logiciels, le cas échéant.

  1. Installez le serveur Web Apache, MySQL et les packages logiciels PHP à l'aide de la commande yum install.

  1. Démarrez le serveur Web Apache.

  1. Configurez le serveur Web Apache pour qu'il démarre à chaque démarrage du système.

  1. Vérifiez que httpd est activé.

  1. Ajoutez une nouvelle règle de sécurité entrante avec les valeurs suivantes:
  • Type: HTTP
  • Protocole: TCP
  • Plage de ports: 80
  • Source: personnalisé
  1. Testez le serveur Web, en tapant l'adresse DNS dans un navigateur Web.
  2. Définissez les autorisations de fichier nécessaires si nécessaire.
  3. Testez votre serveur LAMP.
  4. Sécurisez le serveur de base de données.

AWS Fargate

Il s'agit d'un moteur de calcul sans serveur pour Amazon ECS qui vous permet d'exécuter des conteneurs sans gérer de serveurs. Amazon s'occupe de toutes les gestions de serveurs sous-jacentes, vous permettant de vous concentrer sur la conception et la construction de vos applications

Il a deux modes:

Type de lancement Fargate: empaquetez votre application dans des conteneurs, spécifiez les exigences de CPU et de mémoire, définissez les politiques de mise en réseau et IAM et lancez l'application.

Type de lancement EC2: il vous permet d'avoir un contrôle au niveau du serveur sur une installation qui exécute vos applications de conteneur.

Avantages des conteneurs AWS

  • S'exécute n'importe où: les conteneurs regroupent votre code avec les fichiers de configuration et les dépendances dont il a besoin pour s'exécuter de manière cohérente dans n'importe quel environnement.
  • Améliorer l'utilisation des ressources: les conteneurs offrent une isolation des processus qui vous permet de définir l'utilisation du processeur et de la mémoire pour une meilleure utilisation des ressources de calcul.
  • Mise à l'échelle rapide: chaque conteneur s'exécute comme un processus distinct qui partage les ressources du système d'exploitation sous-jacent. Cela permet aux conteneurs de démarrer et de s'arrêter rapidement.

Comment ça marche?

  1. Construisez une image de conteneur: empaquetez votre code et toutes ses dépendances dans un conteneur.
  2. Automatiser les tests et le déploiement: unité de code normalisée, le conteneur agit comme un bâtiment cohérent
  3. Exécuter n'importe où: votre conteneur fonctionnera de manière cohérente dans n'importe quel environnement.
  4. Mise à l'échelle rapide: les conteneurs démarrent et se terminent rapidement, de sorte que votre application peut évoluer vers le haut et vers le bas

Conclusion - Conteneurs AWS

Amazon propose une large gamme de services pour le stockage, la gestion et l'exécution de conteneurs. Les conteneurs facilitent les développements et les déploiements pour les développeurs, car toutes les infrastructures sous-jacentes, y compris la gestion des serveurs, sont prises en charge par Amazon, permettant aux développeurs de se concentrer sur leur développement. Choisissez le service AWS adapté à votre charge de travail.

Articles recommandés

Ceci est un guide des conteneurs AWS. Ici, nous discutons de l'introduction, des types de conteneurs qui incluent le registre, l'orchestration et le calcul ainsi que les avantages des conteneurs AWS. Vous pouvez également consulter les articles suivants pour en savoir plus–

  1. Services AWS
  2. AWS Kinesis
  3. Architecture AWS
  4. Qu'est-ce qu'AWS RedShift?
  5. Guide complet des concurrents AWS
  6. Découvrez la liste des fonctionnalités d'Amazon Web Services

Catégorie: