AWS CloudFormation
La simplification des tâches répétitives de provisionnement peut être contrôlée de trois manières :
- À travers la console de gestion AWS.
- En utilisant la ligne de commande AWS CLI.
- En utilisant le kit de développement logiciel AWS SDK/API.
Nous pouvons créer des modèles sous forme de JSON pour provisionner des instances EC2 simples. Le but est de créer notre propre serveur privé et de tout préconfigurer à travers ces modèles. Voici comment cela fonctionne :
- Nous créons notre modèle et y ajoutons des paramètres de déploiement.
- Nous déployons ensuite une pile qui permet de créer nos bases de données, sous-réseaux, règles de communication, etc.
- Nous avons ainsi la possibilité d'utiliser la notion de développement continu et d'automatisation. Il est important de mettre à jour ces modèles pour optimiser en cas de bugs ou de manquements architecturaux. En cas d'erreur, il existe automatiquement une fonctionnalité de retour en arrière.
Pour déployer les scripts, nous les envoyons directement dans S3. Nous pouvons ensuite les utiliser avec CloudFormation, ce qui permet de déployer l'ensemble de nos scripts en même temps. Un cas d'utilisation fréquent est la transformation d'environnements de développement en environnements de production. En copiant simplement les modèles, nous pouvons créer divers environnements sans trop de difficulté. Cela permet également de changer l'environnement de région en cas de reprise. Sans CloudFormation, cela coûterait cher en temps, car il faudrait relire la documentation, repartir de zéro avec le risque d'introduire des erreurs et maintenir une documentation lourde et pas vraiment nécessaire.
Une astuce consiste à utiliser les modèles de départ pour certains services, ce qui permet d'avoir une base pour nos fichiers.
AWS CodeDeploy
CodeDeploy est un service qui permet d'automatiser les déploiements d'applications vers divers services de calcul tels que EC2, Fargate, AWS Lambda, ainsi que les instances s'exécutant sur site (on-premise). Bien que ce ne soit pas un service fondamental, voici ses caractéristiques :
- Il permet le déploiement automatisé des instances (d'une application dont l'application tourne sur une instance).
- Il requiert l'installation d'agents sur les instances.
- Le déploiement est reproductible sur N instances.
- Il est intégré à la mise à l'échelle automatique (scaling).
- Il permet le déploiement sur site (on-premise) ou dans le cloud AWS.
- Il est indépendant de la plate-forme et du langage.
- Il permet de limiter les temps d'arrêt (blue/green).
- Il permet un contrôle centralisé.
- Il est sans frais.
AWS Systems Manager
AWS Systems Manager simplifie la gestion des ressources et des applications, raccourcit le délai de détection et de résolution des problèmes opérationnels et facilite l'exploitation et la gestion de votre infrastructure de façon sécurisée à grande échelle. C'est une suite de services destinée aux administrateurs systèmes, comprenant OpsCenter, Explorer, Resource Groups, AppConfig, Dashboard Inventory, Automation, Run Command, Session Manager, Maintenance Window, Distributor, State Manager et Parameter Store. Cela permet une gestion des ressources on-premise et dans le cloud (hybride). Lorsque des rôles sont assignés aux utilisateurs, nous pouvons configurer des vues afin d'avoir une vue centrale pour afficher les données opérationnelles de plusieurs services.
Cela nous permet de :
- Automatiser les tâches opérationnelles pour nos ressources AWS.
- Regrouper des ressources par application, business unit ou environnement.
- Afficher les données opérationnelles à des fins de surveillance et de dépannage (créer des tableaux de bord).
- Maintenir une configuration cohérente de vos instances.
Il prend en charge Windows et Linux avec un agent installé.
AWS OpsWorks
AWS OpsWorks est un service de gestion de configuration qui fournit des instances gérées de Chef et Puppet. Ces services permettent la gestion des infrastructures par code (codebook), il s'agit principalement des configurations. Notre code est alors déposé dans un repository (cookbook repository), afin de versionner. On définit aussi des piles OpsWorks (infrastructure applicative) qui permettent de définir ce dont nous avons besoin en termes de provision. OpsWorks fournit son propre load balancer, mais aussi des instances EC2, des AMI, bootstrap + EBS Volume, ainsi que du RDS pour nos instances de données. En clair, on s'affranchit de tâches répétitives afin de rendre les opérations plus rapides. L'autre avantage est que ce service fonctionne "on-premise".
AWS Simple Notification Service (SNS)
AWS Simple Notification Service (SNS) permet de créer des notifications par publication et souscription pour des microservices et des applications sans serveur. Ainsi, on peut créer un topic et permettre au service de s'abonner à ce topic afin de recevoir des messages. Par exemple, nous pouvons automatiser avec une lambda l'envoi d'informations par e-mail à nos employés chaque matin. Le nom de ce service est qualifié par son identifiant unique : l'ARN. Lorsque nous créons un SNS, nous devons créer des abonnements :
- Nous sélectionnons l'ARN.
- Nous choisissons le protocole à déployer.
- Nous choisissons le point de terminaison.
Cela permet de créer un système de notification puissant.
Gestion dans le cloud
Pour découpler les applications, on peut utiliser une file d'attente hébergée fiable et hautement évolutive pour stocker les messages qui transitent entre les applications ou les microservices.
Caractéristiques :
- Service Web géré par AWS
- Permet de recevoir et de stocker des messages
- 2 types d'intervenants : producteur et consommateur
- Les messages sont traités via le SDK, puis supprimés
- Peut conserver un message pendant 15 jours
- Deux types de queues : FIFO ou parallèle
- Garantit que le message est transmis au moins une fois
- Gestion dans le cloud
Cloudwatch
Cloudwatch est un service qui permet l'observabilité de vos ressources et applications AWS sur AWS et sur site. Il vous permet d'agir en 4 étapes différentes :
- Collecter des métriques
- Surveiller
- Agir : créer des mesures, fonction lambda, pour créer des actions sur une instance. On peut aussi envoyer des mails et des SMS pour une alerte.
- Analyser en fonction des alertes que l'on collecte
Cloudwatch fournit des données et informations exploitables (par exemple, CPU surchargé) dont vous avez besoin pour surveiller vos applications, réagir aux variations de performance sur l'ensemble du système, optimiser l'utilisation des ressources et avoir une appréciation unifiée de la santé opérationnelle. Il existe 2 modes :
- Basic : récupère les métriques toutes les 5 minutes (gratuit)
- Advanced : récupère les métriques toutes les minutes (payant)
Cas d'usage :
- Surveillance et dépannage d'infrastructure
- Amélioration du temps moyen de résolution
- Optimisation proactive des ressources
- Surveillance des applications
- Analyses des logs (lié avec CloudTrail)
Avantages :
- Le moyen le plus simple de collecter des métriques dans AWS et sur site
- Améliore la performance opérationnelle et l'optimisation des ressources
- Obtenir des informations et gagner en visibilité opérationnelle
- Récupérer des informations exploitables dans des logs
- Observabilité sur une plate-forme unique sur l'ensemble des applications et de l'infrastructure
Trusted Advisor
Trusted Advisor est un service qui permet de surveiller et de faire des économies grâce aux conseils du service. Il permet une optimisation des coûts en identifiant la mauvaise gestion et la non-application des bonnes pratiques. Il permet d'augmenter les performances en adaptant mieux les ressources en fonction de nos besoins. Il surveille également les critères de sécurité pour nous, ainsi que la tolérance des pannes de nos services. Il permet de connaître les limites de service concernant notre zone de disponibilité afin de les adapter pour les réduire et augmenter.
4 plans :
Plan | Coût | Fonctionnalités |
---|---|---|
Basic | Gratuit | Accès aux 5 conseils principaux, limites de service et rapport de confiance |
Developer | 29 $ par mois | Accès aux conseils principaux, aux conseils pour les performances, aux conseils de sécurité et aux limites de service |
Business | 100 $ par mois | Accès à tous les conseils et à l'historique des analyses |
Enterprise | Sur demande | Accès à toutes les fonctionnalités, y compris des rapports personnalisés et un support technique dédié |
Ces plans permettent aux utilisateurs de Trusted Advisor de choisir les fonctionnalités en fonction de leurs besoins et de leur budget.
Fonctionnalités :
Voici les fonctionnalités que notre plateforme propose pour améliorer la gestion de votre infrastructure AWS :
- Identifier les load balancers non utilisés pour un routage plus rationnalisé.
- Détecter les Elastic Network Interfaces (ENI) et les Elastic IPs non associés pour éviter des coûts inutiles. Notez que dès qu'une adresse IP est réservée, elle réserve des ressources.
- Surveiller l'utilisation anormalement élevée d'une instance EC2 afin de détecter les ralentissements qui peuvent impacter les utilisateurs.
- Vérifier l'activation de la multi-factor authentication (MFA) pour renforcer la sécurité.
- Gérer la stratégie de mot de passe pour éviter les vulnérabilités.
- Alerter en cas de non-conformité avec la reprise en cas de panne, par zone de disponibilité et autre.
- Récupérer des informations sur une durée de 7 jours et les envoyer par email (facturation, transaction, sécurité).
- Vérifier que les sauvegardes sont bien actives pour prévenir toute perte de données.
Afficher toutes les données dans la console et les mettre à jour toutes les 24 heures. Il y a 3 états possibles :
- Aucune action nécessaire
- Action nécessaire
- Action obligatoire
AWS CloudTrail
AWS CloudTrail permet de suivre l'activité des utilisateurs et l'utilisation des API via différents moyens tels que la console, les lignes de commande ou le SDK. Tous ces appels API laissent des traces (logs) contenant des informations telles que l'identité, la date et l'heure ainsi que l'adresse IP source. CloudTrail permet d'identifier rapidement et de fournir des informations en cas d'audit. Les logs sont stockés directement dans S3 et sont récupérés par différents services pour les traiter. Ils sont alimentés toutes les 5 minutes et le stockage est illimité.
Il est possible d'y accéder via CloudWatch pour créer des tableaux de bord et réaliser des notifications via SNS. AWS CloudTrail permet d'enregistrer les événements relatifs à votre compte AWS et d'enregistrer ses informations depuis plusieurs régions. Il est également possible de surveiller l'intégrité des fichiers logs (modification ou suppression), de chiffrer vos fichiers CloudTrail, d'accélérer les procédures d'enquête suite aux incidents et d'envoyer des réponses rapides aux demandes des responsables de l'audit.
Il est également possible d'interagir avec CloudWatch Logs et Events ou Lambda via S3 Events et de créer un journal de suivi pour conserver un enregistrement de ces événements avec AWS CloudTrail Insight. Insight permet de créer des métriques d'événement, de déclencher des alertes, de créer des flux de travail d'événement et de créer un journal de suivi pour une organisation.
AWS Config
AWS Config permet d'avoir une liste exhaustive des ressources que vous utilisez, que ce soit multi-compte ou multi-région, une liste précise des vulnérabilités potentielles sur ces ressources, des interdépendances entre ces ressources ainsi qu'un historique complet des changements opérés sur ces ressources. AWS Config permet également de valider la conformité envers les lois en vigueur (RGPD, données sensibles, etc.) et de mettre à disposition toutes les informations requises en cas d'audit.
Les fonctionnalités d'AWS Config incluent un inventaire avec la liste des modifications, la sauvegarde de l'historique des configurations (JSON), des snapshots instantanés d'un clic (delta) à un instant T, des notifications en cas de changements, l'intégration avec CloudTrail pour analyser la sécurité et la conception de règles de conformité. Les services couverts incluent AWS Certificate Manager, CloudTrail, EBS, EC2, EC2 System Manager, ELB, IAM, Amazon Redshift, RDS, S3, VPC et AWS Health Dashboard.
AWS Health dashboard
Le tableau de bord AWS Health Dashboard contient tous les services pour toutes les régions, mais il est possible de créer un tableau de bord personnel pour lister uniquement les services utilisés, les services uniquement dans nos services, les incidents en cours, les changements planifiés et autres notifications (mises à jour). L'objectif est d'analyser les incidents pour déterminer s'ils sont causés par l'une de nos actions ou s'il s'agit d'un problème d'infrastructure AWS.