Depuis plusieurs années, vous avez pu utiliser la fonctionnalité de gestion du cycle de vie de AWS S3 pour contrôler la classe de stockage et la durée de vie de vos objets. 

Depuis mars dernier, une fonctionnalité a été ajoutée à ce service : le téléchargement incomplet d’objet en plusieurs parties. Ce chargement partitionné vous permet de télécharger un objet unique constitué d’un ensemble de parties. Une fois que toutes les parties de cet objet sont chargées, Amazon S3 présente les données comme un seul objet. 

Grâce à cette fonction, vous pouvez gérer des téléchargements en parallèle, mettre en pause et reprendre le chargement d’un objet, mais aussi commencer les chargements avant de connaître la taille totale de l’objet.

Qu’est-ce que le téléchargement incomplet d’objet en plusieurs parties ?

La fonction de téléchargement partitionné d’AWS S3 accélère le transfert d’objets volumineux en vous permettant de les diviser en plusieurs parties logiques qui peuvent être téléchargées en parallèle. 

Si vous lancez un téléchargement en plusieurs parties, mais que vous ne le terminez pas, le téléchargement en cours va occuper de l’espace de stockage et entraînera des frais de stockage. 

Cependant, ces téléchargements ne sont pas visibles lorsque vous répertoriez le contenu d’un bucket. Ils doivent impérativement être supprimés. S’ils ne sont pas supprimés, l’espace de stockage consommé par ces chargements continuera à être facturé.

Comment savoir si un bucket contient des téléchargements partitionnés ?

Voici un petit script qui peut vous aider à trouver quel bucket a des téléchargements en plusieurs parties :

Comment réduire vos frais Amazon S3 lors de téléchargements en plusieurs parties - Bucket - Téléchargements partitionnés

Ce script donnera une réponse comme celle-ci :

Comment réduire vos frais Amazon S3 lors de téléchargements en plusieurs parties - Bucket - Téléchargements partitionnés

« True » signifie que ce compartiment a des téléchargements en plusieurs parties. « False » signifie qu’il n’en contient pas.

Comment puis-je obtenir une liste de téléchargements partitionnés ?

Voici un autre script qui vous aidera à obtenir une liste de téléchargements partitionnés :

Comment réduire vos frais Amazon S3 lors de téléchargements en plusieurs parties - Bucket - listes Téléchargements partitionnés

Comment éviter le coût inutile des téléchargements incomplets en plusieurs parties ?

Pour cela, il est possible de configurer un cycle de vie dédié à ces téléchargements. Une fois le temps imparti achevé, ils seront automatiquement supprimés de l’espace de stockage. 

Vous pouvez les configurer à l’aide de l’AWS Management Console, de l’interface de ligne de commande AWS (CLI) ou des outils AWS pour Windows PowerShell.

1. Commencez par ouvrir la console et accédez au bucket souhaité :

Amazon S3 - éviter le coût inutile des téléchargements incomplets en plusieurs parties ? - AWS Management Console

2. Cliquez ensuite sur “Properties”, ouvrez la section “Lifecycle” et cliquez sur “Add rule” :

Amazon S3 - éviter le coût inutile des téléchargements incomplets en plusieurs parties ? - AWS Management Console

3. Choisissez votre cible (le bucket entier ou le sous-ensemble préfixé de votre choix) puis cliquez sur “Configure Rule” :

Amazon S3 - éviter le coût inutile des téléchargements incomplets en plusieurs parties ? - AWS Management Console

4. Activez ensuite la nouvelle règle et sélectionnez la période d’expiration souhaitée :

Amazon S3 - éviter le coût inutile des téléchargements incomplets en plusieurs parties ? - AWS Management Console

Vous souhaitez davantage d’informations sur ce nouveau service AWS, n’hésitez pas à contacter l’équipe de premaccess. Spécialisée dans le cloud d’AWS, elle vous conseillera sur ce sujet. 

Pour aller plus loin sur la FinOps

FAQ à propos d’Amazon S3

Qu’est-ce qu’Amazon S3 ?

Amazon S3 est un stockage d’objets conçu pour stocker des données. C’est un service de stockage simple qui offre une infrastructure de stockage de données extrêmement durable, hautement disponible et infiniment évolutive à des coûts très faibles.

La tarification S3

Lors du choix de la classe de stockage S3 idéale pour votre profil de données, vous devez prendre en compte quatre éléments de coûts : la tarification du stockage, la tarification des requêtes et de l’extraction des données, la tarification du transfert des données et de l’accélération du transfert des données et la tarification des fonctions de gestion des données. Pour en savoir + > https://aws.amazon.com/fr/s3/pricing/

Le Cloud séduit de plus en plus d’entreprises. Elles sont aujourd’hui nombreuses à basculer progressivement tout ou partie de leur Système d’Information (SI) sur le nuage. Et pour cause. Selon l’étude « Multi-Cloud, Cloud Hybride et Services Managés : Approches, Tendances & Enjeux à 2021 » menée par le cabinet Markess, auprès de 120 DSI et CTO, 

  • 55% d’entre eux expliquent que leurs dépenses dans les Clouds publics vont augmenter au fil du temps,
  • Et 51% ont recours à plusieurs formes de Cloud (différents IaaS publics, IaaS public avec IaaS privé, etc.).

Pour plusieurs DSI et CTO, cette stratégie « Cloud et multi-Cloud » apporte de nombreux avantages : agilité, accès à des services innovants (IA et Machine Learning, Data analytics, etc.), déploiement plus rapide de nouveaux services. Mais, elle demande également un réel accompagnement pour gérer correctement ces environnements, et garder ces architectures Cloud en condition opérationnelle permanente.

Pour répondre à ces besoins, les partenaires de Cloud Providers, et notamment premaccess, proposent des services managés. Appelés Cloud Managed Services Providers, ils se donnent pour objectif de décharger les DSI de la gestion des SI afin qu’elles puissent se focaliser davantage sur l’innovation, et moins sur la maintenance de leur infrastructure informatique. 

En quoi consistent ces services managés Cloud ?

À travers ces services, les MSP s’assurent que les bonnes pratiques en matière d’architecture Cloud sont bien respectées sur votre infrastructure. Ces bonnes pratiques reposent sur 5 piliers : excellence opérationnelle, sécurité, fiabilité, efficacité de la performance et optimisation des coûts.

services managés cloud - les bonnes pratiques reposent sur 5 piliers : excellence opérationnelle, sécurité, fiabilité, efficacité de la performance et optimisation des coûts.

Parmi ces services managés, vous pouvez retrouver :

L’aide à la migration

En fonction de vos compétences et ressources en interne, vous disposez d’un accompagnement et de conseils d’experts pour migrer vers le modèle de services Cloud le plus adapté à vos enjeux (IaaS, PaaS, Saas).

La surveillance

Il convient de surveiller votre infrastructure Cloud afin de prévenir toutes défaillances, et réagir en cas de variations de performances sur l’ensemble du système. Pour cela, les MSP récoltent en temps réel des données sur votre système d’information afin de :

  • veiller à sa bonne santé, 
  • déceler des comportements anormaux sur vos environnements, 
  • définir des alarmes si besoin,
  • automatiser des actions sur la base de seuils prédéfinis, etc. 

La sécurité

Un MSP garantit la sécurité de vos données et de vos infrastructures. Par « sécurité », nous entendons : 

  • confidentialité et intégrité des données, 
  • identification et gestion des utilisateurs et de leurs autorisations, 
  • protection des systèmes, 
  • et mise en place de contrôles pour détecter les événements de sécurité.

La maintenance préventive et en temps réel

Parmi les mesures préventives, nous pouvons notamment citer la sauvegarde et la réplication de vos données, ainsi que leur restauration si besoin.

La maintenance en temps réel consiste en la résolution des incidents dans un temps imparti assez court pour éviter toute indisponibilité de vos services. Dans ce cadre figurent :

  • Le Plan de Continuité d’Activité (PCA) : il assure la reprise la plus rapide possible de l’infrastructure, en cas de sinistre, avec le moins de pertes de données.
  • Le Plan de Reprise d’activité (PRA) : en cas d’incident majeur, les MSP gèrent la reconstruction de votre SI et la remise en activité de vos applications. 

Le PCA et le PRA sont essentiels pour minimiser l’impact financier sur votre activité lors d’incidents informatiques.

L’optimisation des coûts

Les fournisseurs de services managés vous aident aussi à éliminer les coûts superflus, en contrôlant vos dépenses sur le Cloud, et en sélectionnant pour vous les ressources les plus appropriées selon vos besoins et votre budget.

La veille technologique

Enfin, les MSP sont des experts en architectures Cloud. En veille constante sur les dernières tendances du secteur, ils vous conseillent sur l’évolution de votre SI dans le temps en fonction de vos nouveaux besoins ou nouvelles offres.

Les avantages des services managés Cloud

En optant pour ces services managés Cloud :

