Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Asegúrese de que el registro de Amazon EMR en Amazon S3 esté habilitado en el lanzamiento
Creado por Priyanka Chaudhary (AWS)
Entorno: producción | Tecnologías: análisis; seguridad, identidad y cumplimiento; sin servidor | Carga de trabajo: código abierto |
Servicios de AWS: Amazon EMR; Amazon S3; Amazon SNS; Amazon CloudWatch |
Resumen
Este patrón proporciona un control de seguridad que supervisa la configuración de registro de los clústeres de Amazon EMR ejecutados en Amazon Web Services (AWS).
Amazon EMR es una herramienta de AWS para el procesamiento y el análisis de macrodatos. Amazon EMR ofrece un servicio ampliable de baja configuración como alternativa a la ejecución interna de computación en clústeres. Amazon EMR ofrece dos tipos de clústeres de EMR.
Clústeres transitorios de Amazon EMR: los clústeres transitorios de Amazon EMR se desactivan automáticamente y dejan de incurrir en costos cuando finaliza el procesamiento.
Clústeres persistentes de Amazon EMR: los clústeres persistentes de Amazon EMR siguen ejecutándose una vez finalizado el trabajo de procesamiento de datos.
Amazon EMR y Hadoop producen archivos de registro que notifican el estado en el clúster. De forma predeterminada, están escritos en el nodo maestro en el directorio /mnt/var/log/. En función de cómo configure el clúster en el momento de su lanzamiento, también podrá guardar estos registros en Amazon Simple Storage Service (Amazon S3) y consultarlos a través de la herramienta de depuración gráfica. Tenga en cuenta que el registro de Amazon S3 solo se puede especificar cuando se lanza el clúster. Con esta configuración, los registros se envían desde el nodo principal a la ubicación de Amazon S3 cada 5 minutos. En el caso de los clústeres transitorios, el registro en Amazon S3 es muy importante, ya que los clústeres desaparecen cuando se completa el procesamiento y estos archivos de registro pueden usarse para depurar cualquier trabajo fallido.
El patrón utiliza una CloudFormation plantilla de AWS para implementar un control de seguridad que monitorea las llamadas a la API e inicia Amazon CloudWatch Events en "»RunJobFlow. El desencadenador invoca AWS Lambda, que ejecuta un script de Python. La función de Lambda recupera la ID del clúster de EMR de la entrada JSON del evento, y también comprueba si hay un URI de registro de Amazon S3. Si no se encuentra un URI de Amazon S3, la función de Lambda envía una notificación de Amazon Simple Notification Service (Amazon SNS) en la que se detalla el nombre del clúster de EMR, los detalles de la infracción, la región de AWS, la cuenta de AWS y el nombre de recurso de Amazon (ARN) de Lambda del que proviene la notificación.
Requisitos previos y limitaciones
Requisitos previos
Una cuenta de AWS activa
Un bucket de S3 para el archivo .zip de código de Lambda
La dirección de correo electrónico en la que desee recibir la notificación de infracción
Limitaciones
Este control de detección es regional, por lo que debe implementarse en las regiones de AWS que desee supervisar.
Versiones de producto
Amazon EMR 4.8.0 y versiones posteriores
Arquitectura
Pila de tecnología de destino
Evento Amazon CloudWatch Events
Amazon EMR
Función de Lambda
Bucket de S3
Amazon SNS
Arquitectura de destino
Automatizar y escalar
Si utiliza AWS Organizations, puede utilizar AWS CloudFormation StackSets para implementar esta plantilla en varias cuentas que desee supervisar.
Herramientas
Herramientas
AWS CloudFormation: AWS le CloudFormation ayuda a modelar y configurar los recursos de AWS utilizando la infraestructura como código.
AWS Cloudwatch Events: AWS CloudWatch Events ofrece una transmisión casi en tiempo real de los eventos del sistema que describen los cambios en los recursos de AWS.
Amazon EMR: Amazon EMR es una plataforma de clúster administrada que simplifica la ejecución de marcos de trabajo de macrodatos.
AWS Lambda
: AWS Lambda permite ejecutar código sin aprovisionar ni administrar servidores. Lambda ejecuta su código solo cuando es necesario y escala de manera automática, desde unas pocas solicitudes por día hasta miles por segundo. Amazon S3: Amazon S3 es una interfaz de servicios web que puede utilizar para almacenar y recuperar cualquier cantidad de datos desde cualquier lugar de la web.
Amazon SNS: Amazon Simple Notification Service (Amazon SNS) coordina y gestiona la entrega o el envío de mensajes entre publicadores y clientes, incluyendo los servidores web y las direcciones de correo electrónico.
Código
El archivo .zip del proyecto está disponible como adjunto.
Epics
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Defina el bucket de S3. | Para alojar el archivo .zip de código de Lambda, seleccione o cree un bucket de S3 con un nombre único que no contenga barras diagonales al inicio. Un nombre de bucket de S3 es globalmente único y todas las cuentas de AWS comparten el espacio de nombres. Su bucket de S3 debe estar en la misma región de AWS que el clúster de Amazon EMR que se evalúa. | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Cargue el código de Lambda en el bucket de S3. | Cargue el archivo .zip de código de Lambda que se proporciona en la sección “Adjuntos” del bucket de S3. El bucket de S3 debe encontrarse en la misma región que el clúster de Amazon EMR que se está evaluando. | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Implemente la CloudFormation plantilla de AWS. | En la CloudFormation consola de AWS, en la misma región que su bucket de S3, implemente la CloudFormation plantilla de AWS que se proporciona como adjunto a este patrón. En la siguiente épica, proporcione los valores de los parámetros. Para obtener más información sobre la implementación de CloudFormation plantillas de AWS, consulte la sección «Recursos relacionados». | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Ponga nombre al bucket de S3. | Escriba el nombre del bucket de S3 que ha creado en la primera épica. | Arquitecto de la nube |
Proporcione la clave de Amazon S3. | Proporcione la ubicación del archivo .zip del código de Lambda en su bucket de S3, sin barras diagonales iniciales (por ejemplo, <directory>/<file-name>.zip). | Arquitecto de la nube |
Proporcione una dirección de correo electrónico. | Proporcione una dirección de correo electrónico activa en la que desea recibir las notificaciones de Amazon SNS. | Arquitecto de la nube |
Defina el nivel de registro. | Defina el nivel y la frecuencia de registro de la función de Lambda. «Info» designa mensajes informativos detallados sobre el progreso de la aplicación. «Error» designa eventos de error que permiten que la aplicación siga ejecutándose. «Warning» designa situaciones potencialmente peligrosas. | Arquitecto de la nube |
Tarea | Descripción | Habilidades requeridas |
---|---|---|
Confirmar la suscripción. | Cuando la plantilla se implementa correctamente, se envía un mensaje de correo electrónico de suscripción a la dirección de correo electrónico proporcionada. Debe confirmar esta suscripción de correo electrónico para recibir las notificaciones de infracciones. | Arquitecto de la nube |
Recursos relacionados
Conexiones
Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip