AWS: Tout ce que vous devez savoir sur les Amazon Web Services

Article publié le et mis à jour le .

AWS Amazon Web Services

AWS est le leader du Cloud Computing sur le marché et ce n’est pas prêt de s’arrêter. Ne pas connaître AWS dans la décennie 2020 va vite devenir un handicap.

Les développeurs qui ont appris à l’utiliser se voient offrir de meilleurs opportunités tant dans leur carrière que pour développer leurs projets personnels.

Mais la route pour apprendre AWS peut être compliquée avec le nombre de Services qu’Amazon propose et il existe de nombreuses certifications AWS.

Heureusement je suis passé par là et je vous explique les quelques services indispensables pour commencer à maîtriser AWS.

Commençons sans plus tarder en explorant les Amazon Web Services les plus utilisés !

AWS Management Console : Gérer vos Amazon Web Services

AWS Management Console

Quand on parle de l’AWS Management Console, on parle simplement du site d’AWS une fois connecté.

Management Console est une application web pour la gestion de tous vos services AWS. La Management Console consiste en une liste de différents services parmi lesquels vous pouvez choisir. Elle fournit également toutes les informations relatives à votre compte comme la facturation.

Cette console fournit une interface utilisateur pour interagir avec les différents Amazon Web services comme créer des buckets Amazon S3, le lancement et la connexion aux instances Amazon EC2, le réglage des alarmes Amazon CloudWatch, etc.

AWS cli: L’interface de ligne de commande Amazon

AWS Command Line Interface

Il s’agit d’un outil open source permettant de communiquer avec les ressources et les services d’AWS en utilisant une interface de ligne de commande. En d’autres termes, vous pourrez interagir avec vos services directement depuis votre terminal. Cet outil nous permet de gérer tous les services AWS et de contrôler leur comportement. Vous pourrez également utiliser le CLI pour automatiser la gestion des ressources et des services AWS.

Le AWS-cli est un outil Python compatible Windows, Linux et macOS.

AWS S3: Un stockage de données dans le Cloud

AWS S3

Qu’est-ce que AWS S3 ?

Amazon S3 (Simple Storage Service) est un service web scalable, à haut débit et à faible coût, conçu pour la sauvegarde et l’archivage en ligne de données et de programmes d’application. Il permet de charger, stocker et télécharger tout type de fichier jusqu’à 5 To. Ce service permet aux abonnés d’accéder aux mêmes systèmes qu’Amazon utilise pour gérer ses propres sites web. L’abonné a le contrôle de l’accessibilité des données, c’est-à-dire qu’il peut y accéder de manière privée ou publique.

Examinons l’AWS S3. S3 est un service de stockage d’Amazon, facile à utiliser, scalable et bon marché. Vous pouvez utiliser S3 pour stocker n’importe quel volume de données pour un large éventail de cas d’utilisation.

L’hébergement de sites web statiques, l’archivage de données et la fourniture de logiciels sont quelques scénarios généraux dans lesquels S3 serait un outil parfait.

Vous pouvez facilement pousser et tirer des données avec S3 en utilisant le SDK AWS. S3 prend également en charge un certain nombre de langages de programmation populaires, de sorte que vous pouvez utiliser votre pile existante et intégrer S3 assez facilement.

Pourquoi utiliser AWS S3 ?

  • Faible coût et facilité d’utilisation - Avec Amazon S3, l’utilisateur peut stocker une grande quantité de données à un coût très faible.

  • Sécurisé - Amazon S3 prend en charge le transfert de données via SSL et les données sont automatiquement cryptées une fois qu’elles sont téléchargées. L’utilisateur a un contrôle total sur ses données en configurant les politiques de stockage à l’aide de AWS IAM.

  • Scalabilité : Avec Amazon S3, il n’y a pas à s’inquiéter des problèmes de stockage. Nous pouvons stocker autant de données que nous en avons et y accéder à tout moment.

  • Performances élevées : Amazon S3 est intégré à Amazon CloudFront qui distribue le contenu aux utilisateurs rapidement.

  • Intégration avec les services AWS : Amazon S3 s’intègre avec les services AWS comme par exemple Amazon CloudFront, Amazon CloudWatch, Amazon Kinesis, Amazon Route 53, AWS Lambda, Amazon DynamoDB, etc.

AWS S3 : conclusion

Amazon S3 est un excellent outil pour vos besoins de stockage d’applications web ou mobiles. Avec une tarification à la demande et une évolutivité à la base, S3 a été la solution de stockage dans le cloud préférée des petites et grandes entreprises.

Des entreprises allant de Netflix à Pinterest font confiance à S3 pour leurs données, grâce à la promesse de durabilité des données faite par Amazon.

Vous pouvez également utiliser Amazon S3 comme solution de stockage personnelle ou héberger votre prochain projet via un hébergement de site statique.

💡 Si vous voulez stocker de la data dont vous n’avez pas souvent besoin, vous pouvez aussi utiliser S3 Glacier qui ne coûte presque rien, mais qui nécessitera un peu de temps pour récupérer vos données.

En bref, S3 est une solution de stockage polyvalente qui répond à un large éventail de cas d’utilisation.

AWS Lambda: Executer des fonctions Serverless

AWS Lambda

Qu’est-ce que AWS Lambda ?

AWS Lambda est un service de cloud computing qui inspecte les actions au sein de l’application et répond en déployant des fonctions définies par l’utilisateur. Lambda gère automatiquement les ressources de calcul dans plusieurs zones de disponibilité et les scale lorsque de nouvelles actions sont déclenchées.

Vous pourrez coder vos fonctions AWS Lambda nativement en Java, Python et Node.js et le service peut également lancer des processus dans des langages pris en charge par Amazon Linux ce qui donne accès aux Shell Scripts ou d’autres langages de programmation comme Go et Ruby par exemple.

Pourquoi utiliser AWS Lambda ?

Voici quelques-uns des avantages de l’utilisation des tâches Lambda

  • Une fois votre fonction Lambda créée, vous pourrez la lancer automatiquement quand certains événements se produisent (nouvel utilisateur cognito par exemple), de manière régulièrement en planifiant les planifiant ou bien de manière contrôlée quand un utilisateur fait quelque chose ou vous pouvez aussi le lancer vos fonctions lambda a la main.

  • Toute fonction qui existe déjà pourra être réutiliser dans un contexte similaire ou différent une fois que vous l’avez codé.

  • Vous pouvez surveiller et débugger vos lambda dans Amazon Cloudwatch pour profiter d’un bon système de log

  • Les tâches lambda ne doivent pas être enregistrées comme les types d’activité des fonds souverains amazoniens.

Dans un de mes articles, je vous explique comment j’ai utilisé AWS Lambda et Amazon CloudWatch pour faire tourner un Bot Twitter en Python dans le cloud.

AWS EC2: Deployer des solutions de Cloud Computing facilement

AWS EC2

Qu’est-ce que Amazon EC2 ?

Amazon EC2 (Elastic Compute Cloud) est une interface de service web qui fournit une capacité de calcul redimensionnable dans le cloud AWS. Elle est conçue pour permettre aux développeurs d’avoir un contrôle total sur l’évolution du web et les ressources de calcul.

Les instances EC2 peuvent être redimensionnées et le nombre d’instances peut être augmenté ou réduit selon nos besoins. Ces instances peuvent être lancées dans un ou plusieurs lieux ou régions géographiques et dans des zones de disponibilité. Chaque région comprend plusieurs options à des endroits distincts, connectés par des réseaux à faible latence dans la même région.

💡 D’une instance Linux pour faire tourner un back-end python avec django a une machine virtuelle Windows, EC2 fera parfaitement l’affaire pour vos besoins d’OS dans le cloud. En plus, vous recevrez 1 an gratuit sur certaines machines virtuelles (VM) avec le très généreux Free-Tier d’AWS !

Pourquoi utiliser AWS EC2 ?

  • Fiable - Amazon EC2 offre un environnement très fiable où le remplacement des instances est rapidement possible. L’engagement de l’accord de niveau de service est une importante disponibilité pour chaque région d’Amazon EC2.

  • Conçu pour les services Web Amazon - Amazon EC2 fonctionne parfaitement avec les services Amazon comme Amazon S3, Amazon RDS, Amazon DynamoDB et Amazon SQS. Il fournit une solution complète pour le traitement des requêtes et le stockage dans un large éventail d’applications.

  • Sécurisé - Amazon EC2 fonctionne dans le Cloud privé virtuel d’Amazon pour fournir un réseau sécurisé et robuste aux ressources.

  • Outils flexibles - Amazon EC2 fournit les outils nécessaires aux développeurs et aux administrateurs système pour créer des applications en cas de panne et s’isoler des situations de panne courantes.

  • Peu coûteux - Amazon EC2 veut que nous ne payons que pour les ressources que nous utilisons. Il comprend plusieurs plans d’achat tels que les instances à la demande, les instances réservées, les instances ponctuelles, etc. que vous pouvez choisir en fonction de vos besoins.

AWS IAM: Administrer l’accès des identités et des groupes

AWS IAM

Qu’est-ce que Amazon IAM ?