Services managés cloud avantages
  • Vous avez l’assurance que votre Système d’Information est toujours disponible dans le temps. Vous vous protégez contre tous arrêts et incidents.
  • Vous êtes libéré des contraintes informatiques. Ainsi, vous augmentez votre productivité en interne, et vous permettez notamment à votre DSI d’être davantage tournée vers l’innovation de vos services.
  • Vous gagnez en efficience en vous concentrant sur votre coeur de métier. Fini la perte de temps avec la maintenance.
  • La sécurité de votre système est 100% fiable. Vous n’avez plus à vous en soucier.
  • Vous réalisez des économies car les MSP, experts en FinOps, vous aident à optimiser durablement vos dépenses.
  • Et, cela est primordial, vous restez innovant grâce à la veille technologique de ces fournisseurs de services managés.

En tant que décideurs, DSI ou CTO, si vous souhaitez externaliser la gestion de votre SI, n’hésitez pas à contacter l’équipe de premaccess. Experte en services managés Cloud, elle vous conseillera et vous proposera un accompagnement sur-mesure adapté à vos besoins. Objectif : vous simplifier la gestion quotidienne de votre IT !

Pour aller plus loin sur les services managés cloud :

En tant que développeur, notre métier a fortement évolué. Les infrastructures sont passées de serveurs on-premise à des machines virtuelles, et sont maintenant hébergées sur des instances Cloud. Nous parlons désormais de Développement Serverless. Mais le métier de développeur ne s’est pas complexifié pour autant. Bien au contraire. 

Fondamentalement, avec le Cloud, la manière de programmer change pour se consacrer à l’essentiel. La révolution tient dans l’architecture des projets, orientée désormais en microservices. 

Grâce à ces microservices ou plus largement au serverless, vous utilisez du code et des services de base prêts à l’emploi. Vous vous consacrez ainsi uniquement à la valeur ajoutée de votre projet et donc de votre code ainsi que les fonctionnalités associées. De quoi vous faire gagner du temps, assurer la qualité du code, et vous pousser à repenser notre business davantage tourné vers l’innovation. 

Si vous êtes développeurs, ou bien porteurs de projets, découvrez les nombreux avantages qu’offre cette architecture.

Des microservices et un développement Serverless pour …

… Mieux vous concentrer sur le coeur de votre application

Lorsque vous déployez une solution sur un serveur on-premise ou bien sur une machine virtuelle, votre équipe de développeurs se charge de tout coder : les fonctions propres à votre application, ainsi que les fonctions annexes mais essentielles comme la gestion des utilisateurs, la connexion à la base de données, etc. Nous parlons alors d’architecture monolithique.

En revanche, en déployant une solution sur le Cloud en développement serverless, vous pouvez vous concentrer principalement sur les fonctions natives de votre application. Connecté en ligne, vous avez accès à pléthores de services managés pour les fonctions de base. Sur AWS, par exemple, une multitude de microservices sont disponibles pour créer une architecture serverless. Ils vous permettent de déployer très rapidement des fonctionnalités universelles comme « IAM » pour gérer la politique de sécurité de vos utilisateurs, « Cognito » pour sécuriser leurs authentifications et gérer vos utilisateurs, « Lex » pour la création de Chatbots, « Simple Email Service » pour l’envoi d’emails depuis votre application, etc.

Il serait bien trop long de tous les énumérer. AWS en crée des dizaines par an. Son catalogue en compte plus d’une centaine autour de thématiques liées au calcul, au stockage de données, à l’analyse, à la sécurité de vos applications, à l’Internet des Objets, au Machine Learning, etc. Découvrez-les ici : https://aws.amazon.com/fr/products/?nc2=h_ql_prod

… Plus d’agilité et vous faire gagner du temps

Clairement, en vous concentrant sur les fonctions natives de votre application et en utilisant ces services managés, vous réduisez le temps de développement de vos projets web.

développement serverless plus d’agilité gain de temps application plus évolutive et scalable

Par ailleurs, votre architecture serverless étant découpée en services, vous pouvez répartir la mise en place de chaque fonction entre développeurs. Chacun peut programmer de façon indépendante, sans avoir à connaître la structure du code des autres parties de l’application. Il suffira juste à votre chef de projet de réaliser des tests d’intégrations pour vérifier que tout fonctionne ensemble.

… Rendre votre application plus évolutive

Grâce à ce découpage en microservices, grâce au serverless, vous faites évoluer votre solution plus facilement. Modifier une fonctionnalité demandera d’intervenir sur un seul service sans avoir à vérifier à nouveau l’ensemble de l’application.

De plus, en utilisant ces services managés, vous accédez plus facilement aux nouvelles fonctionnalités proposées par le Cloud provider. Par exemple, dans le cas où vous utilisez Cognito pour gérer les accès à votre application, vos users se connectaient en premier lieu avec un login et mot de passe. Quand ce service a évolué, vous avez pu mettre en place une double authentification très facilement.

… Et plus scalable

Sur le Cloud, grâce au développement serverless, une entreprise peut mieux ajuster ces besoins en ressources, qu’ils soient à la hausse ou à la baisse. Ainsi, elle a un meilleur contrôle de sa consommation et ne paie que ce qu’elle consomme en ligne. 

Sur AWS, les services sont managés. L’élasticité de vos applications est assurée automatiquement par le Cloud Provider. Celui-ci ajuste la capacité nécessaire à maintenir à l’instant T en fonction des performances enregistrées. Ainsi, votre application reste disponible de façon optimale même s’il y a des changements brusques de charge de travail.

… Un code de meilleure qualité

développement serverless code de meilleure qualite

Dans le cadre d’un développement serverless, chaque service propose une fonction, et donc un code largement éprouvé et vérifié par les Cloud providers. Ce qui vous assure un code de bonne qualité. 

De plus, votre application étant divisée en micro-modules, la chasse au bug est beaucoup plus facile. La maintenance aussi !

… Avec des outils de supervision intégrés 

Cela étant, cette qualité n’empêche pas la supervision de vos solutions. Sur AWS, « Amazon CloudWatch » permet la surveillance de vos ressources et de vos applications par la collecte de données opérationnelles sous forme de journaux, métriques ou évènements. Objectif : s’assurer que tout fonctionne correctement. Et comme nous travaillons en microservices, si l’un d’entre eux est défaillant, nous pourrons le remplacer aisément par un autre. 

… Plus de résilience

L’indépendance de chaque fonction augmente considérablement la résistance de votre application face aux possibles pannes. Si un incident survient sur une des fonctions que vous avez développées (hors services AWS donc), cela ne rendra pas l’application indisponible. Dans ce cas, seule la fonction en question sera interrompue momentanément. 

… Pour réduire les coûts

développement serverless réduction des coûts

Comme le développement serverless fonctionne au paiement à l’usage, vous pouvez parfaitement les tester pour développer de nouvelles offres. Ainsi, vous pouvez voir si cela répond à une demande de vos clients, adapter ou ajuster votre proposition sans que cela ne vous coûte bien trop cher.

Enfin, les développeurs, experts en microservices, mettent bien moins de temps pour créer une application. Le Serverless nécessite donc moins de ressources et de développeurs. Aussi, si vous souhaitez lancer une application rapidement et adopter ce type d’architecture, entourez-vous de spécialistes. L’équipe de premaccess accompagne de nombreuses entreprises qui ont franchi le cap du serverless

… Plus d’innovation bien sûr !

Plus généralement, avec l’architecture serverless, nous devons réfléchir davantage à la structure de nos applications avant de nous lancer dans leur développement.

Pour tous développeurs, appréhender le Cloud et les microservices impose une nouvelle approche du métier. Que dois-je coder moi-même ? Que dois-je programmer à partir d’un service managé ? Comment l’interface est organisée entre ces différentes fonctions ?

Assurément, cette nouvelle architecture réduit considérablement les cycles de développement. Un constat qui doit nous pousser à réinventer nos business, repenser nos valeurs ajoutées et les éléments différenciants qu’apportent nos applications en matière d’innovation. 

En tant que développeur ou chef de projet, si vous souhaitez être accompagné lors de la création d’une application sur le Cloud, n’hésitez pas à contacter l’équipe de premaccess. Elle vous conseillera pas à pas, et vous présentera les atouts des services managés pour rendre votre projet innovant et évolutif.

Pour aller plus loin :

Les services AWS cités dans cet article :

Lorsque vous stockez des objets dans le AWS S3, vous ne payez pas seulement pour l’objet stocké, mais vous accédez généralement à ces objets d’une certaine manière.

Si votre compte AWS est relativement récent (moins de 12 mois), vous pourrez probablement bénéficier du volet gratuit. Cela signifie 5 Go de stockage gratuit + 20 000 demandes GET et 2 000 demandes PUT. N’oubliez pas que cette offre expire au bout de 12 mois à compter de la création du compte.

Nous avons donc 3 éléments dans notre facture pour réduire votre facture AWS S3.

Stockage : Selon le type de stockage que vous choisissez pour votre Bucket, c’est le prix que vous payez par Go de données stockées. Vous avez 3 types, Standard, Standard-IA (accès peu fréquent) et Glacier et le prix varie en fonction de la région où votre bucket est créé.

Demandes : Il s’agit essentiellement du nombre d’appels effectués à l’API S3 pour récupérer les objets. Le prix dépend du type de requête (les requêtes DELETE sont gratuites), de la région et du type de stockage.

