Les 2 derniers jours du re:Invent ont eu leur lot d’annonces, notamment lors de la keynote présentée par Dr Swami Sivasubramanian, Vice President of Databases, Analytics, and Machine Learning at AWS. La keynote de Dr. Werner Vogels, Amazon.com VP and CTO of Amazon.com, était plutôt centrée sur de l’architecture en général (coûts, gestion de dette, évolutivité…) et pas tant sur des nouvelles annonces.
Le re:Invent 2023 aura été marqué, et on pouvait s’y attendre, par de nombreuses annonces autour du Generative AI et du Machine Learning (ML).
Generative AI
Adam Selipsky avait annoncé un certain nombre de nouveautés durant sa keynote autour de Bedrock, le service de GenAI d’AWS. Swami Sivasubramanian a enchainé avec de nouvelles annonces.
Plusieurs nouveaux modèles sont désormais disponibles dans Bedrock. Tout d’abord, le modèle Anthropic Claude 2.1. La fenêtre de contexte de tokens est 2 fois plus grande que pour Claude 2.0 (200 000 tokens maintenant) et les taux d’hallucinations sont grandement réduits. En sus, le modèle de Meta Llama 2 70B est également prêt à l’emploi dans Bedrock. Ce dernier modèle est utile pour des cas d’usage de chat.
Amazon Titan arrive avec comme nouveautés :
- Multimodal Embeddings permet de créer des expériences de recherche et de recommandation multimodales pour les utilisateurs. Le multimodal fait référence à la capacité d'un système à traiter et à générer des informations à l'aide de types de données distincts (du texte, des images ou les deux ici) ;
- 2 nouveaux Large Language Models (LLM) sont également GA : Amazon Titan Text Lite et Amazon Titan Text Express. Ils prennent en charge un large éventail de tâches liées au texte, notamment des systèmes de résumé, de traduction et de chatbot conversationnel ;
- Amazon Titan Image Generator est disponible en preview et permet de créer et d’affiner des images à l’aide de prompts en langage naturel en anglais. Ce générateur inclut la possibilité d’éditer des images avec un prompt de texte. On peut également affiner le modèle avec ses propres données pour générer des images en adéquation avec son business.
- On peut désormais évaluer et comparer des Foundation Models (FM) pour sélectionner le plus adéquat pour notre cas d’usage. Il propose à la fois des évaluations automatiques des modèles ainsi que des revues humaines manuelles pour s’assurer de la qualité.
Plusieurs nouveautés dans SageMaker :
- SageMaker introduit HyperPod qui permet de réduire le temps de formation des FM en fournissant une infrastructure spécialement conçue pour la formation distribuée à grande échelle. HyperPod peut faire réduire le temps d'entraînement jusqu’à 40%. On peut désormais former des FM pendant de longues périodes tandis que SageMaker surveille activement l'état du cluster et fournit une résilience automatisée des nœuds et des tâches en remplaçant les nœuds défectueux et en reprenant la formation du modèle à partir d'un point de contrôle ;
- On peut désormais déployer plus rapidement des modèles de Machine Learning et des FM grâce à de nouveaux outils dans le SDK SageMaker et également une refonte du workflow de déploiement dans SageMaker Studio ;
- SageMaker ajoute des fonctionnalités d'inférence permettant d’optimiser les coûts de déploiement et de réduire la latence. On peut également déployer des FM sur le même point de terminaison et contrôler le nombre d'accélérateurs et la quantité de mémoire réservée. On améliore donc l'utilisation des ressources et on réduit les coûts de déploiement des modèles de 50 % en moyenne ;
- SageMaker Clarify simplifie l’évaluation et la sélection de FM comme le propose désormais Bedrock ;
- Une nouveauté dans SageMaker Canvas permet maintenant d’utiliser des FM via une expérience en no-code ;
- On peut désormais utiliser des instructions en langage naturel dans SageMaker Canvas pour explorer, visualiser et transformer de la donnée pour du Machine Learning.
Amazon Q s’intégrera bientôt à AWS Glue pour ingérer plus rapidement des données en utilisant le langage naturel. On devrait également pouvoir faire du troubleshoot via une interface de chat.
Base de données
AWS OpenSearch continue de nous gâter de nouveautés lors ces deux dernières journées :
- Il intègre le nouveau type d’instance OR1. Ces instances vont permettre de bénéficier d'une amélioration prix/performance de 30 % par rapport aux types d'instances existants. Le gain est conséquent, n’hésitez pas à les essayer 💸. Des volumes EBS gp3 sont utilisés pour le stockage principal et les données sont ensuite copiées de manière synchrone sur S3. Les données sur S3 peuvent être utilisées pour réhydrater des volumes EBS après que des shards aient été déplacés entre les instances à la suite d’un incident ou une opération de rééquilibrage ;
- Une intégration zero-ETL avec S3 est disponible en preview. OpenSearch peut donc requêter directement S3 pour ingérer des données et les rendre exploitables dans son moteur de recherche. Une chose intéressante est qu’il propose des templates de logs avec des dashboards prédéfinis pour par exemple ingérer les logs d’ALB ou encore les VPC Flow Logs. C’est plutôt intéressant sachant que les logs de ces deux services ont une syntaxe complexe qui les rend difficile à lire en texte brut.
- Amazon Redshift Serverless devient plus malin sur la mise à l’échelle en se basant sur de nouvelles dimensions comme la complexité des requêtes, leur fréquence ou encore la taille du jeu de données. Espérons que cela aidera aussi notre porte monnaie 🤞;
- Amazon Q arrive également dans Amazon Redshift pour générer des requêtes SQL depuis des prompts de langage naturel.
La recherche vectorielle arrive en masse sur de nombreux services AWS. La recherche vectorielle est une technique émergente utilisée en Machine Learning pour trouver des points de données similaires dans un ensemble de données. Ceci est réalisé en comparant leurs représentations vectorielles à l'aide de mesures de distance ou de similarité. Les vecteurs sont une représentation numérique de la donnée non structurée créées depuis des LLM hébergés sur Bedrock ou SageMaker par exemple.
Voilà les nouveaux services qui supportent désormais la recherche vectorielle :
- Amazon DocumentDB ;
- Amazon OpenSearch Serverless - L’avantage de ce service est qu’on n’aura pas à gérer l’infrastructure sous-jacente ;
- Amazon MemoryDB pour Redis.
Amazon Neptune se dote d’une fonctionnalité appelée Analytics afin d’analyser de grosses quantités de données de type graphe pour identifier des tendances. On peut charger des données depuis Neptune ou depuis S3.Neptune Analytics est complètement managé. Il alloue automatiquement le compute nécessaire selon la taille du graphe et charge toute la donnée en mémoire pour qu’elle soit requêtable. Le benchmark initial montre que Neptune Analytics charge les données d'Amazon S3 jusqu'à 80 fois plus rapidement que les autres solutions AWS existantes.
Sécurité
3 nouveautés arrivent dans Amazon Inspector :
- On peut désormais utiliser l’API d’Inspector pour scanner les vulnérabilités logicielles dans les images de conteneurs au moment du build depuis un pipeline de Continuous Integration and Continuous Delivery (CI/CD) ;
- Il peut également monitorer de façon continue des instances EC2 sans installer un agent ou un logiciel sur les instances (cette fonctionnalité est en preview). Pour cela, Inspector découvre les instances et fait des snapshots des volumes EBS de ces instances pour les analyser. Quand il a terminé, il supprime les snapshots. Pour rappel, auparavant, Inspector passait par l’agent SSM pour récolter des informations sur les instances. Cette nouvelle méthode va permettre de ne plus consommer de CPU ou de RAM sur nos instances : plutôt une bonne nouvelle 🙂 ;
- Il utilise de la GenAI pour fournir une correction de code assistée dans Lambda.
En ce qui concerne les coûts, Inspector facture au scan d’une entité (conteneur, EC2 ou Lambda). Je suis plutôt emballé par l’annonce de ces nouveautés sur Inspector, la sécurité étant l’une de nos priorités chez Ippon quand on déploie des architectures sur AWS 🔐.
Monitoring
- Le service CloudWatch s’enrichit avec Application Signals qui va nous aider à monitorer des systèmes distribués et plus précisément à suivre leurs performances. Il va permettre d’instrumenter des applications pour collecter des métriques et des traces sans code custom. En plus, il sera possible de définir des Service Level Objectives (SLO) pour suivre des opérations spécifiques. Application Signals propose également une carte des services automatiquement découverts pour avoir une représentation visuelle de nos applications avec leurs interdépendances. Cette nouveauté est supportée sur EKS, ECS et EC2 ;
- myApplications est une nouvelle fonctionnalité qui est introduite dans la console AWS et qui permet de gérer et surveiller les coûts, la santé, la sécurité et la performance d’un ensemble de ressources AWS. Grâce à Resource Explorer, on peut chercher et trouver des ressources sur notre compte AWS (en mode multi-régions) et les ajouter dans une “Application”. Une fois l’application créée, on a accès à un dashboard avec des widgets qui contiennent des graphes et pas mal d’informations : les coûts (avec des données provenant de Cost Explorer), le compute (avec les métriques classiques provenant de CloudWatch), le monitoring et les opérations (alarmes, alertes ainsi que les performances avec CloudWatch Application Signals), la sécurité (avec des informations de Security Hub) et enfin un widget DevOps (avec des informations provenant de Systems Manager). Je suis plutôt emballé par cette nouvelle fonctionnalité dans la Console qui permet d’avoir une vue unifiée d’un ensemble de ressources provenant de N services AWS différents. Cela devrait nous aider pour faire du troubleshooting et éviter de naviguer entre les différentes UI des multiples services 👍. Et en plus, elle est disponible sans coût additionnel 💰.
Autres
- AWS Fault Injection intègre de nouveaux scénarios pour démontrer la résilience d’un système multi-AZ et multi-région. Cela va être intéressant par exemple de tester qu’une instances RDS multi-AZ réagit comme attendu à la perte d’une AZ 🚀 ;
- Lancement de zonal autoshift dans Amazon Route 53 Application Recovery Controller pour arrêter d’envoyer du trafic dans une AZ s’il y a une panne dans cette dernière. AWS utilise son monitoring interne pour faire ce changement de trafic réseau.
Conclusion
Les annonces faîtes au re:Invent 2023 surfent sur la hype autour du Generative AI. Il faudra tester et prendre du recul sur tout ce qui a été annoncé pour mesurer la pertinence des différentes nouveautés notamment sur SageMaker et Bedrock. En tous cas, ces nouveautés semblent prometteuses, notamment le service Amazon Q et les améliorations autour de l'entraînement et l’enrichissement de modèles 👍.
Je suis plutôt emballé sur les annonces autour du serverless (Elasticache Serverless 😍) et des nombreuses intégrations zero-ETL (OpenSearch/S3, OpenSearch/DynamoDB, RedShift/Aurora…) qui vont nous (ingénieurs Cloud/DevOps) simplifier la gestion et la maintenance d’infrastructures.
Dans les nouveautés autour de la sécurité, je retiendrai la simplification de IRSA dans EKS (il était temps !), le scan de containers au build ainsi que le scan d’instances EC2 en mode agentless avec Inspector.
Enfin, sur le monitoring, j’apprécie que AWS continue de faire évoluer CloudWatch, cela nous sera utile chez nos clients qui n’ont pas de solution de monitoring externe comme Datadog ou Splunk.