Sessões interativas do AWS Glue permitem que os engenheiros criem, testem e executem cargas de trabalho de preparação e análise de dados em um notebook interativo. As sessões interativas fornecem ambientes de desenvolvimento isolados, cuidam do cluster de computação subjacente e permitem que a configuração interrompa a ociosidade dos recursos.
As sessões interativas do Glue fornecem configurações padrão recomendadas e também permitem que os usuários personalizar a sessão para atender às suas necessidades. Por exemplo, você pode provisionar mais trabalhadores para experimentar um conjunto de dados maior ou definir o tempo limite de inatividade para cargas de trabalho de longa duração. Com a flexibilidade para alterar essas opções dependendo da carga de trabalho, talvez seja necessário garantir que as opções sejam alteradas dentro de limites específicos e aplicar um mecanismo de controle.
Neste post, apresentamos o processo de implantação de um solução reutilizável para impor limites de sessão interativa do AWS Glue em três opções: conexão, número de trabalhadores e tempo máximo de inatividade. A primeira opção atende à necessidade de aplicar inspeção e controles personalizados no tráfego, por exemplo, impondo que uma sessão interativa seja executada apenas dentro de uma VPC. Os outros dois impõem limites aos custos e ao uso de Cola AWS recursos, impondo um limite superior no número de trabalhadores e no tempo ocioso por sessão. Você pode estender ainda mais a solução para outras propriedades ou serviços no AWS Glue.
Visão geral da solução
A arquitetura proposta é construída em componentes sem servidor e é executada sempre que uma nova sessão interativa do AWS Glue é criada.
As etapas do fluxo de trabalho são as seguintes:
- Um engenheiro de dados cria uma nova sessão interativa do AWS Glue por meio do Console de gerenciamento da AWS ou em um notebook Jupyter localmente.
- A sessão interativa produz um novo evento para AWS CloudTrail para o
CreateSession
evento com todas as informações relevantes para identificar e inspecionar uma sessão assim que a sessão for iniciada. - An Amazon Event Bridge regra filtra os eventos do CloudTrail e invoca um AWS Lambda função de inspecionar
CreateSession
evento. - A função Lambda inspeciona o
CreateSession
evento e verifica todas as condições de contorno definidas. Atualmente, os limites configuráveis com esta solução são limitados ao número máximo de trabalhadores, tempo limite de inatividade em minutos e implantação com conexão imposta. - Se alguma das condições de limite definidas não for atendida, por exemplo, muitos trabalhadores são provisionados para a sessão, dependendo da configuração fornecida, a função encerra a sessão interativa imediatamente e envia um email via Serviço de notificação simples da Amazon (Amazon SNS). Se a sessão ainda não tiver iniciado, a função aguardará o início antes de realizar qualquer ação.
- Se a sessão foi interrompida, um email será enviado para um tópico SNS. Não há informações disponíveis no caderno interativo da sessão sobre o motivo do encerramento da sessão. Portanto, informações de contexto adicionais são fornecidas por meio do tópico SNS aos engenheiros de dados.
- Se a função falhar, as sessões serão registradas em um fila de mensagens mortas dentro Serviço de fila simples da Amazon (Amazon SQS). Além disso, a fila é monitorada e em caso de mensagem, acionará um Amazon CloudWatch alarme.
As etapas a seguir explicam como criar e implantar a solução. O código está disponível no GitHub repo.
Pré-requisitos
Para este passo a passo, você deve ter os seguintes pré-requisitos:
Visão geral dos recursos implantados
Todos os recursos necessários são definidos em um Formação da Nuvem AWS arquivo localizado em cfn/template.yaml
. Para implantar esses recursos, usamos Modelo de aplicativo sem servidor da AWS (AWS SAM), que nos permite construir e empacotar convenientemente todas as dependências e também gerenciar as etapas do AWS CloudFormation para nós.
A pilha do CloudFormation implanta os seguintes recursos:
- Uma função Lambda com sua biblioteca, ambas definidas no diretório src/functions. A função é o controle. Validará que a sessão foi iniciada dentro dos limites definidos.
- Uma regra do EventBridge. Este evento escuta o CloudTrail e no caso de uma nova sessão interativa, acionará a função Lambda de controle.
- Uma fila de mensagens mortas (DLQ) SQS anexada à função Lambda. Isso mantém um registro dos eventos que desencadearam uma falha na função Lambda.
- Dois alarmes do CloudWatch monitorando as falhas da função Lambda e as mensagens no DLQ.
Se a notificação por e-mail estiver habilitada, mais dois recursos serão implantados:
Além disso, o AWS CloudFormation implanta todos os recursos necessários Gerenciamento de acesso e identidade da AWS (IAM) funções e políticas, e um Serviço de gerenciamento de chaves AWS (AWS KMS) para garantir que os dados trocados sejam criptografados.
Implante a solução
Para facilitar o ciclo de vida da implantação, incluindo a configuração do ambiente local do usuário, fornecemos um Makefile que descreve todas as etapas necessárias. Certifique-se de ter suas credenciais da AWS renovadas e de ter acesso à sua conta. Para obter mais informações, consulte Configurações e configurações do arquivo de credenciais.
- Explore o Makefile e ajuste a região e o nome da pilha conforme necessário, modificando os valores das variáveis
AWS_REGION
eSTACK_NAME
. - Conjunto
KILL_SESSION = "True"
se desejar interromper imediatamente a sessão interativa que foi encontrada fora dos limites. Os valores permitidos são True ou False; O padrão é verdadeiro. - Conjunto
NOTIFICATION_EMAIL_ADDRESS = <your.email@provider.com>
noMakefile
se você quiser ser notificado quando uma sessão for encontrada fora dos limites. - Defina valores para seus controles:
ENFORCE_VPC_CONNECTION
para interromper sessões que não estejam em execução dentro de uma VPC (verdadeiro ou falso).MAX_WORKERS
para definir o número máximo de trabalhadores para uma sessão (numérico).MAX_IDLE_TIMEOUT_MINUTES
para definir o tempo máximo de inatividade das sessões em minutos (numérico).
- Instale todas as bibliotecas de pré-requisitos:
Eles serão instalados em um ambiente virtual Python recém-criado dentro deste repositório no diretório
.venv
. - Implante a nova pilha:
Este comando concluirá as seguintes tarefas:
- Verifique se os pré-requisitos foram atendidos.
- Realizar
pytest unittest
nos arquivos Python. - Valide o modelo CloudFormation.
- Construa os artefatos (função Lambda e camadas Lambda).
- Implante os recursos por meio do AWS SAM.
Teste a solução
Consulte Apresentando sessões interativas do AWS Glue para Jupyter para obter informações sobre como executar uma sessão interativa. Se você seguir as instruções da postagem (veja a seção Execute sua primeira célula de código e crie seu notebook AWS Glue), a inicialização da sessão interativa deverá falhar com um erro semelhante ao seguinte.
Exemplo de código na célula:
Saída recebida:
Se você ativou o recurso de e-mail, também deverá receber uma notificação por e-mail.
Você também pode verificar no console do AWS Glue se o ID da sua sessão não está listado.
limpar
Limpe os recursos implantados executando o seguinte comando:
Observe que os recursos implantados seguindo a postagem recomendada, Apresentando sessões interativas do AWS Glue para Jupyter, não será removido com o comando anterior.
Limitações
A garantia de entrega de eventos CloudTrail para EventBridge é de melhor esforço. Isso significa que o CloudTrail tentará entregar todos os eventos ao EventBridge, mas em alguns casos raros, um evento poderá não ser entregue. Para obter mais informações, consulte Eventos de serviços da AWS.
Conclusão
Esta postagem descreveu como criar, implantar e testar uma solução para impor condições de limite em sessões interativas do AWS Glue a fim de impor restrições ao número de trabalhadores, tempos limite de inatividade e conexão do AWS Glue.
Você pode adaptar esta solução com base em suas necessidades e estendê-la ainda mais para permitir controles em outras opções.
Para saber mais sobre como usar sessões interativas do AWS Glue, consulte Apresentando sessões interativas do AWS Glue para Jupyter e Crie trabalhos do AWS Glue com PyCharm usando sessões interativas do AWS Glue.
Sobre os autores
Nicolas Jacob Baer é arquiteto sênior de aplicações em nuvem com forte foco em engenharia de dados e aprendizado de máquina, baseado na Suíça. Ele trabalha em estreita colaboração com clientes empresariais para projetar plataformas de dados e criar casos de uso de análise/ml avançados.
Lucas Mazzaferro é arquiteto sênior de DevOps na Amazon Web Services. Ele gosta de ter infraestrutura automatizada, reproduzível e segura. Nas horas vagas gosta de cozinhar, principalmente pizza.
Kemeng Zhang é um arquiteto de aplicativos em nuvem com forte foco em aprendizado de máquina e UX, baseado na Suíça. Ela trabalha em estreita colaboração com os clientes para projetar experiências de usuário e criar casos de uso de análises/ml avançadas.
Marco Walser, arquiteto de dados global sênior da Amazon Web Services, colabora com clientes para desenvolver soluções inovadoras de Big Data que resolvem problemas de negócios e aceleram a adoção de serviços da AWS. Fora do trabalho, ele sente prazer em correr, nadar e tudo relacionado à tecnologia.
Gal Heyne é gerente de produto do AWS Glue com forte foco em IA/ML, engenharia de dados e BI, baseado na Califórnia. Ela é apaixonada por desenvolver uma compreensão profunda das necessidades de negócios dos clientes e por colaborar com engenheiros para projetar produtos de dados fáceis de usar.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- PlatoData.Network Gerativa Vertical Ai. Capacite-se. Acesse aqui.
- PlatoAiStream. Inteligência Web3. Conhecimento Amplificado. Acesse aqui.
- PlatãoESG. Automotivo / EVs, Carbono Tecnologia Limpa, Energia, Ambiente, Solar, Gestão de resíduos. Acesse aqui.
- BlockOffsets. Modernizando a Propriedade de Compensação Ambiental. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/big-data/enforce-boundaries-on-aws-glue-interactive-sessions/
- :tem
- :é
- :não
- $UP
- 1
- 10
- 100
- 7
- a
- Sobre
- Acesso
- Conta
- Açao Social
- adaptar
- Adicional
- endereços
- Adoção
- avançado
- AI / ML
- alarme
- Todos os Produtos
- permitir
- permitidas
- permite
- tb
- Amazon
- Amazon Web Services
- an
- analítica
- e
- qualquer
- Aplicação
- Aplicar
- Aplicando
- arquitetura
- SOMOS
- argumentos
- AS
- At
- autor
- Automatizado
- disponível
- AWS
- Formação da Nuvem AWS
- Cola AWS
- baseado
- BE
- sido
- antes
- MELHOR
- Grande
- Big Data
- Blog
- ambos
- limites
- construir
- construído
- negócio
- mas a
- by
- Califórnia
- chamada
- CAN
- Cuidado
- casas
- casos
- célula
- alterar
- mudado
- verificar
- Cheques
- de perto
- Na nuvem
- Agrupar
- código
- colaborando
- completar
- componentes
- Computar
- condições
- Configuração
- da conexão
- cônsul
- restrições
- contexto
- ao controle
- controles
- custos
- crio
- criado
- cria
- CREDENCIAL
- Credenciais
- Atualmente
- personalizadas
- Clientes
- dados,
- engenheiro de dados
- Preparação de dados
- profundo
- Padrão
- definido
- entregar
- entregue
- Entrega
- Dependendo
- implantar
- implantado
- Implantação
- desenvolvimento
- implanta
- descrito
- Design
- desenvolver
- em desenvolvimento
- Desenvolvimento
- DevOps
- fácil
- esforço
- ou
- habilitado
- permite
- criptografada
- termina
- aplicar
- impor
- engenheiro
- Engenharia
- Engenheiros
- garantir
- Empreendimento
- clientes corporativos
- Meio Ambiente
- ambientes
- erro
- especialmente
- Éter (ETH)
- Evento
- eventos
- exemplo
- exceção
- trocado
- Experiências
- experimentar
- estender
- facilitar
- FALHA
- falha
- Falha
- falso
- Característica
- Envie o
- Arquivos
- filtros
- encontra
- Primeiro nome
- Flexibilidade
- Foco
- seguir
- seguinte
- segue
- Escolha
- encontrado
- Gratuito
- da
- função
- mais distante
- Além disso
- GAL
- ter
- Global
- garanta
- Ter
- he
- sua
- Como funciona o dobrador de carta de canal
- Como Negociar
- HTML
- http
- HTTPS
- IAM
- ID
- identificar
- Identidade
- inativo
- if
- imediatamente
- importar
- in
- Incluindo
- INFORMAÇÕES
- Infraestrutura
- iniciado
- inovadores
- dentro
- instruções
- interativo
- para dentro
- invoca
- isolado
- IT
- ESTÁ
- Trabalho
- Empregos
- jpg
- Caderno Jupyter
- Chave
- Maior
- camadas
- APRENDER
- aprendizagem
- bibliotecas
- Biblioteca
- wifecycwe
- gostos
- Limitado
- limites
- Listado
- local
- localmente
- localizado
- registrado
- máquina
- aprendizado de máquina
- fazer
- de grupos
- Gerente
- gestão
- muitos
- máximo
- Posso..
- significa
- mecanismo
- Conheça
- mensagem
- mensagens
- conheceu
- poder
- minutos
- monitorados
- monitoração
- mais
- nome
- necessário
- você merece...
- necessário
- Cria
- Novo
- recentemente
- não
- caderno
- notificação
- número
- ocorreu
- of
- on
- só
- operação
- Opção
- Opções
- or
- ordem
- Outros
- Fora
- saída
- lado de fora
- pacote
- apaixonado
- para
- Pizza
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- prazer
- políticas
- Publique
- preparação
- pré-requisitos
- presente
- anterior
- problemas
- processo
- produz
- Produto
- gerente de produto
- Produtos
- Propriedades
- proposto
- fornecer
- fornecido
- fornece
- provisão
- Python
- RARO
- pronto
- razão
- Recomenda
- registro
- região
- relacionado
- relevante
- Removido
- renovado
- repositório
- Recursos
- papéis
- Regra
- Execute
- corrida
- é executado
- Sam
- Seção
- Secured
- Vejo
- envia
- senior
- enviei
- Serverless
- Serviços
- Sessão
- sessões
- conjunto
- instalação
- ela
- rede de apoio social
- semelhante
- simples
- solução
- Soluções
- RESOLVER
- alguns
- Em breve
- Faísca
- específico
- velocidade
- pilha
- começo
- começado
- Declaração
- Status
- Passos
- Dê um basta
- parou
- mais forte,
- certo
- natação
- Suíça
- Tire
- tomar
- tarefas
- Tecnologia
- modelo
- teste
- que
- A
- deles
- Lá.
- assim sendo
- Este
- coisas
- isto
- aqueles
- três
- Através da
- tempo
- para
- também
- tópico
- tráfego
- transformações
- desencadear
- desencadeado
- verdadeiro
- dois
- tipo
- para
- subjacente
- compreensão
- us
- Uso
- usar
- casos de uso
- Utilizador
- usuários
- utilização
- ux
- VALIDAR
- Valores
- via
- Virtual
- esperar
- Esperando
- Passo a passo
- queremos
- foi
- we
- web
- serviços web
- quando
- sempre que
- qual
- enquanto
- precisarão
- de
- dentro
- Atividades:
- trabalhador
- trabalhadores
- de gestão de documentos
- trabalho
- ainda
- Você
- investimentos
- zefirnet