Vous pourriez également voir sur votre facture des choses comme :

  • Amazon Simple Storage Service EU-Requests-Tier1 : Il s’agit des demandes PUT, COPY, POST, ou LIST.
  • Amazon Simple Storage Service EU-Requests-Tier2 (Service de stockage simple Amazon EU-Requests-Tier2) : Ceci est pour les demandes GET et toutes les autres demandes.
  • Amazon Simple Storage Service EU-Requests-Tier3 (Service de stockage simple Amazon EU-Requests-Tier3) : Il s’agit des demandes concernant les glaciers.
  • Amazon Simple Storage Service EU-Requests-Tier4 : Il s’agit du nombre de transitions vers l’accès standard peu fréquent que vous avez demandé.

Transfert de données : Ceci est mesuré en entrée (IN) et en sortie (OUT). La bonne chose est que les données IN sont gratuites. Le transfert OUT dépend de l’endroit et de la manière dont vous envoyez les données. Si vous transférez des données à une autre instance EC2 dans la même région, c’est gratuit. N’oubliez pas d’utiliser les terminaux VPC S3 pour économiser encore plus d’argent.

Vous avez la liste des prix sur le site Amazon S3 ici, attention, elle change très souvent.

Maintenant, comment puis-je mesurer en temps réel combien j’utilise AWS S3 ?

Avec la nouvelle console de gestion S3 (vous devez l’activer dans votre compte AWS), vous avez la liste des buckets.

Reduire facture S3 AWS, selectionnez votre bucket

Lorsque vous sélectionnez l’un d’entre eux, choisissez l’onglet Gestion (Management) en haut de la page.

Reduire facture S3 AWS, Allez dans Management Tab

Reduire facture S3 AWS, Cliquez sur Metrics

Ensuite, choisissez Métriques (Metrics)

Ici, vous pourrez choisir entre Stockage (Storage), Demandes (Requests) ou Transfert de données (Data Transfer). Il convient de préciser que la mesure de stockage est la seule qui soit Gratuite.

Je vous recommande vivement de garder un œil sur vos factures AWS et d’analyser celle-ci via l’outil Cost Explorer, vous trouverez de nombreuses façons d’économiser de l’argent et de recevoir les félicitations de votre patron 😉 !

#FinOps Addict 🙂 AWS Cost Killing

Aller plus loin : 

Article Premaccess = FinOps : comment réduire les couts sur AWS ?

Premaccess  = découvrir notre accompagnement avec notre équipe consulting

Les éditeurs d’applications SaaS le savent bien : les infrastructures fixes, appelées single-tenant, sont faciles à déployer mais ont leurs limites notamment en terme de maintenance. C’est pourquoi nous vous conseillons vivement de passer au multi-tenant. Nombre d’entre vous hésitent à franchir le pas.
Votre crainte : que les données de vos clients ne soient pas sécurisées.
Pourtant, sur AWS, cela est possible grâce à l’alliance de trois microservices : Cognito, IAM et DynamoDB. 

Après avoir expliqué ce qu’est une architecture multi-tenant, nous vous présentons comment utiliser ces trois services sur AWS pour la mettre en œuvre.

Qu’est-ce qu’une infrastructure multi-tenant ?

Avant d’aller plus loin, expliquons le terme « Tenant » : en anglais, il signifie « Locataire », « Client ». Chaque client rassemblant un « groupe d’utilisateurs ».

Modèle single-tenant

Dans une architecture single-tenant, une seule application est utilisée par plusieurs clients, mais chacun a sa propre version de l’application installée dans une instance dédiée. 

Ce modèle a plusieurs avantages :

  • Séparation franche entre chaque client, et donc entre chaque version de l’application.
  • Les données du client A ne sont pas mélangées avec celles du client B.
  • Chaque client possède sa propre base de données et son propre serveur d’application.
single-tenant : chaque client à sa propre infrastructure

single-tenant : chaque client à sa propre infrastructure.

Mais, très vite, il peut être compliqué à administrer. En effet :

  • Plus les clients vont être nombreux, plus il est difficile de gérer les différentes versions de l’application sur chaque infrastructure.
  • Le coût fixe pour chaque infrastructure peut être pénalisant pour les clients à faible trafic.
  • À partir de 100 clients, il est impératif d’automatiser la gestion des infrastructures, notamment avec des solutions comme BAM*.
  • À partir de 1 000 clients, ce n’est pratiquement plus gérable.

Modèle multi-tenant

À la différence, dans une architecture multi-tenant, une seule instance d’application va servir à plusieurs clients. Les ressources (et notamment les bases de données) y sont mutualisées. 

multi-tenant : une infrastructure pour plusieurs clients

multi-tenant : une infrastructure pour plusieurs clients.

Avec une seule infrastructure globale, au lieu d’une par client :

  • Il est plus facile d’en assurer la maintenance : lorsqu’une modification est apportée à un fichier, elle profite à tous les clients. Les mises à jour sont plus simples à assurer.
  • Vous réduisez vos coûts d’utilisation sur le cloud.
  • Les temps de réponse sont bien plus rapides.
  • La gestion des clients est simplifiée, qu’ils soient au nombre de 10 ou 10 000. 

En contrepartie, comme les données des clients sont mélangées, il faut que le logiciel soit développé pour séparer de manière logique les données des clients. Nous verrons plus loin que les technologies intégrées à AWS permettent de résoudre cette difficulté facilement. 

Modèle hybride

Il existe aussi une approche hybride qui permet d’optimiser son infrastructure sans avoir à faire beaucoup de modifications dans son application.

Approche hybride : mutualisation de l'application avec plusieurs bases de données dans la même instance

Approche hybride : mutualisation de l’application avec plusieurs bases de données dans la même instance.

Dans une approche hybride, seule l’application est mutualisée. Dans ce cas, chaque client dispose d’une base de données dédiée dans la même instance, ainsi que d’un login et d’un mot de passe.  Cette solution a l’avantage d’être facile à mettre en œuvre tout en commençant à faire des économies d’échelles sur les coûts d’infrastructures.

Comment faire du multi-tenant avec AWS ?

Lors de la création d’une architecture multi-tenant, l’enjeu crucial est, bien sûr, de sécuriser les datas afin qu’elles ne soient pas accessibles par tous.

Les développeurs d’applications SaaS doivent être en mesure d’identifier un utilisateur, de relier une donnée à son locataire, mais également un utilisateur à son locataire, et de savoir quels droits ont été concédés à tel ou tel user. 

Pour cela, sur le cloud d’AWS, nous vous conseillons d’associer les services DynamoDB, Cognito et IAM.

Organisez vos bases de données avec DynamoDB

Dans DynamoDB, chaque table, présente dans votre base de données, doit avoir une colonne permettant de stocker une référence au Tenant. En règle générale, il s’agit d’un identifiant client (organizationId). 

DynamoDB Dans cet exemple, la colonne “OrganizationId” permet de stocker la référence au Tenant

Dans cet exemple, la colonne “OrganizationId” permet de stocker la référence au Tenant.

Créez vos utilisateurs

En parallèle de cette gestion des tables, Amazon Cognito vous permet d’ajouter des utilisateurs à vos applications SaaS. Dans une infrastructure multi-tenant, ce service va lister les différents clients (et donc leurs utilisateurs et leurs groupes) ainsi que leurs identifiants. Par ailleurs, il va associer des attributs personnalisés à chaque utilisateur en fonction du locataire auquel il est lié afin de sécuriser son authentification, et gérer ses autorisations.

De plus, AWS gère pour vous toute la sécurité et la connexion. Tous les derniers standards, notamment les authentifications à multiples facteurs, sont disponibles sans développement de votre part.

Chaque utilisateur est membre d’un groupe. Vous pouvez ainsi gérer les accès aux données de manière fine en fonction des groupes.

Définissez des règles de sécurité

Enfin, avec IAM (Identity and Access Management), vous allez définir les règles de sécurité (polices) associées à chaque groupe. Grâce à ces règles, des filtres (LeadingKey) seront créés dans la base de données DynamoDB. Ainsi, l’utilisateur accédera exclusivement à la donnée liée au filtre. Il sera dans l’incapacité de voir le reste, comme s’il était dans une enclave dédiée.

IAM Dans cet exemple, les règles limitent aux personnes membres du groupe l’accès aux données ayant comme clé d’accès le code du client.

Dans cet exemple, les règles limitent aux personnes membres du groupe l’accès aux données ayant comme clé d’accès le code du client.

Conclusion

Entre le single-tenant et le multi-tenant, nous vous conseillons de choisir le second modèle d’infrastructure car il présente des atouts considérables : maintenance facilitée, frais allégés, gestion des clients simplifiée…

Par ailleurs, grâce à l’association des trois services d’AWS (DynamoDB, Cognito et IAM), la sécurité des données y est garantie. Et la gestion des droits d’accès aux données des clients n’est pas à faire par le développeur dans son code. Elle est gérée de manière séparée avec AWS. Cela présente plusieurs avantages :

  • La gestion du multi-tenant est indépendante du reste du code.
  • Plus généralement, la gestion du contrôle d’accès aux données est ainsi indépendante du code de l’application SaaS.
  • Il est possible d’utiliser d’autres services pour réaliser des statistiques sur les données par clients, avec QuickSight notamment.