AWS Identity and Access Management (IAM) est un service web permettant de contrôler de manière sécurisée l’accès aux ressources AWS. Il vous permet de créer et de contrôler des services d’authentification des utilisateurs ou de limiter l’accès à un certain groupe de personnes qui utilisent vos ressources AWS.

Le cloud Amazon Web Services (AWS) offre aux utilisateurs une plateforme virtuelle sécurisée pour déployer leurs applications. Il offre une protection des données de haut niveau par rapport à un environnement sur site, à un coût moindre. Parmi les différents services de sécurité AWS, la gestion des identités et des accès (IAM) est le plus utilisée. Il permet aux utilisateurs de contrôler l’accès aux ressources et services AWS de manière sécurisée. Il permet également de créer et de gérer les utilisateurs et les groupes AWS, et fournit les autorisations nécessaires pour autoriser ou refuser l’accès aux ressources AWS. Cet article explique le fonctionnement de AWS IAM, ses fonctionnalités et les meilleures pratiques.

AWS IAM est généralement défini comme la gestion des identités et des accès, qui est l’un des meilleurs services web permettant de fournir un contrôle d’accès sécurisé à toutes les ressources AWS. Vous pouvez utiliser cette option IAM afin de contrôler facilement les ressources autorisées et non autorisées.

Pourquoi utiliser AWS IAM ?

  • Accès partagé au compte AWS. La principale caractéristique de l’IAM est qu’il vous permet de créer des noms d’utilisateur et des mots de passe séparés pour les utilisateurs ou les ressources individuelles et de déléguer l’accès. Vous gerez qui a accès a quoi sur vos services AWS.
  • Autorisations granulaires. Des restrictions peuvent être appliquées aux demandes. Par exemple, vous pouvez permettre à l’utilisateur de télécharger des informations, mais lui refuser la possibilité de mettre à jour les informations par le biais des politiques.
  • Authentification 2FA : les utilisateurs fournissent leur nom d’utilisateur et leur mot de passe ainsi qu’un mot de passe unique provenant de leur téléphone - un numéro généré de manière aléatoire utilisé comme facteur d’authentification supplémentaire
  • Amazon IAM est gratuit !

AWS Cognito: Gérer votre base utilisateurs

AWS Cognito

Qu’est-ce que Amazon Cognito ?

Les applications web permettent généralement de combiner un nom d’utilisateur et un mot de passe valides pour une connexion réussie à l’application. Les flux d’authentification modernes intègrent davantage d’approches pour garantir l’authentification des utilisateurs. L’utilisation d’AWS ne fait pas exception à la règle, grâce aux capacités et aux fonctionnalités offertes par AWS Cognito.

Le service Amazon Cognito est conçu pour fournir des API et une infrastructure pour les principales fonctionnalités de l’espace de gestion des utilisateurs telle que l’authentification, l’autorisation et la gestion des utilisateurs pour vos applications web et mobiles.

Ce service permet aux utilisateurs de se connecter directement avec leurs identifiants d’utilisateur qui sont conservés dans Amazon Cognito pour le compte de vos applications web et mobiles. Il permet également de se connecter via une application de réseau social tierce comme Facebook, Amazon, Google ou Apple, et d’autres fournisseurs d’identité.

Amazon Cognito offre des fonctionnalités importantes pour réaliser différents cas d’utilisation dans la gestion et l’authentification des utilisateurs dans les applications web et mobiles.

Pourquoi utiliser AWS Cognito ?

  • Permet de gérer des groupes
  • Permet de gérer des utilisateurs
  • Verification 2FA
  • Verification SMS
  • Verification Email
  • Gestion de perte de mot de passe
  • Protection des mots de passe
  • Sécurisation des mots de passe avec les meilleures technologies d’Amazon
  • Protections brute-force
  • Social auth Google, Amazon, Apple, Facebook
  • Partage de base de données utilisateur à travers plusieurs applications si on veut

AWS Amplify: La solution parfaite pour les développeurs front-end

AWS Amplify

Qu’est-ce que AWS Amplify ?

AWS Amplify est un ensemble d’outils et de services conçus pour permettre aux développeurs de créer et de lancer facilement des applications dans AWS. Avec AWS Amplify, vous pouvez mettre en œuvre rapidement et de manière fiable un ensemble de fonctionnalités pour tout, de l’API à l’IA.

Amplify rend faciles et agréables le développement, le lancement et l’exploitation d’applications modernes dites serverless ou cloud. Les développeurs front-end d’applications web ou mobiles peuvent utiliser la puissance de Amplify pour ne pas se soucier du backend qui est scaffoldé automatiquement.

