Sessions interactives AWS Glue permettent aux ingénieurs de créer, tester et exécuter des charges de travail de préparation et d'analyse de données dans un bloc-notes interactif. Les sessions interactives fournissent des environnements de développement isolés, prennent en charge le cluster de calcul sous-jacent et permettent à la configuration d'arrêter les ressources inactives.
Les sessions interactives Glue fournissent des configurations recommandées par défaut et permettent également aux utilisateurs de personnaliser la séance pour répondre à leurs besoins. Par exemple, vous pouvez provisionner davantage de nœuds de calcul pour effectuer des tests sur un ensemble de données plus volumineux ou définir le délai d'inactivité pour les charges de travail de longue durée. Avec la possibilité de modifier ces options en fonction de la charge de travail, vous devrez peut-être vous assurer que les options sont modifiées dans des limites spécifiques et appliquer un mécanisme de contrôle.
Dans cet article, nous présentons le processus de déploiement d'un solution réutilisable pour appliquer les limites de session interactive AWS Glue sur trois options : connexion, nombre de travailleurs et durée d'inactivité maximale. La première option répond au besoin d'appliquer une inspection et des contrôles personnalisés sur le trafic, par exemple en forçant une session interactive à s'exécuter uniquement à l'intérieur d'un VPC. Les deux autres imposent des limites sur les coûts et l'utilisation des Colle AWS ressources en imposant une limite supérieure au nombre de travailleurs et au temps d'inactivité par session. Vous pouvez étendre davantage la solution pour d'autres propriétés ou services au sein d'AWS Glue.
Présentation de la solution
L'architecture proposée repose sur des composants sans serveur et s'exécute chaque fois qu'une nouvelle session interactive AWS Glue est créée.
Les étapes du flux de travail sont les suivantes :
- Un ingénieur de données crée une nouvelle session interactive AWS Glue via le Console de gestion AWS ou dans un cahier Jupyter localement.
- La session interactive produit un nouvel événement pour AWS CloudTrail pour le
CreateSession
événement avec toutes les informations pertinentes pour identifier et inspecter une session dès que la session est lancée. - An Amazon Event Bridge règle filtre les événements CloudTrail et appelle un AWS Lambda fonction d'inspecter le
CreateSession
un événement. - La fonction Lambda inspecte le
CreateSession
événement et vérifie toutes les conditions aux limites définies. Actuellement, les limites configurables avec cette solution sont limitées au nombre maximal de nœuds de calcul, au délai d'inactivité en minutes et au déploiement avec connexion renforcée. - Si l'une des conditions aux limites définies n'est pas remplie, par exemple trop de travailleurs sont provisionnés pour la session, selon la configuration fournie, la fonction met immédiatement fin à la session interactive et envoie un e-mail via Service de notification simple d'Amazon (Amazon SNS). Si la session n'a pas encore démarré, la fonction attendra qu'elle démarre avant d'agir.
- Si la session a été arrêtée, un e-mail est envoyé à un sujet SNS. Aucune information n'est disponible dans le carnet de session interactif sur la raison de la fin de la session. Par conséquent, des informations contextuelles supplémentaires sont fournies via la rubrique SNS aux ingénieurs de données.
- Si la fonction échoue, les sessions sont enregistrées dans un file d'attente de lettres mortes à l'intérieur Service Amazon Simple Queue (Amazon SQS). De plus, la file d'attente est surveillée et en cas de message, elle déclenchera une Amazon Cloud Watch alarme.
Les étapes suivantes vous expliquent comment créer et déployer la solution. Le code est disponible dans le GitHub repo.
Pré-requis
Pour cette procédure pas à pas, vous devez disposer des prérequis suivants:
Aperçu des ressources déployées
Toutes les ressources nécessaires sont définies dans un AWS CloudFormation fichier situé sous cfn/template.yaml
. Pour déployer ces ressources, nous utilisons Modèle d'application sans serveur AWS (AWS SAM), qui nous permet de créer et de regrouper facilement toutes les dépendances et gère également les étapes AWS CloudFormation pour nous.
La pile CloudFormation déploie les ressources suivantes :
- Une fonction Lambda avec sa bibliothèque, toutes deux définies sous le répertoire src/functions. La fonction est le contrôle. Il validera que la session est démarrée dans les limites définies.
- Une règle EventBridge. Cet événement écoute CloudTrail et en cas de nouvelle session interactive, déclenchera la fonction Lambda de contrôle.
- Une file d'attente de lettres mortes SQS (DLQ) attachée à la fonction Lambda. Cela permet de conserver un enregistrement des événements qui ont déclenché une défaillance de la fonction Lambda.
- Deux alarmes CloudWatch surveillant les échecs de la fonction Lambda et les messages dans le DLQ.
Si la notification par e-mail est activée, deux ressources supplémentaires sont déployées :
De plus, AWS CloudFormation déploie tous les éléments nécessaires Gestion des identités et des accès AWS (IAM) rôles et politiques, et un Service de gestion des clés AWS (AWS KMS) pour s'assurer que les données échangées sont chiffrées.
Déployez la solution
Pour faciliter le cycle de vie du déploiement, y compris la configuration de l'environnement local de l'utilisateur, nous fournissons un Makefile qui décrit toutes les étapes nécessaires. Assurez-vous que vos informations d'identification AWS sont renouvelées et que vous avez accès à votre compte. Pour plus d'informations, reportez-vous à Paramètres du fichier de configuration et d'informations d'identification.
- Explorez le Makefile et ajustez la région et le nom de la pile selon vos besoins en modifiant les valeurs des variables
AWS_REGION
ainsi queSTACK_NAME
. - Ensemble
KILL_SESSION = "True"
si vous souhaitez arrêter immédiatement la session interactive qui a été trouvée hors limites. Les valeurs autorisées sont True ou False ; la valeur par défaut est Vrai. - Ensemble
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
dans leMakefile
si vous souhaitez être averti lorsqu'une session a été découverte hors des limites. - Définissez des valeurs pour vos contrôles :
ENFORCE_VPC_CONNECTION
pour arrêter les sessions qui ne s'exécutent pas à l'intérieur d'un VPC (vrai ou faux).MAX_WORKERS
pour définir le nombre maximum de travailleurs pour une session (numérique).MAX_IDLE_TIMEOUT_MINUTES
pour définir le temps d'inactivité maximal des sessions en minutes (numérique).
- Installez toutes les bibliothèques prérequises :
Ceux-ci seront installés dans un environnement virtuel Python nouvellement créé à l'intérieur de ce référentiel dans le répertoire
.venv
. - Déployez la nouvelle pile :
Cette commande effectuera les tâches suivantes :
- Vérifiez si les conditions préalables sont remplies.
- Effectuer
pytest unittest
sur les fichiers Python. - Validez le modèle CloudFormation.
- Construisez les artefacts (fonction Lambda et couches Lambda).
- Déployez les ressources via AWS SAM.
Testez la solution
Reportez-vous à Présentation des sessions interactives AWS Glue pour Jupyter pour plus d'informations sur l'exécution d'une session interactive. Si vous suivez les instructions du message (voir la section Exécutez votre première cellule de code et créez votre bloc-notes AWS Glue), l'initialisation de la session interactive doit échouer avec une erreur semblable à la suivante.
Exemple de code dans la cellule :
Sortie reçue :
Si vous avez activé la fonction e-mail, vous devriez également recevoir une notification par e-mail.
Vous pouvez également vérifier sur la console AWS Glue que votre ID de session n'est pas répertorié.
Nettoyer
Nettoyez les ressources déployées en exécutant la commande suivante :
Notez que les ressources déployées à partir de la suite du poste recommandé, Présentation des sessions interactives AWS Glue pour Jupyter, ne sera pas supprimé avec la commande précédente.
Limites
La garantie de livraison des événements CloudTrail à EventBridge est celle du meilleur effort. Cela signifie que CloudTrail tentera de livrer tous les événements à EventBridge, mais dans de rares cas, un événement peut ne pas être livré. Pour plus d'informations, reportez-vous à Événements des services AWS.
Conclusion
Cet article décrit comment créer, déployer et tester une solution pour appliquer des conditions aux limites sur les sessions interactives AWS Glue afin d'appliquer des contraintes sur le nombre de travailleurs, les délais d'inactivité et la connexion AWS Glue.
Vous pouvez adapter cette solution en fonction de vos besoins et l'étendre davantage pour permettre des contrôles sur d'autres options.
Pour en savoir plus sur l'utilisation des sessions interactives AWS Glue, consultez Présentation des sessions interactives AWS Glue pour Jupyter ainsi que Créer des tâches AWS Glue avec PyCharm à l'aide de sessions interactives AWS Glue.
À propos des auteurs
Nicolas Jacob Baer est un architecte d'applications cloud senior avec un fort accent sur l'ingénierie des données et l'apprentissage automatique, basé en Suisse. Il travaille en étroite collaboration avec les entreprises clientes pour concevoir des plates-formes de données et créer des cas d'utilisation avancés d'analyse/ml.
Luca Mazzaferro est architecte DevOps senior chez Amazon Web Services. Il aime avoir une infrastructure automatisée, reproductible et sécurisée. Pendant son temps libre, il aime cuisiner, en particulier la pizza.
Kemeng Zhang est un architecte d'applications cloud avec un fort accent sur l'apprentissage automatique et l'UX, basé en Suisse. Elle travaille en étroite collaboration avec les clients pour concevoir des expériences utilisateur et créer des cas d'utilisation avancés d'analyse/ML.
Marc Walser, architecte senior de données mondiales chez Amazon Web Services, collabore avec les clients pour développer des solutions Big Data innovantes qui résolvent les problèmes commerciaux et accélèrent l'adoption des services AWS. En dehors du travail, il trouve du plaisir à courir, à nager et à tout ce qui touche à la technologie.
Gal Heyne est un chef de produit pour AWS Glue avec un fort accent sur l'IA/ML, l'ingénierie des données et la BI, basé en Californie. Elle est passionnée par le développement d'une compréhension approfondie des besoins commerciaux des clients et la collaboration avec des ingénieurs pour concevoir des produits de données faciles à utiliser.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Automobile / VE, Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- Décalages de bloc. Modernisation de la propriété des compensations environnementales. Accéder ici.
- La source: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :possède
- :est
- :ne pas
- $UP
- 1
- 10
- 100
- 7
- a
- A Propos
- accès
- Compte
- Action
- adapter
- Supplémentaire
- adresses
- Adoption
- Avancée
- AI / ML
- alarme
- Tous
- permettre
- permis
- permet
- aussi
- Amazon
- Amazon Web Services
- an
- analytique
- ainsi que
- tous
- Application
- Appliquer
- Application
- architecture
- SONT
- arguments
- AS
- At
- auteur
- Automatisation
- disponibles
- AWS
- AWS CloudFormation
- Colle AWS
- basé
- BE
- était
- before
- LES MEILLEURS
- Big
- Big Data
- Blog
- tous les deux
- frontières
- construire
- construit
- la performance des entreprises
- mais
- by
- Californie
- appel
- CAN
- les soins
- maisons
- cas
- cellule
- Change
- modifié
- vérifier
- Contrôles
- étroitement
- le cloud
- Grappe
- code
- collaboration
- complet
- composants électriques
- calcul
- conditions
- configuration
- connexion
- Console
- contraintes
- contexte
- des bactéries
- contrôles
- Costs
- engendrent
- créée
- crée des
- CRÉDENTIEL
- Lettres de créance
- Lecture
- Customiser
- Clients
- données
- ingénieur de données
- Préparation des données
- profond
- Réglage par défaut
- défini
- livrer
- livré
- page de livraison.
- Selon
- déployer
- déployé
- déployer
- déploiement
- déploie
- décrit
- Conception
- développer
- développement
- Développement
- DevOps
- Easy
- effort
- non plus
- activé
- permet
- crypté
- se termine
- imposer
- l'application
- ingénieur
- ENGINEERING
- Les ingénieurs
- assurer
- Entreprise
- clients entreprise
- Environment
- environnements
- erreur
- notamment
- Ether (ETH)
- événement
- événements
- exemple
- exception
- échangé
- Expériences
- expérience
- étendre
- faciliter
- FAIL
- échoue
- Échec
- non
- Fonctionnalité
- Déposez votre dernière attestation
- Fichiers
- filtres
- trouve
- Prénom
- Flexibilité
- Focus
- suivre
- Abonnement
- suit
- Pour
- trouvé
- gratuitement ici
- De
- fonction
- plus
- En outre
- FILLE
- obtenez
- Global
- guarantir
- Vous avez
- he
- sa
- Comment
- How To
- HTML
- http
- HTTPS
- IAM
- ID
- identifier
- Identite
- Idle
- if
- immédiatement
- importer
- in
- Y compris
- d'information
- Infrastructure
- initié
- technologie innovante
- à l'intérieur
- Des instructions
- Interactif
- développement
- invoque
- isolé
- IT
- SES
- Emploi
- Emplois
- jpg
- Jupyter Notebook
- ACTIVITES
- plus importantes
- poules pondeuses
- APPRENTISSAGE
- apprentissage
- bibliothèques
- Bibliothèque
- vos produits
- aime
- limité
- limites
- Listé
- locales
- localement
- situé
- Connecté
- click
- machine learning
- a prendre une
- gestion
- manager
- gère
- de nombreuses
- maximales
- Mai..
- veux dire
- mécanisme
- Découvrez
- message
- messages
- la ficelle d'étiquettes/étiquettes volantes en carton
- pourrait
- minutes
- surveillé
- Stack monitoring
- PLUS
- prénom
- nécessaire
- Besoin
- nécessaire
- Besoins
- Nouveauté
- nouvellement
- aucune
- cahier
- déclaration
- nombre
- a eu lieu
- of
- on
- uniquement
- opération
- Option
- Options
- or
- de commander
- Autre
- ande
- sortie
- au contrôle
- paquet
- passionné
- /
- Pizza
- Plateformes
- Platon
- Intelligence des données Platon
- PlatonDonnées
- plaisir
- politiques
- Post
- préparation
- conditions préalables
- représentent
- précédent
- d'ouvrabilité
- processus
- produit
- Produit
- chef de produit
- Produits
- propriétés
- proposé
- fournir
- à condition de
- fournit
- disposition
- Python
- RARE
- solutions
- raison
- recommandé
- record
- région
- en relation
- pertinent
- Supprimé
- renouvelé
- dépôt
- Resources
- rôle
- Règle
- Courir
- pour le running
- fonctionne
- Sam
- Section
- sécurisé
- sur le lien
- envoie
- supérieur
- envoyé
- Sans serveur
- Services
- Session
- brainstorming
- set
- installation
- elle
- devrait
- similaires
- étapes
- sur mesure
- Solutions
- RÉSOUDRE
- quelques
- disponible
- Spark
- groupe de neurones
- vitesse
- empiler
- Commencer
- j'ai commencé
- Déclaration
- Statut
- Étapes
- Arrêter
- arrêté
- STRONG
- sûr
- natation
- Suisse
- Prenez
- prise
- tâches
- Technologie
- modèle
- tester
- qui
- La
- leur
- Là.
- donc
- Ces
- des choses
- this
- ceux
- trois
- Avec
- fiable
- à
- trop
- sujet
- circulation
- se transforme
- déclencher
- déclenché
- oui
- deux
- type
- sous
- sous-jacent
- compréhension
- us
- Utilisation
- utilisé
- cas d'utilisation
- Utilisateur
- utilisateurs
- en utilisant
- ux
- VALIDER
- Valeurs
- via
- Salle de conférence virtuelle
- attendez
- Attendre
- walkthrough
- souhaitez
- était
- we
- web
- services Web
- quand
- chaque fois que
- qui
- tout en
- sera
- comprenant
- dans les
- activités principales
- travailleur
- ouvriers
- workflow
- vos contrats
- encore
- you
- Votre
- zéphyrnet