* BAM (Build Automation Machine) est une solution innovante créée par premaccess. Elle permet d’automatiser la gestion et le cycle de vie de vos infrastructures et leur déploiement chez AWS. 

Aller plus loin :

Article AWS : https://aws.amazon.com/fr/partners/saas-factory/tenant-isolation/

Nos services : https://www.premaccess.com/#services

Premaccess  = Contactez notre équipe d’experts pour vos Services Managés Cloud

Développement  = Découvrir notre accompagnement pour vos développements SaaS ou Logiciel

Le 18 novembre dernier, AWS a annoncé la sortie de son AWS CloudFormation Registry et CLI, une extension d’AWS CloudFormation prenant en charge la création de ressources tierces via la console AWS CloudFormation. C’est également la première fois que le service AWS est associé à des partenaires de lancement tels que Spotinst et Fortinet.


Maintenant, grâce à la prise en charge de ces ressources tierces, AWS améliore toute la pratique de la création d’infrastructure dans le cloud, car le provisionnement s’étend désormais au-delà des ressources AWS pour inclure également des outils SaaS en provenance d’autres fournisseurs, renforçant la façon dont nous construisons dans le cloud.

Par conséquent, le but de cet article est de montrer l’importance d’IaC ‘Infrastructure as Code’ dans le domaine du cloud computing et de souligner l’importance des développements d’AWS pour son service AWS CloudFormation.


Les principes de l’IaC

IaC, abréviation de Infrastructure as Code, est la pratique selon laquelle les ressources sont décrites  par des scripts par opposition à l’utilisation de consoles de gestion qui permettent de créer manuellement des environnements de ressources.
Par conséquent, dans le cas d’AWS CloudFormation, vous n’avez pas besoin d’utiliser la console AWS ou de SDK pour créer des ressources AWS.
De plus, avec AWS CloudFormation Registry, vous avez plus besoin d’utiliser la console d’outils tiers pour utiliser leurs ressources.

Ces scripts lisibles permettent le déploiement automatique des ressources ainsi que les services requis qui vont avec. En effet, les outils IaC vont créer toutes les ressources nécessaire comme par exemple : les réseaux, les machines virtuelles, les équilibreurs de charge et les différents accès pour vos applications.


De plus, chaque fois qu’un script IaC est appliqué, il en résulte toujours le même environnement que celui décrit dans le script.

Par conséquent, les avantages deviennent évidents. L’IaC est une pratique courante pour les DevOps car l’objectif du DevOps est de réaliser l’automatisation du processus de production. En effet, avec l’IaC, nous sommes en mesure d’automatiser la construction de l’infrastructure, ce qui est encore plus crucial dans les environnements cloud.


Même si les environnements cloud soustraient une grande partie de l’architecture sous-jacente aux développeurs, ils nécessitent des configurations fastidieuses des ressources dépendante des contraintes du cloud provider choisi.
Par conséquent, les services IaC tels qu’AWS Cloudformation fournissent une certaine forme de répit face au besoin de configurations répétitives.

D’autres avantages incluent l’indépendance entre les états et les modèles.
Étant donné que l’IaC nous permet de modéliser notre infrastructure dans un format basé sur un script, nous pouvons définir l’état souhaité de notre infrastructure cloud.
Par conséquent, si l’infrastructure s’écarte trop de l’état souhaité, nous pouvons automatiser sa récupération à l’aide du modèle initialement utilisé.

De même, nous pouvons utiliser le même modèle pour répliquer l’état souhaité dans plusieurs environnements (Production/Pré-Production/Recette par exemple). Ceci est extrêmement avantageux à des fins de test, car cela permet  d’avoir des scénarios réels. Ainsi, au lieu d’avoir à configurer ardûment chaque composant pour refléter l’infrastructure à tester, nous pouvons simplement automatiser le provisionnement d’une infrastructure identique, suivi de tests automatisés facilités par les différents outils de CI / CD mis à disposition par le Cloud Provider.

Par conséquent, les outils IaC peuvent être considérés comme des livres  de recettes pour notre infrastructure cloud.
En fait, l’utilisation de cette analogie de livre de recettes pour les services IaC est si courante que Jeff Barr – Chief Evangelist d’AWS a habilement intitulé son blog d’introduction d’AWS CloudFormation https://aws.amazon.com/blogs/aws/cloudformation-create-your-aws-stack-from-a-recipe/, en 2011.

Cependant, les gens ne réalisent pas que les outils IaC ne sont pas comme vos livres de recettes ordinaires, mais plutôt comme des cuisines entièrement automatisées qui analysent ces recettes et cuisinent des infrastructures cloud complètes pour vous.

Nous pouvons convenir que l’IaC, en général, est impératif pour une expérience DevOps complète. La question est maintenant de savoir quels services le plus grand fournisseur de cloud, AWS, fournit en termes d’IaC ?
Avant, la réponse était CloudFormation et son générateur CDK (AWS Cloud Development Kit).


CloudFormation et ses avantages avec CloudFormation Registry

AWS CloudFormation fournit un langage commun pour vous permettre de décrire et de provisionner toutes les ressources d’infrastructure dans votre environnement cloud.
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html

CloudFormation vous permet de définir les ressources AWS souhaitées ainsi que leurs configurations et connexions dans des documents de plan directeurs appelés modèles CloudFormation. Ces modèles sont ensuite exécutés dans la console AWS CloudFormation pour provisionner l’infrastructure définie.
Ce faisant, le service garantit que les composants de l’infrastructure cloud sont déployés de la bonne manière en fonction des dépendances décrites dans le modèle CloudFormation.

Par exemple, si vous souhaitez qu’une instance EC2 s’exécute dans un VPC, CloudFormation garantit que le VPC est d’abord provisionné, puis l’instance EC2.
Cela signifie également que nous n’avons plus besoin d’utiliser la gestion AWS pour configurer et ajouter manuellement l’instance EC2 dans le VPC.

Cependant, un domaine que AWS CloudFormation n’avait pas était le provisionnement des ressources tierces. Oui, les ressources AWS constituent le cœur de l’infrastructure de l’application, mais ces composants communique très probablement avec des outils SaaS tiers quelque part dans le flux de travail de vos applications.
Pour revenir à l’exemple d’une instance EC2 dans un VPC, nous pouvons avoir besoin de cette instance EC2 pour ensuite interagir avec l’API Stripe.

Par conséquent, même si nous avons réussi à automatiser avec vos DevOps du côté AWS, nous ne disposions toujours pas d’outils lorsqu’il s’agissait de connecter nos infrastructures tiers à l’infrastructure AWS principale.
Cela nous ramènerait souvent à la case départ car les avantages de l’IaC discutés ci-dessus étaient limités aux seules ressources AWS.

C’est là qu’intervient AWS Cloud Registry !

Désormais, avec la nouvelle version, la capacités d’AWS CloudFormation a ce connecter sur les ressources externes est résolu. Le registre AWS CloudFormation permet le provisionnement de ces outils tiers externes avec les ressources AWS.

Avec la sortie de ce nouveau service, il y a un total de sept outils SaaS offrant leurs ressources sur le registre.
Par exemple, avec la prise en charge d’Atlassian Opsgenie par le registre AWS CloudFormation, vous pouvez désormais provisionner des ressources Opsgenie telles que des utilisateurs, des équipes et des intégrations avec vos ressources AWS.
Vous pouvez donc automatiser la configuration des services de gestion des incidents Opsgenie dans votre infrastructure AWS.

Cela signifie que nous pouvons désormais bénéficier davantage des pratiques DevOps, car AWS a étendu ses services IaC sur des piles de technologies externes et ne se limite pas uniquement à AWS.
De plus, AWS CloudFormation Registry est open source, de sorte que la communauté peut constamment créer plus de ressources personnalisées qui peuvent être provisionnées automatiquement via l’AWS CloudFormation CLI. Cela améliore l’adoption du cloud, en particulier en utilisant le IaC pour déployer vos architectures AWS.


Un pas de plus avec AWS CloudFormation CLI

AWS CloudFormation fournit des ressources tierces à inclure dans les livres de recettes de vos infrastructures cloud souhaitées.


Si nous devons suivre cette analogie de recette, le registre CloudFormation peut être considéré comme votre garde-manger de ressources, où votre garde-manger stocke les ressources fournies par les partenaires SaaS tiers.

La question est alors de savoir si vous souhaitez étendre ce garde-manger?

C’est là que le composant CLI entre dans la nouvelle version d’AWS CloudFormation. L’AWS CloudFormation CLI nous fournit un ensemble d’ustensiles qui nous permet de créer nos propres ressources personnalisées que nous pourrons ensuite inclure dans les modèles AWS CloudFormation, ce qui nous donne la liberté d’étendre nos garde-manger à l’infini.

AWS fournit la CFN ( CloudFormation Command Line Interface ) qui nous permet d’initialiser nos projets de ressources personnalisés, et génère automatiquement la structure de code de base pour nous et ensuite nous permet de tester nos ressources construites tout en l’enregistrant dans nos registres AWS CloudFormation privé .

