Asegúrese de que el registro de Amazon EMR en Amazon S3 esté habilitado en el lanzamiento - Recomendaciones de AWS

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: seguridad, identidad y cumplimiento; sin servidor; análisis

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 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

TareaDescripciónHabilidades requeridas
Elimine el bucket de S3.

Para alojar el archivo .zip de código Lambda, seleccione o cree un bucket de S3 con un nombre único que no contenga barras diagonales al inicio. Un nombre de bucket 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
TareaDescripciónHabilidades requeridas
Cargue el código Lambda en el bucket de S3.

Cargue el archivo .zip de código 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
TareaDescripciónHabilidades 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 epic siguiente, 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
TareaDescripciónHabilidades requeridas
Ponga nombre al bucket de S3.

Escriba el nombre del bucket de S3 que ha creado en la primera epic.

Arquitecto de la nube
Proporcione la clave de Amazon S3.

Proporcione la ubicación del archivo .zip del código 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 todavía permiten que la aplicación siga ejecutándose. «Warning» designa situaciones potencialmente peligrosas.

Arquitecto de la nube
TareaDescripciónHabilidades 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

AWS Lambda

Registro de Amazon EMR

Implementación de CloudFormation plantillas de AWS

Conexiones

Para acceder al contenido adicional asociado a este documento, descomprima el archivo: attachment.zip