Workshop : utilisation d’outils autour de AWS Service Catalog pour de la gouvernance multi-région multi-comptes
Présenté par Eamonn Faherty, Senior DevOps Consultant, AWS & Jamie McKay, Senior Cloud Architect, AWS.
Les instructions de ce workshop sont publiques, et il est normalement possible de refaire ce workshop en n’étant pas au re:invent.
Nous avons déjà présenté AWS Service Catalog sur ce blog précédemment, je vous invite à retourner vers notre article pour une présentation en profondeur de ce service.
Sommairement, AWS Service Catalog vous permet d’offrir un catalogue de solutions à vos utilisateurs internes. Ces solutions sont conçues par vous, sous forme de templates CloudFormation. L’avantage de ce service est de pouvoir permettre à des utilisateurs de provisionner des stacks complètes (incluant du EKS, Elastic BeanStalk, peut-être même aussi des rôles…) en offrant des options de déploiement restreintes, pour éviter les erreurs et améliorer la compliance. Les utilisateurs de Service Catalog n’ont besoin que de droits IAM leur permettant de lancer les produits, car ces produits peuvent être lancés avec des permissions qui leurs sont propres.
Ce workshop avait pour objectifs de :
- Présenter Service Catalog
- Proposer des outils de gestion multi-comptes et multi-région de Service Catalog.
Les outils utilisés sont les projets aws-service-catalog-factory et aws-service-catalog-puppet. Ces projets sont open source et développés par les ProServ d’AWS.
aws-service-catalog-factory
La configuration de cet outil doit contenir :
- La liste des régions dans lesquelles déployer les produits
- La liste des portfolios (collections de Produits)
- La liste des produits que vous allez déployer, et leur appartenance aux portfolios
- La liste des versions de ces produits, avec en paramètre le dépôt git correspondant
Cet outil se charge de créer un pipeline de tests et de déploiement pour chacune des versions de vos produits AWS Service Catalog.
Ce pipeline va tester la validité de votre template CloudFormation, optionellement à l’aide de cfn_nag et cloudformation_rspec. Il va ensuite le packager, l’envoyer dans S3 puis le publier au Service Catalog dans l’ensemble des régions configurées.
aws-service-catalog-puppet
Ce projet, relativement disjoint du premier, prend en charge le partage de Produits et de Portfolios entre vos comptes AWS. Il peut se baser sur Organizations et déployer des produits dans des centaines de comptes de façon efficiente. Il est aussi capable de provisionner automatiquement certains produits : une fonctionnalité qui est utilisée dans le workshop pour montrer comment l’on peut déployer dans une organisation multi-comptes des règles AWS config automatiquement.
Retour d’expériences de Uber sur la simulation de voitures autonomes avec AWS Batch
Présenté par Jo Adegbola, Sr Manager Software Development, AWS, Matt Ranney , Sr Staff Engineer chez Uber et Steve Kendrex, Sr Product Manager, AWS.
AWS Batch permet d’exécuter des tâches de calcul à très grande échelle (en centaines de milliers), avec des ressources allouées dynamiquement autant sur la quantité que sur le type même de ressources, comme le choix des familles d’instances à utiliser. Aujourd’hui, ce service est utilisé dans les domaines du séquençage génomique, de la simulation de véhicules autonomes ou encore dans l’analyse des risques sur les marchés financiers.
Un peu de contexte. Uber développe de nouvelles voitures autonomes et a besoin de constamment tester celles ci pour éprouver les algorithmes et permettre à l’IA d’apprendre. Malgré la construction d’une zone de tests avec des routes, des croisements, des panneaux de signalisation et des robots-piétons, cela reste compliqué de tester tous les paramètres possibles qui peuvent influencer la conduite autonome. Les équipes de Uber se sont donc tournées vers la simulation de tous les tests mais il fallait encore pouvoir exécuter des milliers de simulations pour répéter les résultats et corriger les bugs. Ainsi, grâce à l’utilisation d’AWS Batch, Uber a réussi à mettre à disposition du projet de voiture autonome la possibilité d'exécuter des milliers de simulations simultanées. Ces dernières consistent à créer des situations à variables plus ou moins différentes qui vont affecter les nombreux capteurs et pousser l'IA à prendre des décisions voire effectuer des prédictions d'actions à entreprendre. Il a fallu par exemple que le logiciel anticipe le passage d'un éventuel piéton caché par un bus à l'arrêt.
Pour arriver à ces performances impressionnantes, AWS a travaillé à améliorer le service par de nouvelles fonctionnalités :
- Stratégies d’allocation des ressources: Spot Capacity Optimized qui permet de prédire et d’allouer la capacité nécessaire pour la tâche, Best fit qui permet d’utiliser des instances spot pour optimiser les coûts et Best fit progressive qui permet de mixer et de choisir automatiquement les types d’instances adaptées au workload.
- Multi-node parallel jobs: cette fonctionnalité va exécuter une tâche batch sur plusieurs instances en parallèle pour réduire les durées d'exécution.
- L’amélioration de l’intégration des containers
- L’amélioration de la console AWS batch
L’expérience de Uber est intéressante et prouve à quel point AWS est à l’écoute des utilisateurs pour s’améliorer constamment.
Governance at scale, Control Tower, AWS Organisation and more
Cette session présentée par Raymond Ma, a eu pour sujet la gestion multi comptes sur AWS et comment assurer une bonne gestion de la gouvernance. Ce n’est pas une présentation détaillée des solutions existantes, mais plutôt une vue d'ensemble de ce qui proposé par AWS pour assurer cette gouvernance en respectant les best practices.
On commence par aborder le sujet du multi comptes qui permet notamment de :
- Respecter une isolation des ressources et des équipes.
- D’améliorer la sécurité (par l’isolation et la granularité des politiques de sécurité appliquées aux comptes)
- Une gestion de la facturation simplifiée, puisque chaque compte possède ses propres dépenses.
Raymond soulève ensuite la problématique suivante : comment garder un équilibre entre gouvernance (application des règles, notamment de sécurité) et agilité (et donc ne pas brider le développeur ou l’utilisateur dans sa productivité).
Heureusement, AWS propose un panel de services qui permettent de répondre à ce besoin:
Gestion du multi comptes :
Contrôle des dépenses :
Sécurité et surveillance :
Le talk évolue ensuite sur une vue d’ensemble du service AWS Organisation
Enfin, place au service gratuit, Control Tower qui permet d'automatiser la création d environnements multi comptes sur AWS, tout en appliquant les best practices AWS. Le service n’est disponible que dans quatre régions pour le moment, mais d’autres sont à venir.
Le service comporte 37 guardrails, qui matérialisent des best practices d’AWS.
La session s’est ensuite terminée sur une quinzaine de minutes de questions/réponses avec l’intervenant.
Découvrez les derniers articles d'alter way
- : Prowler : L'outil de sécurité multi-cloud indispensable pour renforcer votre infrastructure
- : Kubernetes : plateforme "star" de l'IT et levier d'innovation des entreprises
- AI_dev2024
- : DirectPV : Avoir du stockage bloc distribué facilement dans kubernetes
- : Simple comme GitOps : kluctl
- Conférence Wax 2024 @thecamp