AWS nous fournit un ensemble complet de ressources pour commencer à créer ces nouvelles ressources. De plus, la poussée de l’open source avec AWS CloudFormation open source signifie que nous pouvons nous attendre à ce que beaucoup de bibliothèque de ressources soit disponible et facile à inclus dans nos modèles AWS CloudFormation.

Améliorant ainsi toute l’expérience d’utilisation du service IaC, augmentant la vitesse avec laquelle nous construisons dans le cloud.


Récapitulatif de ce que AWS CloudFormation signifie pour le DevOps

Avec le registre AWS CloudFormation et l’interface CLI, nous voyons les avantages d’avoir des ressources tierces non AWS dans nos processus d’infrastructure cloud.

Nous pouvons être assurés que l’utilisation d’AWS CloudFormation pour des applications et la gestion des infrastructures cloud couvre désormais l’intégralité de votre besoins et pas seulement des ressources AWS spécifiques.

La flexibilité de l’AWS CloudFormation CLI et la fiabilité de l’expansion du registre AWS CloudFormation ne peuvent que signifier qu’avec le temps, comme de plus en plus de ressources seront disponibles, nous pouvons nous attendre à ce que le développement dans le cloud deviennent beaucoup plus facile. Nous ne devons plus réinventer la roue, il nous suffit maintenant de nous soucier de la destination.

Bonne lecture ! Contactez-nous si vous avez des besoins en Développement ou en Service Managés Cloud.

Qui n’a pas connu cette frustration de devoir renvoyer un vêtement ou une paire de chaussures, aussitôt reçus par La Poste, suite à une erreur de taille ? Pour éviter ces imprévus lors des commandes en ligne, la start-up Fitizzy a mis au point un algorithme particulièrement intelligent. Il recommande à l’internaute la taille qui lui convient le mieux en fonction de ses mensurations et des patronages de différentes marques. 

Dédié initialement au prêt-à-porter grand public, partenaire de grandes marques comme Promod, Naf Naf, Celio, Cyrillus ou bien Etam pour la lingerie, Fitizzy s’ouvre depuis deux ans au secteur professionnel.

L’apparition de cette offre B2B a été possible suite à la bascule des applications de Fitizzy dans le cloud AWS et à l’utilisation des microservices proposés par ce cloud provider. Lors de cette étape stratégique, la start-up a été soutenue par l’équipe de premaccess techniquement, mais également en termes de business. Christophe Del Fabbro, CTO de Fitizzy, a participé pleinement à cette migration.

Dans cette interview, il revient sur la genèse de Fitizzy, et sur l’offre proposée. Il nous explique également comment l’application a été déployée sur AWS afin d’accélérer le développement de cette entreprise innovante.

Avec Fitizzy, les leaders du prêt-à-porter réduisent leurs taux de retour

« Fitizzy est née en 2013 grâce à Sébastien Ramel et Gaultier Monier. Lorsqu’ils étaient étudiants, tous deux avaient toujours peur d’acheter des vêtements en ligne, car ils n’étaient jamais sûrs de commander la bonne taille. Ils ont cherché des outils pour régler cette problématique. Ils n’ont rien trouvé. C’est ainsi que leur est venue l’idée de monter cette application. 

Dès le début de ce projet, nous nous sommes consacrés au secteur du prêt-à-porter. Notre objectif premier était d’aider nos partenaires à recommander la bonne taille à leurs utilisateurs. Sur leur site e-commerce, et plus précisément sur leurs fiches produits, nous installons notre plugin via un bouton d’action. Lorsqu’il clique sur ce bouton, l’utilisateur doit renseigner plusieurs informations morphologiques (son sexe, son âge, sa taille et son poids). Ces données sont croisées avec les informations techniques de la marque afin de lui fournir une recommandation sur la taille la plus juste. 

Initialement, Fitizzy fournissait aux utilisateurs des recommandations de taille sur un produit donné. Désormais, nous allons plus loin en proposant des recommandations de produit en fonction de votre morphologie. Aujourd’hui, nous mettons ces services à disposition de plus d’une cinquantaine de marques dans le secteur du vêtement et de la chaussure.

Cette application permet clairement de mettre l’internaute en confiance lors de son achat en ligne – il a moins peur de se tromper lors du choix de la taille. De plus, elle réduit considérablement les retours clients suite à une commande en ligne. Ces retours, gratuits pour le consommateur, sont très coûteux pour le distributeur. 

À côté de cela, depuis deux ans, nous avons ouvert un nouveau marché dédié aux vêtements professionnels. De plus en plus d’entreprises ont besoin d’habiller leurs employés. Jusqu’à présent, ces entreprises passaient par des sociétés qui mandatent des agents chargés de relever sur place les mensurations de chaque employé.

Pour réduire ces coûts de déplacement, nous avons eu l’idée de créer une plateforme dédiée à la prise de mensuration. Sur cette plateforme, les employés remplissent un formulaire et nous informent sur leur morphologie. En fonction de ces informations collectées, nous produisons des recommandations de taille. Ainsi, il y a moins d’erreurs dans le nombre de modèles à produire, et les frais de gestion et livraison sont réduits.

Dans ce secteur, nous travaillons notamment avec Bragard, leader dans les vêtements professionnels pour la cuisine, les métiers de bouche et l’hôtellerie, ainsi qu’avec CWS-Boco, spécialiste dans les vêtements de chantier. »


Des architectures plus souples et plus flexibles grâce à AWS

« Notre application a basculé sur le cloud d’AWS il y a plus de deux ans. Il y avait un grand intérêt à faire ce pas car, à l’époque, nous travaillions encore sur des serveurs hébergés. Du coup, nous n’avions pas toute la souplesse qu’offre AWS et leurs services managés. La conception des nouvelles architectures était plus laborieuse, demandait plus de temps. Et le résultat était souvent plus coûteux que ce que peut nous apporter AWS aujourd’hui. »


Une migration pas à pas 

« Lorsque vous migrez une application sur AWS, trois possibilités s’offrent à vous. 

Soit vous prenez l’existant et vous essayez de le faire entrer tel quel dans AWS. Cela est possible. Il s’agit de la méthode « lift and shift ». Mais, elle coûte cher, car vous n’utilisez pas les fonctionnalités natives du cloud. 

Soit vous repensez toute l’architecture et le code de votre application afin de pouvoir optimiser au maximum les fonctionnalités natives du cloud. On parle alors de « refactoring ».

Dans notre cas, nous avons choisi un entre-deux, nous avons opté pour le « replatform ». Cette méthode permet de tirer parti des fonctionnalités de base du cloud, d’optimiser les coûts, sans engager un niveau de ressources élevé. Ainsi, lors de cette migration, épaulés par l’équipe de premaccess, nous avons pris le temps de préparer les grandes briques de notre application avant d’investir AWS, en évitant le simple « copier-coller ».

Nous avons  :

  • le coeur central, autonome, consacré à notre API.
  • puis nos services, le plugin, nos applications, les plateformes, tout ce qui est « web ». Ces éléments sont indépendants du coeur central.
  • Enfin, nos bases de données. »

Utiliser les données pour améliorer les services e-commerce

« La gestion des données est cruciale dans Fitizzy, notamment pour améliorer nos recommandations. Aussi, lors de notre bascule sur AWS, nous avons investi Amazon Kinesis et la chaîne de services suivants : S3 + Athena + QuickSight grâce au soutien des équipes de premaccess

Kinesis est un service managé permettant de collecter, trier et analyser des datas stratégiques des sites marchands de nos partenaires. Pour chacun de nos clients, nous analysons les pages vues, les clics sur notre bouton d’action, l’ouverture de notre plugin, le contenu de notre recommandation, l’ajout au panier, l’achat ou l’abandon de panier. En croisant l’ensemble de ces informations, nous cherchons à affiner nos outils.

L’ensemble de ces données sont mises à disposition de nos clients grâce au service Amazon QuickSight. Via un Dashboard dédié, chaque partenaire retrouve l’ensemble de ces datas sous forme de graphiques. Ces KPIs peuvent être utilisés par son service marketing pour améliorer les performances de son site e-commerce. Elles peuvent également être intéressantes par ses modélistes pour optimiser les nouvelles collections en analysant les données morphologiques du moment. »


Les + de premaccess : l’analyse des enjeux, la maîtrise des coûts et l’expertise AWS

« La force de premaccess tient dans son expertise dans le domaine du développement logiciel, des services managés d’AWS et de la migration. Lorsque nous nous sommes penchés sur ce projet de migration, son équipe a avant tout évalué nos enjeux.

Au-delà de « Est-ce que nous migrons sur AWS ? », notre réflexion s’est plutôt portée sur « Est-ce que cela vaut le coup que nous le fassions maintenant sur AWS et de cette manière ?

Est-ce rentable pour nous de recruter des ressources pour faire ce travail maintenant ou est-ce que cela vaut le coût d’attendre quelques semaines quand nous aurons plus de ressources, plus de budgets ? »

Avant même cette migration, premaccess nous a accompagné sur cette dimension « business » afin que nous optimisions nos finances.

En second temps, ils nous ont énormément conseillé dans le travail préparatoire à la migration, et dans la mise en place du plan d’action. Clairement, même si je suis développeur, je n’avais pas du tout d’expérience sur le cloud d’AWS. Leur participation sur le plan d’action a été très précieuse.

