Accédez à des flux de données efficaces et à des informations plus rapides grâce à une solution d'extraction, de transformation et de chargement (ETL) évolutive de niveau entreprise
Ce guide permet de combler l’écart entre les exigences en matière de consommation de données et les activités de traitement des données de bas niveau effectuées par les pratiques ETL courantes. Pour les organisations utilisant des systèmes de gestion de données basés sur SQL, l’adaptation aux pratiques modernes d’ingénierie des données peut ralentir la progression de l’exploitation des informations puissantes issues de leurs données. Ce guide fournit une conception soucieuse de la qualité pour augmenter la productivité des processus de données grâce au framework de données open source Arc pour une approche ETL centrée sur l’utilisateur. Le guide accélère l’interaction avec les pratiques ETL, favorise la simplicité et augmente le niveau d’abstraction pour unifier les activités ETL en batch et en streaming.
Nous proposons également des options pour une conception optimale à l’aide d’instances de calcul efficaces (telles que les processeurs AWS Graviton) qui vous permettent d’optimiser les performances et les coûts liés à l’exécution de tâches ETL à grande échelle sur Amazon EKS.
Veuillez noter : [Clause de non-responsabilité]
Diagramme d’architecture
[Description du schéma d’architecture]
Étape 1
Interagissez avec les outils de développement et d’orchestration ETL via les points de terminaison Amazon CloudFront avec Application Load Balancer Origins, qui fournit des connexions sécurisées entre les clients et les points de terminaison des outils ETL.
Étape 2
Développez, testez et planifiez des tâches ETL qui traitent des données par lots et en flux. Le trafic de données entre les processus ETL et les magasins de données passe par les points de terminaison Amazon Virtual Private Cloud (VPC) Amazon alimentés par AWS PrivateLink sans quitter le réseau AWS.
Étape 3
L’environnement de développement intégré (IDE) JupyterHub, Argo Workflows et Apache Spark Operator s'exécutent en tant que conteneurs sur un cluster Amazon Elastic Kubernetes Service (Amazon EKS). L'IDE JupyterHub peut s'intégrer à un référentiel de code source (tel que GitHub) pour suivre les modifications apportées aux actifs ETL par les utilisateurs. Les actifs incluent des fichiers de bloc-notes Jupyter et des scripts SQL à exécuter avec le framework Arc ETL.
Étape 4
Mettez à jour les actifs ETL dans le référentiel de code source, puis chargez-les dans un compartiment Amazon Simple Storage Service (Amazon S3). Le processus de synchronisation peut être mis en œuvre par un pipeline automatisé d'intégration continue et de déploiement continu (CI/CD) initié par des mises à jour dans le référentiel de code source ou effectué manuellement.
Étape 5
Vous pouvez éventuellement modifier le code source de compilation Docker téléchargé depuis un référentiel de code vers le compartiment d'actifs S3 ETL. Il active un pipeline CI/CD AWS CodeBuild et AWS CodePipeline pour reconstruire automatiquement et transmettre l'image du conteneur Arc ETL Framework vers un registre privé Amazon Elastic Container Registry (Amazon ECR).
Étape 6
Planifiez des tâches ETL via Argo Workflows pour les exécuter sur un cluster Amazon EKS. Ces tâches extraient automatiquement l'image du conteneur Arc depuis Amazon ECR, téléchargent les actifs ETL depuis le compartiment S3 de l'artefact et envoient les journaux des applications à Amazon CloudWatch. Les points de terminaison d’un VPC sécurisent l'accès à tous les services AWS.
Étape 7
En tant qu'utilisateur authentifié, vous pouvez développer et tester de manière interactive des blocs-notes en tant que tâches ETL dans l'IDE JupyterHub, qui récupère automatiquement les informations de connexion d'AWS Secrets Manager pour valider les demandes de connexion des utilisateurs.
Étape 8
Accédez aux données de sortie ETL stockées dans le compartiment S3 qui prend en charge le format de lac de données transactionnel. Vous pouvez interroger les tables de Delta Lake via Amazon Athena intégré au Catalogue de données AWS Glue.
Piliers AWS Well-Architected
Le cadre AWS Well-Architected vous permet de comprendre les avantages et les inconvénients des décisions que vous prenez lors de la création de systèmes dans le cloud. Les six piliers du cadre vous permettent d'apprendre les bonnes pratiques architecturales pour concevoir et exploiter des systèmes fiables, sécurisés, efficaces, rentables et durables. Grâce à l'outil AWS Well-Architected Tool, disponible gratuitement dans la console de gestion AWS, vous pouvez examiner vos charges de travail par rapport à ces bonnes pratiques en répondant à une série de questions pour chaque pilier.
Le diagramme d'architecture ci-dessus est un exemple de solution créée en tenant compte des bonnes pratiques Well-Architected. Pour être totalement conforme à Well-Architected, vous devez suivre autant de bonnes pratiques Well-Architected que possible.
-
Excellence opérationnelle
Au sein des clusters Amazon EKS, les instances Amazon Elastic Compute Cloud (Amazon EC2) (CPU X86_64, Graviton ARM64) agissent comme des nœuds de calcul et exécutent des charges de travail Guidance. Les tâches Spark sont exécutées sur des instances Amazon EC2 Spot provisionnées de manière élastique en fonction des demandes de charge de travail.
CodeBuild et CodePipeline automatisent le processus GitOps en créant des images de conteneurs à partir des mises à jour du code Git et en les transférant vers le registre privé Amazon ECR. Argo Workflows planifie les tâches ETL sur Amazon EKS, extrait automatiquement l'image Arc Docker d'Amazon ECR, télécharge les actifs ETL depuis le compartiment S3 de l'artefact et envoie les journaux des applications à CloudWatch.
Ce déploiement et cette exécution automatisés des tâches Data ETL minimisent les frais opérationnels et améliorent la productivité. En outre, le pipeline CI/CD utilisant CodeBuild et CodePipeline permet de garantir une amélioration et un développement continus tout en stockant en toute sécurité l'image Arc Docker de Guidance dans Amazon ECR.
-
Sécurité
Les ressources du cluster Amazon EKS sont déployées au sein d'un Amazon VPC, fournissant une isolation réseau logique par rapport à l'Internet public. Amazon VPC prend en charge des fonctionnalités de sécurité telles que le point de terminaison d’un VPC (maintien du trafic au sein du réseau AWS), les groupes de sécurité, les listes de contrôle d'accès au réseau (ACL) et les rôles et politiques AWS Identity and Access Management (IAM) pour contrôler le trafic entrant et sortant et les autorisations. Le registre d'images Amazon ECR propose des fonctionnalités de sécurité au niveau du conteneur, telles que l'analyse des vulnérabilités. Amazon ECR et Amazon EKS suivent les normes du registre OCI (Open Container Initiative) et de l'API Kubernetes, en intégrant des protocoles de sécurité stricts.
IAM permet de contrôler l'accès aux données des applications Amazon S3, tandis qu'AWS Key Management Service (AWS KMS) chiffre les données au repos sur Amazon S3. Les rôles IAM pour les comptes de service (IRSA) sur les clusters Amazon EKS permettent un contrôle d'accès précis pour les pods, en appliquant le contrôle d'accès basé sur les rôles et en limitant l'accès non autorisé aux données Amazon S3. Secrets Manager stocke et gère les informations d'identification en toute sécurité. CloudFront fournit des points d'entrée sécurisés codés SSL pour les outils Web Jupyter et Argo Workflows.
-
Fiabilité
Amazon EKS permet des topologies hautement disponibles en déployant les plans de contrôle et de calcul Kubernetes dans plusieurs zones de disponibilité (AZ). Cela permet de garantir la disponibilité continue des applications de données, même si une zone de disponibilité subit une interruption, ce qui permet de déployer une instance EC2 multi-AZ fiable sur Amazon EKS.
Pour le stockage des données, Amazon S3 offre une durabilité et une disponibilité élevées, en répliquant automatiquement les objets de données sur plusieurs zones de disponibilité au sein d'une région. En outre, Amazon ECR héberge des images Docker dans une architecture hautement disponible et évolutive, prenant en charge de manière fiable le déploiement et les incréments d'applications basées sur des conteneurs.
Amazon S3, Amazon EKS et Amazon ECR sont des services entièrement gérés conçus pour des contrats de niveau de service (SLA) élevés avec des coûts opérationnels réduits. Ils permettent le déploiement d'applications critiques pour répondre aux exigences de haute disponibilité.
-
Efficacité des performances
Les nœuds de calcul Amazon EC2 du cluster Amazon EKS peuvent évoluer de manière dynamique vers le haut et vers le bas en fonction de la charge de travail des applications. Les instances EC2 basées sur Graviton offrent des performances accrues grâce à des processeurs ARM conçus sur mesure, à un matériel optimisé et à des améliorations architecturales.
Un modèle de stockage informatique découplé (avec les données d'entrée et de sortie stockées dans Amazon S3) améliore l'efficacité de la mise à l'échelle dynamique des calculs. Le Catalogue de données rationalise la gestion des métadonnées en s'intégrant parfaitement à Athena pour simplifier la gestion des métadonnées et améliorer les performances des requêtes. Le Catalogue de données automatise l'indexation de site web et l’entretien des métadonnées techniques pour un traitement des données et des requêtes efficaces. Athena permet d'effectuer des requêtes rapides sur les données Amazon S3 sans les déplacer, améliorant ainsi l'efficacité du flux de travail analytique.
-
Optimisation des coûts
Amazon ECR est un service géré destiné à sécuriser et à prendre en charge les applications de conteneurs, moyennant des frais mensuels fixes pour le stockage et la diffusion des images de conteneurs. Les nœuds de calcul du cluster Amazon EKS peuvent évoluer vers le haut et vers le bas en fonction des charges de travail Spark, offrant ainsi des types d'instances Graviton et Spot rentables. Le Catalogue de données fournit un référentiel de métadonnées entièrement géré et sans serveur, ce qui élimine le besoin de configurer et de maintenir une base de données de métadonnées de longue durée et réduit les frais généraux et les coûts opérationnels. CodeBuild et CodePipeline automatisent la création et le déploiement de l'image Docker de l'Arc ETL Framework dans un environnement sans serveur, éliminant ainsi le besoin de mettre en service et de gérer les serveurs de développement tout en réduisant les coûts de maintenance de l'infrastructure.
-
Durabilité
Ce guide exécute un cluster Amazon EKS avec des types de calcul efficaces basés sur des processeurs Graviton. Amazon ECR élimine la nécessité d'une gestion personnalisée du matériel ou des serveurs physiques. Le Catalogue de données et Athena sont des services sans serveur qui réduisent encore l'impact énergétique et environnemental.
L'optimisation de la couche de calcul Amazon EKS pour les charges de travail Apache Spark à grande échelle minimise l'impact environnemental des charges de travail analytiques. Vous avez la possibilité de choisir des processeurs basés sur ARM en fonction de vos besoins en matière de performances et de vos priorités en matière de durabilité.
Ressources d'implémentation
L'exemple de code est un point de départ. Il s'agit d'un document validé par l'industrie, prescriptif mais non définitif, et d'un aperçu pour vous aider à commencer.
Contenu connexe
[Titre]
Avis de non-responsabilité
Les exemples de code, les bibliothèques de logiciels, les outils de ligne de commande, les preuves de concept, les modèles ou toute autre technologie connexe (y compris tout ce qui précède qui est fourni par notre personnel) vous sont fournis en tant que contenu AWS en vertu du contrat client AWS ou de l'accord écrit pertinent entre vous et AWS (selon le cas). Vous ne devez pas utiliser ce contenu AWS dans vos comptes de production, ni sur des données de production ou autres données critiques. Vous êtes responsable des tests, de la sécurisation et de l'optimisation du contenu AWS, tel que les exemples de code, comme il convient pour une utilisation en production, en fonction de vos pratiques et normes de contrôle de qualité spécifiques. Le déploiement de contenu AWS peut entraîner des frais AWS pour la création ou l'utilisation de ressources payantes AWS, telles que l'exécution d'instances Amazon EC2 ou l'utilisation du stockage Amazon S3.
Les références à des services ou organisations tiers dans ce guide n'impliquent pas une approbation, un parrainage ou une affiliation entre Amazon ou AWS et le tiers. Les conseils fournis par AWS constituent un point de départ technique, et vous pouvez personnaliser votre intégration avec des services tiers lorsque vous déployez l'architecture.