Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Assurez-vous que la journalisation d'Amazon EMR sur Amazon S3 est activée au lancement
Créée par Priyanka Chaudhary (AWS)
Récapitulatif
Ce modèle fournit un contrôle de sécurité qui surveille la configuration de journalisation pour les clusters Amazon EMR exécutés sur Amazon Web Services (AWS).
Amazon EMR est un outil AWS pour le traitement et l'analyse des mégadonnées. Amazon EMR propose le service extensible à faible configuration comme alternative à l'exécution de clusters informatiques en interne. Amazon EMR fournit deux types de clusters EMR.
Clusters Amazon EMR transitoires : les clusters Amazon EMR transitoires s'arrêtent automatiquement et cessent d'entraîner des coûts une fois le traitement terminé.
Clusters Amazon EMR persistants : les clusters Amazon EMR persistants continuent de s'exécuter une fois la tâche de traitement des données terminée.
Amazon EMR et Hadoop génèrent des fichiers journaux qui indiquent l'état du cluster. Par défaut, ils sont écrits sur le nœud principal dans le répertoire mnt/var/log//. Selon la façon dont vous configurez le cluster lorsque vous le lancez, vous pouvez également enregistrer ces journaux dans Amazon Simple Storage Service (Amazon S3) et les consulter via l'outil de débogage graphique. Notez que la journalisation Amazon S3 ne peut être spécifiée que lorsque le cluster est lancé. Avec cette configuration, les journaux sont envoyés du nœud principal à l'emplacement Amazon S3 toutes les 5 minutes. Pour les clusters transitoires, la journalisation Amazon S3 est importante car les clusters disparaissent une fois le traitement terminé, et ces fichiers journaux peuvent être utilisés pour déboguer les tâches ayant échoué.
Le modèle utilise un CloudFormation modèle AWS pour déployer un contrôle de sécurité qui surveille les appels d'API et lance Amazon CloudWatch Events le « »RunJobFlow. Le déclencheur invoque AWS Lambda, qui exécute un script Python. La fonction Lambda récupère l'ID du cluster EMR à partir de l'entrée JSON de l'événement et vérifie également la présence d'un URI du journal Amazon S3. Si aucune URI Amazon S3 n'est trouvée, la fonction Lambda envoie une notification Amazon Simple Notification Service (Amazon SNS) détaillant le nom du cluster EMR, les détails de la violation, la région AWS, le compte AWS et le nom de ressource Lambda Amazon (ARN) d'où provient la notification.
Conditions préalables et limitations
Prérequis
Un compte AWS actif
Un compartiment S3 pour le fichier .zip de code Lambda
Adresse e-mail à laquelle vous souhaitez recevoir la notification de violation
Limites
Ce contrôle de détection est régional et doit être déployé dans les régions AWS que vous souhaitez surveiller.
Versions du produit
Amazon EMR version 4.8.0 et versions ultérieures
Architecture
Pile technologique cible
Événement Amazon CloudWatch Events
Amazon EMR
fonction Lambda
Compartiment S3
Amazon SNS
Architecture cible

Automatisation et mise à l'échelle
Si vous utilisez AWS Organizations, vous pouvez utiliser AWS CloudFormation StackSets pour déployer ce modèle sur plusieurs comptes que vous souhaitez surveiller.
Outils
Outils
AWS CloudFormation — AWS vous CloudFormation aide à modéliser et à configurer les ressources AWS en utilisant l'infrastructure sous forme de code.
AWS Cloudwatch Events — AWS CloudWatch Events fournit un flux quasi en temps réel d'événements système décrivant les modifications apportées aux ressources AWS.
Amazon EMR — Amazon EMR est une plateforme de clusters gérés qui simplifie l'exécution de frameworks de mégadonnées.
AWS Lambda
— AWS Lambda prend en charge l'exécution de code sans provisionner ni gérer de serveurs. Lambda exécute le code uniquement lorsque cela est nécessaire et se met à l’échelle automatiquement, qu’il s’agisse de quelques requêtes par jour ou de milliers de requêtes par seconde. Amazon S3 — Amazon S3 est une interface de services Web que vous pouvez utiliser pour stocker et récupérer n'importe quel volume de données, où que vous soyez sur le Web.
Amazon SNS — Amazon SNS est un service Web qui coordonne et gère la distribution ou l'envoi de messages entre les éditeurs et les clients, y compris les serveurs Web et les adresses e-mail.
Code
Un fichier .zip du projet est disponible en pièce jointe.
Épopées
Tâche | Description | Compétences requises |
---|---|---|
Définissez le compartiment S3. | Pour héberger le fichier .zip de code Lambda, choisissez ou créez un compartiment S3 avec un nom unique qui ne contient pas de barres obliques en tête. Le nom d'un compartiment S3 est unique au monde et l'espace de noms est partagé par tous les comptes AWS. Votre compartiment S3 doit se trouver dans la même région AWS que le cluster Amazon EMR en cours d'évaluation. | Architecte du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Téléchargez le code Lambda dans le compartiment S3. | Téléchargez le fichier .zip de code Lambda fourni dans la section « Pièces jointes » dans le compartiment S3. Le compartiment S3 doit se trouver dans la même région que le cluster Amazon EMR en cours d'évaluation. | Architecte du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Déployez le CloudFormation modèle AWS. | Sur la CloudFormation console AWS, dans la même région que votre compartiment S3, déployez le CloudFormation modèle AWS fourni en pièce jointe à ce modèle. Dans l'épopée suivante, indiquez les valeurs des paramètres. Pour plus d'informations sur le déploiement CloudFormation de modèles AWS, consultez la section « Ressources associées ». | Architecte du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Nommez le compartiment S3. | Entrez le nom du compartiment S3 que vous avez créé dans le premier épisode épique. | Architecte du cloud |
Fournissez la clé Amazon S3. | <directory><file-name>Indiquez l'emplacement du fichier .zip de code Lambda dans votre compartiment S3, sans barres obliques (par exemple,/.zip). | Architecte du cloud |
Indiquez une adresse e-mail. | Fournissez une adresse e-mail active pour recevoir les notifications Amazon SNS. | Architecte du cloud |
Définissez le niveau de journalisation. | Définissez le niveau et la fréquence de journalisation pour votre fonction Lambda. « Info » désigne des messages d'information détaillés sur le déroulement de l'application. Le terme « Erreur » désigne les événements d'erreur susceptibles de permettre à l'application de continuer à fonctionner. Le terme « Avertissement » désigne des situations potentiellement dangereuses. | Architecte du cloud |
Tâche | Description | Compétences requises |
---|---|---|
Confirmez votre abonnement. | Lorsque le modèle est déployé avec succès, il envoie un e-mail d'abonnement à l'adresse e-mail fournie. Vous devez confirmer cet abonnement par e-mail pour recevoir des notifications de violation. | Architecte du cloud |