Enfin, une fois le plan de migration validé, une partie de la bascule sur AWS a été réalisée en interne avec le soutien de l’équipe de premaccess. Ils ont aussi pris en charge la partie « Landing Zone et Sécurité » de notre espace sur AWS (création d’utilisateurs, gestion des droits, préparation du réseau et des couches réseau, etc.). Ils l’ont déployée via leur solution SaaS BAM que nous utilisons désormais tous les jours pour nos environnements temporaires.

En partant d’un template bien défini, cet outil crée très rapidement des environnements parfaitement configurés. De quoi nous faire gagner beaucoup de temps. 

Par ailleurs, nous sommes toujours en quête d’efficience. Nous cherchons à normaliser nos technologies sur nos différents projets, à faire en sorte que nos cycles de développement soient similaires d’un projet à un autre. Cela est aujourd’hui facilité avec BAM. Cet outil nous assure une automatisation des processus, et ne laisse aucune place à l’erreur humaine.

Ainsi, nous nous concentrons davantage sur notre développement, sur notre coeur de métier. En tant que développeur, grâce à cette solution, je passe plus de temps à créer des fonctionnalités, à enrichir notre partie business qu’à mettre en place les infrastructures techniques pour nos applications. »


Prochain challenge : proposer Fitizzy en mode SaaS

« Désormais, notre prochain challenge sera de rendre Fitizzy complètement SaaS. Ainsi, n’importe quelle marque pourra configurer notre solution à travers notre interface sans même avoir besoin que nos équipes interviennent. L’idée est aujourd’hui mature. Les premières briques commencent à arriver. 

Clairement, ce nouveau projet aurait été bien difficile à mener sur notre ancienne infrastructure. Grâce à cet investissement sur le cloud d’AWS, il est désormais à notre portée, et ouvre de nouvelles perspectives. 

Dans le développement de Fitizzy, premaccess est aujourd’hui plus qu’un partenaire technique. Son équipe a une telle connaissance du développement logiciel avec AWS qu’elle nous aide à améliorer notre business et étoffer notre offre. Je pense notamment à ses conseils sur les services managés liés à la gestion des données et le serverless. De quoi avoir un coup d’avance et toucher de nouveaux marchés. »



Aller plus loin

Voici quelques services managés d’AWS utilisés par Fitizzy


Basculer tout ou partie de son infrastructure sur le Cloud d’AWS a un coût. Mais, il est possible d’optimiser ces dépenses. La solution idéale : avoir une démarche FinOps. Ce processus fait son apparition aujourd’hui dans les grands groupes. Il vise à rapprocher finance et ingénierie. En conjuguant leurs compétences, ses équipes analysent vos infrastructures avec un oeil nouveau avec pour objectifs une démarche FinOps pour améliorer votre usage du Cloud afin de réduire considérablement votre facture. 

Sur AWS, il existe 5 grands piliers ou astuces pour optimiser les coûts. Si vous souhaitez installer vos applications chez ce Cloud Provider, nous vous invitons à suivre ces 5 recommandations. Vous intégrerez ainsi la FinOps dans votre stratégie digitale.

FinOps #1 : Configurez efficacement la taille de vos instances

Sur AWS, il est possible d’ajuster la taille des services utilisés en fonction de vos besoins à l’instant T, et de les redimensionner au fur et à mesure selon les pics de charges enregistrés. Cet ajustement dépend de plusieurs facteurs : de votre environnement (développement, test ou production), de la fluctuation de votre activité en ligne, etc…

Bien adapter la taille de vos instances a un impact sur la capacité de calcul de votre infrastructure, sur sa mémoire, son stockage, le débit du réseau…

Pour cela, trois services managés sont à votre disposition sur AWS : 

Besoin d’une expertise FinOps contactez nos équipes de consultants dédiés ici

FinOps #2 : Optez pour l’élasticité

L’intérêt du FinOps sur le cloud est que vous pouvez augmenter ou réduire les ressources nécessaires en fonction de vos besoins. En cas d’augmentation de trafic, vous devrez utiliser plus de ressources. Une fois ce pic redescendu, inutile de garder cette configuration.

Objectif : ne payez que ce que vous consommez. 

Il existe deux types d’élasticité : une première basée sur le temps, une seconde calculée sur le volume de ressources nécessaires au bon fonctionnement. Sur AWS, plusieurs services managés vous aident à paramétrer ces élasticités :

  • Amazon EC2 Scheduler permet de configurer le planning de démarrage et d’arrêt des instances Amazon EC2.
  • AWS Lambda exécute votre code uniquement lorsque cela est nécessaire et s’adapte automatiquement, qu’il s’agisse de quelques demandes par jour ou de milliers par seconde.
  • AWS DataPipeline arrête et démarre les instances Amazon EC2 en exécutant des commandes CLI (AWS) sur un horaire fixe.
  • Amazon CloudWatch surveille votre utilisation des instances Amazon EC2 et les arrête si elles ne sont pas utilisées.
  • AWS Auto Scaling augmente et réduit automatiquement le nombre de vos instances Amazon EC2 afin de maintenir la performance du système en cas de pic de trafic et de réduire ses capacités en cas de période creuse.

Besoin d’une expertise FinOps contactez nos équipes de consultants dédiés ici

FinOps #3 : Utilisez le bon modèle de tarification

AWS proposait jusqu’à présent trois modèles de tarification : instances à la demande, instances réservées, et instances spot. Il en propose un quatrième depuis ce mois-ci : le Savings Plans. La combinaison de ces quatre modèles vous permettra de réduire les coûts.

Avec les instances à la demande, vous payez la capacité de calcul à l’heure ou à la seconde (60 secondes minimum) sans engagement à long terme.

Avec les instances réservées, vous bénéficiez d’une remise conséquente (jusqu’à 75 %) par rapport à la tarification à la demande. Vous disposez également d’une réservation de capacité quand elles sont exécutées dans une zone de disponibilité spécifique.

Avec les instances Spot Amazon EC2, vous profitez des capacités EC2 non utilisées dans le cloud AWS. Ces instances sont disponibles avec une réduction allant jusqu’à 90 % par rapport aux tarifs à la demande. Elles sont utilisables pour des applications statiques, tolérantes aux pannes ou flexibles comme, par exemple, les charges de travail du test et développement. 

Lancé en Novembre 2019, le Savings Plans offre les mêmes réductions que les instances réservées, mais, pour pouvoir y accéder, l’utilisateur doit s’engager à utiliser un montant spécifique de puissance de calcul (mesuré en dollars par heure) sur une période maximale de trois ans.

Ce modèle est intéressant pour les entreprises qui ont un aperçu de leurs besoins sur le long terme. Cela leur permettra de réserver les ressources nécessaires sur une période longue bien définie, tout en réalisant des économies.

Ce Savings Plans FinOps est disponible sous deux versions :

Le plan « Compute Savings » offre une grande flexibilité et permet de réduire vos coûts jusqu’à 66% (tout comme les instances réservées convertibles). Ce plan s’applique automatiquement à toute instance EC2, quelle que soit la région. Par exemple, vous pouvez passer d’instances C4 à C5, déplacer une charge de travail de Dublin à Londres, en bénéficiant des prix de ce plan d’épargne.

À la différence, le Savings Plans EC2 s’applique à une famille d’instances spécifique dans une seule région et mais offre un rabais le plus important (jusqu’à 72%). 

Savings Plan AWS

Pour aller plus loin sur le Savings Plans : https://aws.amazon.com/fr/savingsplans/

Besoin d’une expertise FinOps contactez nos équipes de consultants dédiés ici

FinOps #4 : Optimisez votre espace de stockage

AWS propose plusieurs services de stockage. La clé, pour assurer votre budget FinOps sur cette partie, est de bien choisir votre espace en fonction de vos usages.

Avec Amazon S3, vous disposez d’une offre large de stockage conçue pour différents types d’utilisation :

– S3 Standard est dédié au stockage de données « à usage général ».

– À l’inverse, Reduced Redundancy Storage (RRS) vous permet de stocker les données non critiques et reproductibles à des niveaux de redondance inférieurs à ceux du stockage standard Amazon S3.

– S3 Intelligent-Tiering permet de déplacer des données entre deux niveaux d’accès (fréquent et peu fréquent). Idéal pour les données dont les schémas d’accès sont inconnus ou modifiés.

– S3 Standard-Infrequent Access (S3 Standard-IA) est prévue pour les données auxquelles on accède rarement (copie de sauvegarde secondaire de données d’un site, etc…)

– Amazon S3 Glacier (S3 Glacier) et Amazon S3 Glacier Deep Archive (S3 Glacier Deep Archive) sont des classes de stockage destinées à l’archivage et la sauvegarde des données à long terme. Toutes deux proposent des options d’accès aux archives à coûts avantageux. Ces accès ont des délais allant de quelques minutes à 12 ou 48 heures.

Avec Amazon Elastic Block Store (Amazon EBS), vous optez pour un stockage permanent accessible par des instances EC2 simples. Cela est utile pour les bases de données relationnelles et NoSQL, les applications d’entreprise, et les analyses de Big Data.

Amazon Elastic File System (Amazon EFS) est utile pour le stockage simple de fichiers et pour une charges de travail basée sur Linux. 

Amazon FSx for Lustre est nécessaire pour les charges de travail demandant une importante capacité de calcul, telles que le Machine Learning et le traitement de données multimédia.
Amazon FSx for Windows File Server est dédié aux applications Windows qui nécessitent un stockage de fichiers vers AWS.

AWS Storage Gateway soutient des opérations de cloud bursting, de hiérarchisation et de migration.

Enfin, AWS Backup centralise et automatise la sauvegarde de données sur l’ensemble des services AWS.

Besoin d’une expertise FinOps contactez nos équipes de consultants dédiés ici

FinOps #5 : Mesurez et surveillez vos environnements

Pensez, en premier lieu, à baliser (Charte de TAG) vos instances, images et diverses ressources. 

Utilisez, en second temps, AWS Cost Explorer. Avec ce service managé, vous visualisez et comprenez mieux votre utilisation d’AWS avec vos balises en place projet par projet. Ainsi, vous maximisez votre gestion du Cloud au fur et à mesure. Grâce à AWS Cost Explorer, vous disposez de rapports sur vos coûts mensuels par service, par compte, par projet…

Enfin, si vous voulez être alerté en cas de dépassement de budget, optez pour AWS Budgets. Avec ce service, vous définissez des montants à investir. Une fois cette somme atteinte, vous êtes aussitôt prévenu.

Adopter une démarche FinOps n’est pas simple. Taille des instances, auto-scaling, tarification, stockage… Plusieurs éléments sont à prendre en compte pour réussir à jongler entre ingénierie et coûts.
Aussi, si vous souhaitez réduire vos dépenses d’infrastructure sur AWS, n’hésitez pas à solliciter les équipes de premaccess. Spécialisées dans les services managés de ce Cloud Provider, elles auront à coeur de vous conseiller et de vous accompagner dans cette quête d’optimisation technique et financière FinOps .

Besoin d’une expertise FinOps contactez nos équipes de consultants dédiés ici #FinOps #CostKilling addict 🙂

Les premières annonces faites à AWS re:Invent 2019

Depuis le 2 décembre, les experts d’AWS, à travers le monde, se sont donné rendez-vous à la conférence annuelle du cloud provider, AWS re:Invent 2019, à Las Vegas. L’équipe de premaccess n’a pas manqué cet évènement incontournable. Elle vous rapporte les premières annonces d’AWS, tant en nouveaux services qu’en fonctionnalités supplémentaires.


Amazon Bracket

Vous allez découvrir l’informatique quantique (Quantum Computing). À la différence des ordinateurs classiques qui réalisent des opérations avec des bits égaux à 0 ou 1, les ordinateurs quantiques peuvent produire des opérations avec des bits à l’état de 0 et 1. Nous parlons alors de qubits. Ces ordinateurs peuvent ainsi démultiplier le nombre de calculs. Ils sont rares et doivent fonctionner dans des environnements physiques contrôlés. Avec Amazon Bracket, vous pouvez acquérir une expérience pratique des qubits et des circuits quantiques, créer et tester vos circuits dans un environnement simulé.

https://aws.amazon.com/de/blogs/aws/amazon-braket-get-started-with-quantum-computing/


Amazon Outpost

Annoncé l’an dernier en preview, ce service est désormais disponible. Il vous permet d’exécuter votre infrastructure AWS sur site, en ayant accès aux mêmes API et outils disponibles aujourd’hui sur le cloud.

https://aws.amazon.com/fr/outposts/


Amazon EKS est maintenant disponible sur Amazon Fargate

Ainsi, vous pouvez utiliser Amazon Elastic Kubernetes (EKS) pour exécuter les pods Kubernetes sur AWS Fargate. EKS et Fargate facilitent l’exécution d’applications basées sur Kubernetes sur AWS. Avec AWS Fargate, plus besoin d’être des experts des opérations Kubernetes pour gérer un cluster hautement disponible et optimisé en termes de coûts. Plus besoin non plus de gérer les instances EC2. 

https://aws.amazon.com/fr/blogs/aws/amazon-eks-on-aws-fargate-now-generally-available/


Amazon S3 Access Points

est une nouvelle fonctionnalité S3. Elle simplifie la gestion de l’accès aux données partagées. Avec S3 Access Points, vous pouvez facilement créer des centaines de points d’accès avec un nom dédié et des autorisations personnalisées sur votre application. 

https://aws.amazon.com/fr/about-aws/whats-new/2019/12/amazon-s3-access-points-manage-data-access-at-scale-shared-data-sets/


Provisioned Concurrency pour les fonctions Lambda

alors que Lambda fête ses 5 ans, l’équipe d’AWS nous propose de contrôler encore mieux les performances de nos applications en serverless. Et ce, avec Provisioned Concurrency. Cette fonctionnalité maintient les fonctions initialisées de vos applications pour qu’elles répondent en quelques millisecondes. Cela peut être notamment utile pour les microservices.

https://aws.amazon.com/fr/blogs/aws/new-provisioned-concurrency-for-lambda-functions/


Amazon CodeGuru

Vous pouvez automatiser la révision de votre code. Même pour les ingénieurs les plus expérimentés, il peut être difficile de détecter des problèmes dans le code lors de revues par des pairs ou lors de tests unitaires. Amazon CodeGuru vous permet d’identifier les lignes de code les plus chères dans vos applications et de recevoir des recommandations afin de les corriger ou de les améliorer.


https://aws.amazon.com/fr/about-aws/whats-new/2019/12/aws-announces-amazon-codeguru-for-automated-code-reviews-and-application-performance-recommendations/


Côté Machine Learning, plusieurs nouvelles fonctionnalités ont été ajoutées à Amazon SageMaker.

Nous retrouvons notamment :

Studio : premier environnement de développement entièrement dédié au Machine Learning

https://aws.amazon.com/fr/blogs/aws/amazon-sagemaker-studio-the-first-fully-integrated-development-environment-for-machine-learning/

Model Monitor : surveillance automatique de vos modèles de Machine Learning en production

https://aws.amazon.com/fr/blogs/aws/amazon-sagemaker-model-monitor-fully-managed-automatic-monitoring-for-your-machine-learning-models/

Autopilot : pour créer des modèles de Machine Learning de haute qualité

https://aws.amazon.com/fr/blogs/aws/amazon-sagemaker-autopilot-fully-managed-automatic-machine-learning/


EC2 Image Builder

jusqu’à présent, il n’était pas simple d’automatiser la génération d’images virtuelles. EC2 Image Builder pallie ce manque. Ce nouveau service facilite et accélère la création et la maintenance d’images de système d’exploitation sécurisé pour Windows Server et Amazon Linux 2. Et ce, à l’aide de pipelines de génération automatisés. Les images, créées par EC2 Image Builder, peuvent être utilisées avec Amazon Elastic Compute Cloud (EC2).

https://aws.amazon.com/de/blogs/aws/automate-os-image-build-pipelines-with-ec2-image-builder/


Managed Cassandra Service

avec Apache Cassandra, vous stockez et gérez de grandes quantités de données structurées. Mais, la gestion de ces données n’est pas toujours simple et peut prendre beaucoup de temps. Pour remédier à cela, AWS lance le service Amazon Managed Apache Cassandra Service (MCS). Il s’agit d’un service de base de données évolutif, hautement disponible et compatible avec Apache Cassandra. Amazon MCS étant serverless, vous ne payez que pour les ressources que vous utilisez. Il redimensionne automatiquement vos tables en fonction du trafic de vos applications. Avec MCS, vous n’avez pas de limite dans la taille des tables. Vos données sont répliquées automatiquement trois fois sur plusieurs zones de disponibilité AWS pour des raisons de durabilité. Enfin, ce nouveau service est intégré à AWS Identity and Access Management (IAM) pour vous aider à gérer l’accès à vos tables et données.

https://aws.amazon.com/fr/blogs/aws/new-amazon-managed-apache-cassandra-service-mcs/


Amazon Detective

Vous aide à analyser et à visualiser la sécurité de vos données à grande échelle. Ce service n’est pas encore disponible, mais vous pouvez en avoir un aperçu ici :

https://pages.awscloud.com/amazon-detective-preview.html


UltraWarm

Nouvel outil de stockage de haute disponibilité pour Amazon Elasticsearch Service. Entièrement managé et peu coûteux, il est aujourd’hui disponible en preview. Il offre jusqu’à 900 To de stockage.

https://aws.amazon.com/fr/blogs/aws/announcing-ultrawarm-preview-for-amazon-elasticsearch-service/


Firecracker-containerd

Le repository Firecracker-containerd, disponible sur Github, permet d’utiliser un container runtime, Containerd, pour manager les microVM de Firecracker. Firecracker est une technologie de virtualisation open source spécialement conçue pour gérer des services sécurisés, multi-locataires et basés sur des conteneurs. Grâce à ce service, présenté l’an dernier, vous pouvez déployer des charges de travail sur des machines virtuelles légères (microVM). Ces dernières offrent une sécurité et une isolation de charge de travail améliorées par rapport aux machines virtuelles traditionnelles, tout en optimisant la rapidité et l’efficacité des conteneurs. Firecracker a été développé par AWS pour améliorer l’expérience client notamment sur AWS Lambda et AWS Fargate.


