Découvrir le cloud avec AWS en développant un data pipeline — Partie 5

Eren GUNDAG
Publicis Sapient France
5 min readMar 8, 2023

Nous arrivons à la dernière partie de ce tutoriel. Nous avons commencé par définir ce qu’est le cloud computing et ce qu’il peut apporter d’intéressant à nos projets. Nous avons ensuite découvert plusieurs services comme Amazon S3, AWS IAM ou AWS Glue autour de la mise en place d’un data pipeline. Ces services sont généralement construits autour de fonctionnalités précises, ce qui facilite notamment leur prise en main.

Dans cette partie, nous découvrirons un dernier service, Amazon Athena, qui nous permettra d’accéder à nos données via une syntaxe que vous connaissez probablement, le SQL.

Petit bonus, nous verrons comment vous pourrez garder un œil sur votre budget. Enfin, je vous suggèrerais quelques façons d’aller plus loin afin de poursuivre votre découverte du cloud et d’AWS.

Amazon Athena

Amazon Athena est un service de requête qui facilite l’analyse des données directement dans S3 à l’aide de la syntaxe SQL. Athena fonctionne avec une variété de formats de données standard, notamment CSV, JSON, ORC, Avro et Parquet.
Athena est un service serverless, ce qui signifie que vous n’avez pas d’infrastructure à gérer et que vous ne payez que pour les requêtes que vous exécutez. De plus, pour de grands ensembles de données et de requêtes complexes, Athena se met à l’échelle automatiquement. Couplé à la haute disponibilité d’S3, Athena exécute vos requêtes en parallèle et offre d’excellentes performances.

Athena s’intègre clé en main au catalogue de données AWS Glue. Cela vous permet de créer et d’utiliser un référentiel de métadonnées unifié, d’analyser des sources de données pour découvrir des schémas et alimenter votre catalogue.
Cela ne vous empêche pas, bien évidemment, de créer vos propres bases de données, tables, vues en définissant vous même leurs structures, pointant vers les données de votre choix ou résultant de requêtes.

Si vous voulez en savoir plus sur le fonctionnement d’Athena, n’hésitez pas à vous rendre sur le site de Presto, moteur de requête sur lequel le service s’appuie.

1. Rendez-vous sur la page du service Athena.
Vous devriez avoir dans le menu de gauche, la liste de vos bases de données et de vos tables. Au centre, un éditeur de requêtes SQL-like.

2. Lançons notre première requête à l’aide de la console pour commencer. En cliquant sur les trois petits points situés à côté de l’une de vos tables, cliquez sur Preview.

3. Cela va déclencher une requête et afficher les 10 premières lignes de la table sélectionnée.

Je vous laisse apprécier votre travail et explorer les possibilités d’Athena au travers de la console et de la documentation.

Bonus : Gérer son budget

Nous avons parlé de facturation au début de ce tutoriel. Il peut être difficile d’évaluer ce que coûteront les ressources utilisées par vos applications, et encore davantage avec ces services serverless.
Heureusement, AWS propose un outil qui permet non seulement de visualiser vos coûts et les services associés, mais également de définir des budgets et d’être alerté en cas de dépassement de seuils que vous définissez.

1. Dans la barre supérieure de la console, cliquez sur votre identifiant, puis My Billing Dashboard.

2. Cela vous amène sur une page avec différentes visualisations de vos dépenses, par service notamment.

3. Cliquez sur Budget, puis Create Budget.

4. Sélectionnez Cost Budget, puis Set your budget.

5. Nommez le Budget mensuel.
Sélectionnez Monthly dans Period. Puis Recurring budget.
Sélectionnez ensuite Fixed et la somme mensuelle que vous ne souhaitez pas dépasser.

6. Rendez-vous en bas de page et cliquez sur Configure thresholds.

7. Sélectionnez Actual Cost puis, dans le champ Alert threshold, saisissez 80. Ainsi, une alerte vous notifiera du dépassement de 80% de votre budget. Saisissez votre adresse e-mail dans le champ prévu à cet effet.

8. En bas de page, cliquez sur Confirm budget.

9. Vous avez un résumé de votre budget. Cliquez sur Create.

Conclusion

AWS et les services Cloud sont très riches et il peut être facile de s’y perdre lorsque l’on ne sait pas où chercher.

Avec ce tutoriel vous avez dû remarquer quelques points :

  • La console est très claire ;
  • Il est simple de créer des ressources en quelques étapes et, outre la documentation, chacun des champs présentés est généralement brièvement décrit. Ainsi, la découverte d’un nouveau service est plutôt intuitive ;
  • La logique de préparation est souvent la même. Outre les questions de réseau et de sécurité que je n’ai pas abordées ici, nous avons créé des Policies et Roles IAM à nos ressources, leur permettant d’agir, de consulter d’autres ressources et cela nous a suffit à ajouter des fonctionnalités à notre projet ;
  • Il y a beaucoup de façons d’organiser vos travaux sur AWS, le pipeline aurait pu être organisé différemment, mais pensez à garder une logique : nommage, tags… organisez vos ressources ;
  • N’oubliez pas le principe de moindre privilège pour vos Policies et Roles IAM.

La suite

Ce n’est que le début, vous avez toutes les clés en main pour améliorer votre data pipeline. Quelques idées :

  • Améliorez le logging, les sorties de vos fonctions, scripts… Découvrez et familiarisez vous avec Cloudwatch, un service AWS qui vous permet de logger et mesurer vos applications ;
  • Séparez les données raw des données parquet dans des buckets dédiés ;
  • Ajoutez la possibilité de choisir les schémas de vos données transformées en parquet. Stockez et exploitez-les dans votre job Glue ;
  • Gérez plusieurs bases de données ;
  • Améliorez la Step Function afin qu’elle se termine en même temps que le crawling et pas seulement lorsqu’il est lancé ;
  • Gérez les exécutions concurrentes de vos pipelines ;
  • Intégrez la Lambda decompress à la Step Function qui constituera ainsi l’entièreté du pipeline pour une meilleures visibilité. Jetez un œil aux events Cloudwatch pour déclencher votre Step Function ;
  • Industrialisez votre projet avec l’infra as code et Cloudformation.

A vous de jouer !

--

--