Avec le CLI d’AWS Amplify et les packages spécifiques pour les librairies et frameworks front-end, vous pourrez générer un système d’authentification, des API REST ou GraphQL, des fonctions Amazon Lambda et plus encore en une commande que ce soit pour vos projets avec Vue, React, React-Native, Angular, Next.js, Android (Kotlin ou Java), iOS (Objective-C ou Swift), Ionic ou Flutter.

Pourquoi utiliser AWS Amplify ?

  • bibliothèques Amplify pour les frameworks et librairies front-end populaires
  • Amplify CLI : outil en ligne de commande (CLI = command line interface) pour la configuration et l’intégration des services Cloud
  • Components deja fait : pages d’authentification, upload de fichiers sur S3 et bien plus en appelant des bouts de code
  • Services Cloud : authentication (Amazon Cognito), stockage (Amazon S3), analytics (Amazon Pinpoint & Amazon Kinesis), notifications (Amazon Pinpoint), fonctions (Amazon Lambda), API REST et GraphQL (Amazon API Gateway && Amazon AppSync), prédictions (Amazon SageMaker), persistances des données hors ligne(AWS AppSync).

En utilisant AWS Amplify, les équipes peuvent se concentrer sur le développement tandis que l’équipe Amplify applique les meilleurs modèles et pratiques dans toute la Stack AWS Amplify. C’est un gain de temps et d’argent énorme pour les entreprises et Amplify permet aux développeurs front-end ou full-stack de se concentrer uniquement sur le rendu de leurs applications plutôt que de réinventer la roue systématiquement en écrivant les mêmes back-end.

Vous voulez en savoir plus sur cette technologie Cloud ? Alors lisez mon article sur AWS Amplify.

FAQ AWS Amazon Web Services

Vous avez encore des questions sur AWS et ses produits ? Vous trouverez peut-être vos reponses dans la Foire aux Questions ci-dessous. Sinon, n’hésitez pas a prendre m’envoyer un message sur twitter @tcollart !

Qui utilise AWS ?

Dans les clients AWS on retrouve entre-autre :

Adobe, Airbnb, Alcatel-Lucent, AOL, AEG, Bitdefender, BMW, Baidu, Canon, Channel 4, Engie, Coinbase, Comcast, Coursera, Disney, Docker, Dow Jones, European Space Agency, ESPN, Expedia, Financial Times, General Electric, Guardian News & Media, Harvard Medical School, Hitachi, HTC, IMDb, International Centre for Radio Astronomy Research, International Civil Aviation Organization, iZettle, Johnson & Johnson, JWT, Kellogg’s, Lamborghini, Lyft, McDonalds, NASA, NASDAQ OMX, Netflix, News UK, Nokia, Pfizer, Philips, Pinterest, Qantas, Reddit, Samsung, SAP, Siemens, Slack, Sony, SoundCloud, Spotify, Square Enix, Twitch, Time Inc., Trainline, Ubisoft, Unilever, US Department of State, USDA Food and Nutrition Service, UK Ministry of Justice, Vodafone, WeTransfer, WIX, Xiaomi, Yelp et Zynga.

D’après Quora, les plus gros clients d’Amazon Web Services seraient :

  • Netflix avec 16 millions d’euros
  • Twitch avec 12.5 millions d’euros
  • LinkedIn avec 11 millions d’euros
  • Facebook avec 9 millions d’euros
  • Turner Broadcasting avec 8 millions d’euros
  • BBC avec 7.5 millions d’euros
  • Baidu avec 7.5 millions d’euros
  • ESPN avec 6.5 millions d’euros
  • Adobe avec 6.5 millions d’euros
  • Twitter avec 6 millions d’euros

Qu’est-ce qu’un service intégré AWS ?

Intégrer des services AWS signifie les lier entre eux. Ainsi, une application utilisera par exemple API Gateway pour son API, S3 pour le stockage, Route 53 pour la gestion d’url et path et Lambda pour effectuer du code dans le cloud. Tous ces microservices fonctionnent entre eux de manière isolée et protégée, on parle de service intégré AWS.

Pourquoi utiliser Amazon Web Service ?

AWS permet de gagner énormément de temps dans le développement et la sécurisation de vos projets. Beaucoup de services proposent des infrastructures scalables à l’infini avec un free tier très généreux qui vous permettront dans la plupart du temps de commencer gratuitement et de ne soucier du paiement des services qu’une fois que votre projet a de la traction.

En plus, AWS est maintenant trop très complet et vous permet de choisir le système d’exploitation, le langage de programmation, la plate-forme d’application web, la base de données et les autres services de votre choix selon vos préférences.