https://github.com/firecracker-microvm/firecracker-containerd
https://firecracker-microvm.github.io/


Pour suivre les prochaines annonces faites au re:Invent 2019, n’hésitez à nous suivre sur notre blog et sur les réseaux sociaux.

Depuis sa création en 2005, la société marocaine Prestigia travaille main dans la main avec premaccess. Après lui avoir demandé de gérer son hébergement informatique, elle entame désormais, à ses côtés, une nouvelle transformation digitale en migrant son infrastructure sur AWS.

Prestigia propose des hébergements de charme et de luxe à travers le monde. Son site, Prestigia.com, est une plateforme B2C construite à partir de composants open source (PHP, Go, MySQL, ElasticSearch, Redis, MongoDB). Sur ce projet de migration, les équipes de premaccess ont procédé en deux étapes :

  • Elles ont refactoré et migré ce site avec BAM (Build Automation Machine),
  • Elles ont accompagné Prestigia dans sa montée en puissance sur les services AWS.

1E ÉTAPE : REFACTORER ET MIGRER CE SITE AVEC BAM (BUILD AUTOMATION MACHINE)

Refactoring et automatisation

Le « refactoring » demande de repenser l’architecture et la manière de diffuser le code des applications métier du client au sein de celle-ci afin de pouvoir optimiser les fonctionnalités natives du cloud. Cette approche est plus longue à mettre en place que le « lift and shift » ou le « replatform ». Mais, sur le moyen et long terme, elle permet de réduire les coûts d’utilisation des services clouddrastiquement et surtout de pouvoir proposer au client des nouveaux services innovants rapidement.

Jusqu’à présent, le site de Prestigia était hébergé sur un cluster VMware (cloud privé). Avant d’entamer sa migration, les experts AWS de premaccess ont donc refactoré l’architecture du site avec l’outil d’automatisation BAM (Build Automation Machine).

Solution 100% agile, BAM permet d’automatiser les différentes étapes d’un déploiement sur AWS. En partant des modèles de templates simples pour chaque Tier de l’infrastructures (réseau, sécurité, puissance de calcul, base de données, Cache & CI/CD, etc), les devOps ont ainsi pu déployer rapidement et automatiquement les différents environnements de l’application. 

Well architected

Afin de rendre l’application « well architected », conforme aux normes du cloud provider, chaque composant de l’application a ainsi basculé vers un service d’AWS.

Les applications ont migré vers des fermes (AutoScaling Group) de serveurs virtuels Amazon EC2. Cette technologie AWS offre une capacité de calcul évolutive avec une élasticité du nombre de machines dans le cluster de chaque application métier du client. Cela rend la plateforme stable en cas de montée ou descente de trafic.

La base de données MySQL a été déplacée vers AWS RDS avec une redondance multi datacenter dans la même région (multi-AZ). Ce service managé est fourni par AWS pour les bases de données (mySQL / Postgres / SQL Server / Oracle).

MongoDB a migré vers DocumentDB. Amazon DocumentDB est un service de base de données de documents rapide, scalable, hautement disponible. Entièrement géré, il prend en charge les charges de travail MongoDB.

Les bases de données mySQL et MongoDB ont été déplacées avec l’outil DMS afin de réduire les temps d’arrêt. Dans le cadre du projet Prestigia, le temps d’arrêt a été quasi nul. Les différentes bases de données du client reposent sur des services AWS qui ont été conçus pour fournir une disponibilité de 99,99 %. Ils sont répliqués avec plusieurs copies des données dans différentes zones de disponibilité AWS. Amazon surveille ainsi en continu l’intégrité des instances de bases de données et, en moins de 30 secondes en moyenne, bascule automatiquement vers un réplica en lecture en cas de panne.

La sauvegarde a été mise en œuvre avec la sauvegarde continue RDS native et les fonctionnalités de cycle de vie EBS. Une seconde migration devrait avoir lieu dans le courant de l’été pour migrer les bases de données supportées par RDS vers RDS Aurora Serverless.

Une surveillance de la plateforme a été effectuée avec Amazon CloudWatch. Ce service d’AWS recueille les métriques et les journaux depuis toutes les ressources. Cela permet d’avoir une visibilité sur l’ensemble du système déployé, et notamment les métriques clés, comme l’utilisation du CPU, de la mémoire et de tous les métriques nécessaire pour assurer une qualité de service optimale.

2E ÉTAPE : MONTER EN PUISSANCE SUR LES SERVICES AWS

Une fois la migration achevée, Prestigia a souhaité bénéficier davantage des services d’AWS.
Objectifs : aller encore plus loin, faciliter l’expérience utilisateur sur son site et réduire au maximum ses coûts.

Réduire les coûts et les temps de chargement

Dans cette optique, certaines transactions du site sont désormais gérées avecAWS Lambda (Function as a Service par AWS). Avec ce service, Prestigia paie uniquement le temps de calcul consommé. Aucun frais n’est engagé quand le code n’est pas exécuté sur cette partie du site.

Par ailleurs, étant donné que le site Prestigia.com propose de l’hébergement de luxe à travers le monde, il répond aujourd’hui sur différentes zones géographiques. Par conséquent, son trafic fluctue sans cesse en fonction de l’activité des régions sur lesquelles il est positionné. Premaccess travaille à ce jour pour optimiser la vitesse de chargement des pages de ce site à travers le monde. L’objectif est de faire en sorte que le site réponde le plus rapidement possible partout et au meilleur tarif. “L’intérêt des services d’AWS est qu’ils nous permettent de gérer les différentes courbes de trafic de notre site, explique Youness Chraïbi (CEO Prestigia). Nous n’avons pas les mêmes trafics en fonction des zones géographiques, sur l’année, voire sur la semaine. Notre but ici est d’être au top en terme de performance et de chargement des pages. Mais également de ne payer que ce que nous consommons.”

INTELLIGENCE ARTIFICIELLE, MACHINE LEARNING & RECOMMANDATIONS PERSONNALISÉES

Après deux ans d’acculturation à Amazon Web Service, Prestigia compte bien innover grâce aux briques de services d’AWS. Sa prochaine étape consistera à utiliser le Machine Learning.

Quand il s’agit de Machine Learning et d’AI, premaccess cherche toujours à ramener ces clients à un cas d’usage métier. La question primordiale est : « Quel est votre besoin ? ». Pour Prestigia, l’idée sera de produire des recommandations, et ainsi d’orienter ses utilisateurs lors de leurs recherches. 

Avec l’intelligence artificielle, Youness Chraïbi veut “humaniser” la relation client. “Nous souhaitons ajouter un volet d’intelligence artificielle afin de conseiller encore mieux nos clients. Notre objectif avec l’AI est que l’on ait une relation plus humaine qu’avec un chatbot.”

En fonction de la manière dont un internaute surfera sur le site, le Machine Learning, interprétera ses requêtes afin de lui offrir une expérience utilisateur la plus personnalisée possible et une série de recommandations proches de ses centres d’intérêts.

Le déploiement du site Prestigia.com sur AWS est l’exemple même d’un accompagnement réussi. Lors de cette migration, Youness Chraïbi a continué à se concentrer sur son coeur de métier, l’innovation dans l’hôtellerie. Et pour mettre tout cela en oeuvre sur AWS, il a trouvé appui auprès des experts de premaccess

Ces derniers l’ont invité à avoir une vision à long terme sur AWS. Pour cela, ils ont refactoré et migré ce site avec BAM (Build Automation Machine). Cette approche lui permet aujourd’hui de réduire les coûts d’utilisation des services Cloud, et lui donne un accès plus rapide aux nouveaux services innovants de ce Cloud Provider (Intelligence Artificielle, le Machine Learning et l’Internet des objets). De quoi s’ouvrir à de nouveaux business model, et développer encore davantage cette entreprise grâce au digital.

INTERVIEW : 

Alors, si vous aussi, vous souhaitez migrer vos infrastructures sur AWS, l’équipe de premaccess est à votre disposition. Elle répondra à toutes vos questions et vous accompagnera pas à pas dans vos migrations ou dans la mise en place de vos nouveaux projets d’infrastructure cloud ou digitaux

1 – Le « lift and shift » consiste à migrer une application d’un environnement à un autre sans procéder à une quelconque refonte et modification de code. Cette méthode est aujourd’hui la plus utilisée. Elle est simple, rapide à effectuer. Cela étant, les migrations « lift and shift » ne bénéficient pas des fonctionnalités natives du cloud, telles que l’élasticité. Cette méthode peut s’avérer coûteuse sur le moyen et long terme.
2 –  Le « replatform » vise à déplacer vos applications vers le cloud avec une petite mise à niveau, en utilisant une offre de base de données gérée par le cloud ou en ajoutant l’auto-scaling (élasticité de certaines applications) activé par l’automatisation. Cette approche offre un compromis solide entre le « lift and shift » et le « refactoring ». Elle permet de tirer parti des fonctionnalités de base du cloud, d’optimiser les coûts, sans engager un niveau de ressources élevé.  

Ressources : 

AWS = services et solutions

Consulting  = découvrir notre accompagnement 

Prestigia = Découvrir leur site internet