Sesiones interactivas de AWS Glue Permita a los ingenieros crear, probar y ejecutar cargas de trabajo de análisis y preparación de datos en un cuaderno interactivo. Las sesiones interactivas proporcionan entornos de desarrollo aislados, se encargan del clúster informático subyacente y permiten que la configuración detenga los recursos inactivos.
Las sesiones interactivas de Glue proporcionan configuraciones recomendadas predeterminadas y también permiten a los usuarios personalizar la sesión para satisfacer sus necesidades. Por ejemplo, puede aprovisionar más trabajadores para experimentar con un conjunto de datos más grande o establecer el tiempo de inactividad para cargas de trabajo de larga duración. Con la flexibilidad de cambiar estas opciones según la carga de trabajo, es posible que deba asegurarse de que las opciones se cambien dentro de límites específicos y aplicar un mecanismo de control.
En esta publicación, presentamos el proceso de implementación de un solución reutilizable para hacer cumplir los límites de sesión interactiva de AWS Glue en tres opciones: conexión, número de trabajadores y tiempo máximo de inactividad. La primera opción aborda la necesidad de aplicar inspecciones y controles personalizados sobre el tráfico, por ejemplo, obligando a que una sesión interactiva solo se ejecute dentro de una VPC. Los otros dos imponen límites a los costos y al uso de Pegamento AWS recursos imponiendo un límite superior en el número de trabajadores y el tiempo de inactividad por sesión. Puede ampliar aún más la solución para otras propiedades o servicios dentro de AWS Glue.
Resumen de la solución
La arquitectura propuesta se basa en componentes sin servidor y se ejecuta cada vez que se crea una nueva sesión interactiva de AWS Glue.
Los pasos del flujo de trabajo son los siguientes:
- Un ingeniero de datos crea una nueva sesión interactiva de AWS Glue a través del Consola de administración de AWS o en un cuaderno Jupyter localmente.
- La sesión interactiva produce un nuevo evento para Seguimiento de la nube de AWS para
CreateSession
evento con toda la información relevante para identificar e inspeccionar una sesión tan pronto como se inicia la sesión. - An Puente de eventos de Amazon La regla filtra los eventos de CloudTrail e invoca una AWS Lambda función para inspeccionar el
CreateSession
evento. - La función Lambda inspecciona el
CreateSession
evento y verifica todas las condiciones límite definidas. Actualmente, los límites configurables con esta solución se limitan a la cantidad máxima de trabajadores, el tiempo de inactividad en minutos y la implementación con conexión obligatoria. - Si no se cumple alguna de las condiciones límite definidas, por ejemplo, se aprovisionan demasiados trabajadores para la sesión, según la configuración proporcionada, la función finaliza la sesión interactiva inmediatamente y envía un correo electrónico a través de Servicio de notificación simple de Amazon (Amazon SNS). Si la sesión aún no ha comenzado, la función esperará a que comience antes de realizar cualquier acción.
- Si la sesión se detuvo, se envía un correo electrónico a un tema de SNS. No hay información disponible en el cuaderno interactivo de la sesión sobre el motivo de la finalización de la sesión. Por lo tanto, se proporciona información de contexto adicional a través del tema SNS a los ingenieros de datos.
- Si la función falla, las sesiones se registran en un cola de mensajes fallidos dentro Servicio de cola simple de Amazon (Amazon SQS). Además, la cola es monitoreada y en caso de un mensaje, activará una Reloj en la nube de Amazon alarma.
Los siguientes pasos le guiarán a través de cómo crear e implementar la solución. El código está disponible en el Repositorio GitHub.
Requisitos previos
Para este tutorial, debe tener los siguientes requisitos previos:
Descripción general de los recursos implementados
Todos los recursos necesarios están definidos en un Formación en la nube de AWS archivo ubicado debajo cfn/template.yaml
. Para implementar esos recursos, utilizamos Modelo de aplicación sin servidor de AWS (AWS SAM), que nos permite crear y empaquetar cómodamente todas las dependencias y también administra los pasos de AWS CloudFormation por nosotros.
La pila de CloudFormation implementa los siguientes recursos:
- Una función Lambda con su biblioteca, ambas definidas en el directorio src/functions. La función es el control. Validará que la sesión se inicie dentro de los límites definidos.
- Una regla de EventBridge. Este evento escucha CloudTrail y, en caso de una nueva sesión interactiva, activará la función Lambda de control.
- Una cola de mensajes fallidos (DLQ) SQS adjunta a la función Lambda. Esto mantiene un registro de los eventos que desencadenaron un error en la función Lambda.
- Dos alarmas de CloudWatch que monitorean las fallas de la función Lambda y los mensajes en el DLQ.
Si la notificación por correo electrónico está habilitada, se implementan dos recursos más:
Además, AWS CloudFormation implementa todo lo necesario Gestión de identidades y accesos de AWS (IAM) roles y políticas, y un Servicio de administración de claves de AWS (AWS KMS) para garantizar que los datos intercambiados estén cifrados.
Implementar la solución
Para facilitar el ciclo de vida de la implementación, incluida la configuración del entorno local del usuario, proporcionamos un Makefile que describe todos los pasos necesarios. Asegúrese de tener sus credenciales de AWS renovadas y tener acceso a su cuenta. Para obtener más información, consulte Configuración y ajustes del archivo de credenciales.
- Explore el Makefile y ajuste la región y el nombre de la pila según sea necesario modificando los valores de las variables.
AWS_REGION
ySTACK_NAME
. - Set
KILL_SESSION = "True"
si desea detener inmediatamente la sesión interactiva que se ha encontrado fuera de los límites. Los valores permitidos son Verdadero o Falso; El defecto es cierto. - Set
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
existentesMakefile
si desea recibir una notificación cuando se descubra que una sesión está fuera de los límites. - Establezca valores para sus controles:
ENFORCE_VPC_CONNECTION
para detener sesiones que no se ejecutan dentro de una VPC (verdadero o falso).MAX_WORKERS
para establecer el número máximo de trabajadores para una sesión (numérico).MAX_IDLE_TIMEOUT_MINUTES
para definir el tiempo máximo de inactividad para las sesiones en minutos (numérico).
- Instale todas las bibliotecas de requisitos previos:
Estos se instalarán en un entorno virtual Python recién creado dentro de este repositorio en el directorio
.venv
. - Implemente la nueva pila:
Este comando completará las siguientes tareas:
- Compruebe si se cumplen los requisitos previos.
- Realizar
pytest unittest
en los archivos de Python. - Valide la plantilla de CloudFormation.
- Construya los artefactos (función Lambda y capas Lambda).
- Implemente los recursos a través de AWS SAM.
Prueba la solución
Consulte Presentamos las sesiones interactivas de AWS Glue para Jupyter para obtener información sobre cómo ejecutar una sesión interactiva. Si sigues las instrucciones del post (ver la sección Ejecute su primera celda de código y cree su cuaderno de AWS Glue), la inicialización de la sesión interactiva debería fallar con un error similar al siguiente.
Ejemplo de código en la celda:
Salida recibida:
Si habilitó la función de correo electrónico, también debería recibir una notificación por correo electrónico.
También puede comprobar en la consola de AWS Glue que su ID de sesión no aparece en la lista.
Limpiar
Limpie los recursos implementados ejecutando el siguiente comando:
Tenga en cuenta que los recursos implementados a partir de seguir la publicación recomendada, Presentamos las sesiones interactivas de AWS Glue para Jupyter, no se eliminará con el comando anterior.
Limitaciones
La garantía de entrega de eventos de CloudTrail a EventBridge es el mejor esfuerzo. Esto significa que CloudTrail intentará entregar todos los eventos a EventBridge, pero en algunos casos excepcionales, es posible que no se entregue un evento. Para obtener más información, consulte Eventos de los servicios de AWS.
Conclusión
Esta publicación describió cómo crear, implementar y probar una solución para imponer condiciones límite en las sesiones interactivas de AWS Glue con el fin de imponer restricciones en la cantidad de trabajadores, los tiempos de espera de inactividad y la conexión de AWS Glue.
Puede adaptar esta solución según sus necesidades y ampliarla aún más para permitir controles sobre otras opciones.
Para obtener más información sobre cómo utilizar las sesiones interactivas de AWS Glue, consulte Presentamos las sesiones interactivas de AWS Glue para Jupyter y Cree trabajos de AWS Glue con PyCharm mediante sesiones interactivas de AWS Glue.
Acerca de los autores
Nicolás Jacob Baer es un arquitecto senior de aplicaciones en la nube con un fuerte enfoque en la ingeniería de datos y el aprendizaje automático, con sede en Suiza. Trabaja en estrecha colaboración con clientes empresariales para diseñar plataformas de datos y crear casos de uso de análisis/ml avanzados.
Luca Mazzaferro es arquitecto sénior de DevOps en Amazon Web Services. Le gusta tener una infraestructura automatizada, reproducible y segura. En su tiempo libre le gusta cocinar, especialmente la pizza.
Kemeng Zhang es un arquitecto de aplicaciones en la nube con un fuerte enfoque en aprendizaje automático y UX, con sede en Suiza. Trabaja en estrecha colaboración con los clientes para diseñar experiencias de usuario y crear casos de uso de análisis/ml avanzados.
Mark Walser, arquitecto sénior de datos globales en Amazon Web Services, colabora con los clientes para desarrollar soluciones innovadoras de Big Data que resuelvan problemas comerciales y aceleren la adopción de los servicios de AWS. Fuera del trabajo, le gusta correr, nadar y todo lo relacionado con la tecnología.
chica heyne es gerente de producto de AWS Glue con un fuerte enfoque en AI/ML, ingeniería de datos y BI, con sede en California. Le apasiona desarrollar una comprensión profunda de las necesidades comerciales de los clientes y colaborar con ingenieros para diseñar productos de datos fáciles de usar.
- Distribución de relaciones públicas y contenido potenciado por SEO. Consiga amplificado hoy.
- PlatoData.Network Vertical Generativo Ai. Empodérate. Accede Aquí.
- PlatoAiStream. Inteligencia Web3. Conocimiento amplificado. Accede Aquí.
- PlatoESG. Automoción / vehículos eléctricos, Carbón, tecnología limpia, Energía, Ambiente, Solar, Gestión de residuos. Accede Aquí.
- Desplazamientos de bloque. Modernización de la propiedad de compensaciones ambientales. Accede Aquí.
- Fuente: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :posee
- :es
- :no
- $ UP
- 1
- 10
- 100
- 7
- a
- Nuestra Empresa
- de la máquina
- Mi Cuenta
- la columna Acción
- adaptar
- Adicionales
- direcciones
- Adopción
- avanzado
- AI / ML
- alarma
- Todos
- permitir
- permitido
- permite
- también
- Amazon
- Amazon Web Services
- an
- Analytics
- y
- cualquier
- Aplicación
- Aplicá
- La aplicación de
- arquitectura
- somos
- argumentos
- AS
- At
- autor
- Confirmación de Viaje
- Hoy Disponibles
- AWS
- Formación en la nube de AWS
- Pegamento AWS
- basado
- BE
- esto
- antes
- MEJOR
- Big
- Big Data
- Blog
- ambas
- límites
- build
- construido
- pero
- by
- California
- llamar
- PUEDEN
- servicios sociales
- case
- cases
- (SCD por sus siglas en inglés),
- el cambio
- cambiado
- comprobar
- Cheques
- de cerca
- Soluciones
- Médico
- código
- colaborar
- completar
- componentes
- Calcular
- condiciones
- Configuración
- conexión
- Consola
- restricciones
- contexto
- control
- controles
- Precio
- Para crear
- creado
- crea
- CREDENCIAL
- Referencias
- En la actualidad
- personalizado
- Clientes
- datos
- ingeniero de datos
- Preparación de datos
- profundo
- Predeterminado
- se define
- entregamos
- liberado
- entrega
- Dependiente
- desplegar
- desplegado
- Desplegando
- despliegue
- despliega
- descrito
- Diseño
- desarrollar
- el desarrollo
- Desarrollo
- DevOps
- de forma sencilla
- esfuerzo
- ya sea
- facilita
- permite
- cifrado
- termina
- hacer cumplir
- hacer cumplir
- ingeniero
- Ingeniería
- certificados
- garantizar
- Empresa
- clientes empresariales
- Entorno
- ambientes
- error
- especialmente
- Éter (ETH)
- Evento
- Eventos
- ejemplo
- excepción
- intercambiado
- Experiencias
- experimento
- ampliar
- facilitar
- FALLO
- falla
- Fracaso
- false
- Feature
- Archive
- archivos
- filtros
- encuentra
- Nombre
- Flexibilidad
- Focus
- seguir
- siguiendo
- siguiente
- encontrado
- Gratuito
- Desde
- función
- promover
- Además
- GAL
- obtener
- Buscar
- garantizamos
- Tienen
- he
- su
- Cómo
- Como Hacer
- HTML
- http
- HTTPS
- AMI
- ID
- Identifique
- Identidad
- Idle
- if
- inmediatamente
- importar
- in
- Incluye
- información
- EN LA MINA
- iniciado
- originales
- dentro
- Instrucciones
- interactivo
- dentro
- invoca
- aislado
- IT
- SUS
- Trabajos
- Empleo
- jpg
- Cuaderno Jupyter
- Clave
- mayores
- ponedoras
- APRENDE:
- aprendizaje
- bibliotecas
- Biblioteca
- ciclo de vida
- Me gusta
- Limitada
- límites
- Listado
- local
- localmente
- situados
- conectado
- máquina
- máquina de aprendizaje
- para lograr
- Management
- gerente
- gestiona
- muchos
- máximas
- Puede..
- significa
- mecanismo
- Conoce a
- mensaje
- la vida
- las etiquetas
- podría
- minutos
- monitoreado
- monitoreo
- más,
- nombre
- necesario
- ¿ Necesita ayuda
- Nuevo
- recién
- no
- cuaderno
- .
- número
- se produjo
- of
- on
- , solamente
- Inteligente
- Optión
- Opciones
- or
- solicite
- Otro
- salir
- salida
- afuera
- paquete
- apasionado
- para
- Pizza
- Plataformas
- Platón
- Inteligencia de datos de Platón
- PlatónDatos
- placer
- políticas
- Publicación
- preparación
- requisitos previos
- presente
- anterior
- problemas
- produce
- Producto
- gerente de producto
- Productos
- propiedades
- propuesto
- proporcionar
- previsto
- proporciona un
- provisión
- Python
- RARO
- ready
- razón
- recomendado
- grabar
- región
- relacionado
- Remoto
- renovado
- repositorio
- Recursos
- También soy miembro del cuerpo docente de World Extreme Medicine (WEM) y embajadora europea de igualdad para The Transformational Travel Council (TTC). En mi tiempo libre, soy una incansable aventurera, escaladora, patrona de día, buceadora y defensora de la igualdad de género en el deporte y la aventura. En XNUMX, fundé Almas Libres, una ONG nacida para involucrar, educar y empoderar a mujeres y niñas a través del deporte urbano, la cultura y la tecnología.
- Regla
- Ejecutar
- correr
- corre
- Diana
- Sección
- asegurado
- ver
- envía
- mayor
- expedido
- Sin servidor
- Servicios
- Sesión
- sesiones
- set
- Configure
- ella
- tienes
- similares
- sencillos
- a medida
- Soluciones
- RESOLVER
- algo
- Pronto
- Spark
- soluciones y
- velocidad
- montón
- comienzo
- fundó
- Posicionamiento
- Estado
- pasos
- Detener
- detenido
- fuerte
- seguro
- nadar
- Suiza
- ¡Prepárate!
- toma
- tareas
- Tecnología
- plantilla
- test
- esa
- La
- su
- Ahí.
- por lo tanto
- Estas
- cosas
- así
- aquellos
- Tres
- A través de esta formación, el personal docente y administrativo de escuelas y universidades estará preparado para manejar los recursos disponibles que derivan de la diversidad cultural de sus estudiantes. Además, un mejor y mayor entendimiento sobre estas diferencias y similitudes culturales permitirá alcanzar los objetivos de inclusión previstos.
- equipo
- a
- demasiado
- tema
- tráfico
- transformadas
- detonante
- desencadenados
- verdadero
- dos
- tipo
- bajo
- subyacente
- comprensión
- us
- Uso
- utilizan el
- casos de uso
- Usuario
- usuarios
- usando
- ux
- VALIDAR
- Valores
- vía
- Virtual
- esperar
- Esperando
- tutorial
- quieres
- fue
- we
- web
- servicios web
- cuando
- cuando
- que
- mientras
- seguirá
- dentro de
- Actividades:
- obrero
- los trabajadores.
- flujo de trabajo
- funciona
- aún
- Usted
- tú
- zephyrnet