Garanta que o registro do Amazon EMR no Amazon S3 esteja habilitado no lançamento - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Garanta que o registro do Amazon EMR no Amazon S3 esteja habilitado no lançamento

Ambiente: produção

Tecnologias: segurança, identidade, conformidade; tecnologia sem servidor; análise

Workload: código aberto

Serviços da AWS: Amazon EMR; Amazon S3; Amazon SNS; Amazon CloudWatch

Resumo

Esse padrão fornece um controle de segurança que monitora a configuração de log para clusters do Amazon EMR executados na Amazon Web Services (AWS).

O Amazon EMR é uma ferramenta da AWS para processamento e análise de big data. O Amazon EMR oferece o serviço expansível de baixa configuração como alternativa à execução da computação em cluster interna. O Amazon EMR fornece dois tipos de clusters EMR.

  • Clusters transitórios do Amazon EMR: os clusters transitórios do Amazon EMR são desligados automaticamente e param de incorrer em custos quando o processamento é concluído.

  • Clusters persistentes do Amazon EMR: os clusters persistentes do Amazon EMR continuam em execução após a conclusão do trabalho de processamento de dados.

Tanto o Amazon EMR como o Hadoop produzem arquivos de log que informam o status no cluster. Por padrão, esses dados são gravados no nó principal, no diretório /mnt/var/log/. Dependendo de como você configura o cluster ao iniciá-lo, também poderá salvar esses logs no Amazon Simple Storage Service (Amazon S3) e visualizá-los por meio da ferramenta de depuração gráfica. Observe que o registro em log do Amazon S3 só pode ser especificado quando o cluster é iniciado. Com essa configuração, os registros são enviados do nó primário para o local do Amazon S3 a cada cinco minutos. Para clusters transitórios, o registro no Amazon S3 é importante porque os clusters desaparecem quando o processamento é concluído, e esses arquivos de log podem ser usados para depurar qualquer trabalho com falha.

O padrão usa um CloudFormation modelo da AWS para implantar um controle de segurança que monitora as chamadas de API e inicia o Amazon CloudWatch Events em “RunJobFlow”. O gatilho invoca o AWS Lambda, que executa um script do Python. A função do Lambda recupera o ID do cluster EMR da entrada JSON do evento e também verifica se há um URI de log do Amazon S3. Se um URI do Amazon S3 não for encontrado, a função do Lambda enviará uma notificação do Amazon Simple Notification Service (Amazon SNS) detalhando o nome do cluster do EMR, os detalhes da violação, a região da AWS, a conta da AWS e o nome do recurso da Amazon (ARN) do Lambda do qual a notificação foi originada.

Pré-requisitos e limitações

Pré-requisitos

  • Uma conta AWS ativa

  • Um bucket S3 para o arquivo .zip do código Lambda

  • Um endereço de e-mail no qual você deseja receber a notificação de violação

Limitações

  • Esse controle de detetive é regional e deve ser implantado nas regiões da AWS que você pretende monitorar.

Versões do produto

  • Versão 4.8.0 e posterior do Amazon EMR

Arquitetura

Pilha de tecnologias de destino

  • Evento Amazon CloudWatch Events

  • Amazon EMR

  • Função do Lambda

  • Bucket do S3

  • Amazon SNS

Arquitetura de destino

Automação e escala

  • Se você estiver usando o AWS Organizations, poderá usar CloudFormation StackSets a AWS para implantar esse modelo em várias contas que você deseja monitorar.

Ferramentas

Ferramentas

  • AWS CloudFormation — CloudFormation A AWS ajuda você a modelar e configurar recursos da AWS usando a infraestrutura como código.

  • Eventos do AWS Cloudwatch — O AWS CloudWatch Events fornece um fluxo quase em tempo real de eventos do sistema que descrevem mudanças nos recursos da AWS.

  • Amazon EMR – o Amazon EMR é uma plataforma de cluster gerenciada que simplifica a execução de frameworks de Big Data.

  • AWS Lambda – o AWS Lambda oferece suporte à execução de código sem provisionar ou gerenciar servidores. O Lambda executa o código somente quando necessário e dimensiona automaticamente, desde algumas solicitações por dia até milhares por segundo.

  • Amazon S3 – O Amazon S3 é uma interface de serviços da web que você pode usar para armazenar e recuperar qualquer quantidade de dados, a qualquer momento, em qualquer lugar da web.

  • Amazon SNS – O Amazon SNS é um serviço da Web que coordena e gerencia a entrega ou o envio de mensagens entre editores e clientes, incluindo servidores da Web e endereços de e-mail.

Código

  • Um arquivo.zip do projeto está disponível como anexo.

Épicos

TarefaDescriçãoHabilidades necessárias
Definir o bucket do S3.

Para hospedar o arquivo .zip do código Lambda, selecione ou crie um bucket do S3 com um nome exclusivo que não contenha barras iniciais. Um nome de bucket do S3 é globalmente exclusivo, e o namespace é compartilhado por todas as contas da AWS. Seu bucket do S3 precisa estar na mesma região da AWS do cluster do Amazon EMR que está sendo avaliado.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Carregar o código do Lambda para o bucket do S3.

Faça upload do arquivo.zip do código Lambda fornecido na seção “Anexos” para o bucket do S3. O bucket do S3 deve estar na mesma região da que o cluster do Amazon EMR que está sendo avaliado.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Implante o CloudFormation modelo da AWS.

No CloudFormation console da AWS, na mesma região do seu bucket do S3, implante o CloudFormation modelo da AWS que é fornecido como anexo a esse padrão. No próximo épico, forneça os valores para os parâmetros. Para obter mais informações sobre a implantação de CloudFormation modelos da AWS, consulte a seção “Recursos relacionados”.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Nomeie o bucket do S3.

Insira o nome do bucket do S3 que você criou no primeiro épico.

Arquiteto de nuvem
Forneça a chave do Amazon S3.

Forneça o local do arquivo .zip do código Lambda em seu bucket do S3, sem barras iniciais (por exemplo, <diretório>/<nome do arquivo>.zip).

Arquiteto de nuvem
Forneça um endereço de e-mail.

Forneça um endereço de e-mail ativo para receber notificações do Amazon SNS.

Arquiteto de nuvem
Defina o nível de registro em log.

Defina o nível de registro e a frequência da sua função do Lambda. “Info” (Informações) designa mensagens informativas detalhadas sobre o progresso do aplicativo. “Error” (Erro) designa eventos de erro que ainda podem permitir que o aplicativo continue em execução. “Warning” (Aviso) designa situações potencialmente prejudiciais.

Arquiteto de nuvem
TarefaDescriçãoHabilidades necessárias
Confirmar a assinatura.

Quando o modelo é implantado com sucesso, ele envia uma mensagem de e-mail de assinatura para o endereço de e-mail fornecido. Você deve confirmar esta assinatura de e-mail para receber notificações de violação.

Arquiteto de nuvem

AWS Lambda

Registro em log no Amazon EMR

Implantação de modelos da AWS CloudFormation

Anexos

Para acessar o conteúdo adicional associado a este documento, descompacte o seguinte arquivo: attachment.zip