Implemente o RStudio em seu ambiente AWS e acesse seu data lake usando permissões do AWS Lake Formation PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Implemente o RStudio em seu ambiente da AWS e acesse seu data lake usando as permissões do AWS Lake Formation

R é uma linguagem de programação analítica popular usada por cientistas e analistas de dados para realizar processamento de dados, realizar análises estatísticas, criar visualizações de dados e construir modelos de aprendizado de máquina (ML). RStudio, o ambiente de desenvolvimento integrado para R, fornece ferramentas de código aberto e software profissional pronto para empresas para que as equipes desenvolvam e compartilhem seu trabalho em toda a organização.

A implementação do ambiente RStudio na AWS fornece elasticidade e escalabilidade que você não tem ao implantar no local, eliminando a necessidade de gerenciar essa infraestrutura. Você pode selecionar a computação e a memória desejadas com base nos requisitos de processamento e também pode aumentar ou diminuir a escala para trabalhar com cargas de trabalho analíticas e de ML de diferentes tamanhos sem um investimento inicial. Isso permite que você experimente rapidamente novas fontes de dados e código e implemente novos processos de análise e modelos de ML para o restante da organização. Você também pode integrar perfeitamente seus recursos do Data Lake para disponibilizá-los para desenvolvedores e cientistas de dados e proteger os dados usando controles de acesso em nível de linha e coluna de Formação AWS Lake.

Esta postagem apresenta duas maneiras de implantar e executar facilmente o RStudio na AWS para acessar dados armazenados no data lake:

  • Totalmente gerenciado em Amazon Sage Maker
  • Auto-hospedado em Amazon Elastic Compute Nuvem (Amazon EC2)
    • Você pode optar por implantar a versão de código aberto do RStudio usando uma abordagem hospedada no EC2 que também descreveremos neste post. A opção auto-hospedada requer que o administrador crie uma instância do EC2 e instale o RStudio manualmente ou usando um Formação da Nuvem AWS Também há menos flexibilidade para implementar controles de acesso de usuário nessa opção, pois todos os usuários têm o mesmo nível de acesso nesse tipo de implementação.

RStudio no Amazon SageMaker

Você pode iniciar o RStudio Workbench com um simples clique no SageMaker. Com o SageMaker, os clientes não precisam arcar com a sobrecarga operacional de construir, instalar, proteger, dimensionar e manter o RStudio, eles não precisam pagar pelo RStudio Server em execução contínua (se estiverem usando t3.medium) e pagam apenas para computação RSession quando eles a usam. Os usuários do RStudio terão flexibilidade para dimensionar dinamicamente a computação alternando instâncias em tempo real. A execução do RStudio no SageMaker requer que um administrador estabeleça um domínio do SageMaker e perfis de usuário associados. Você também precisa de uma licença apropriada do RStudio

No SageMaker, você pode conceder acesso ao administrador do RStudio e ao nível de usuário do RStudio, com permissões diferentes. Apenas perfis de usuário com uma dessas duas funções podem acessar o RStudio no SageMaker. Para obter mais informações sobre as tarefas do administrador para configurar o RStudio no SageMaker, consulte Comece a usar o RStudio no Amazon SageMaker. Essa postagem também mostra o processo de seleção de instâncias do EC2 para cada sessão e como o administrador pode restringir as opções de instância do EC2 para usuários do RStudio.

Fig1: diagrama de arquitetura mostrando a interação de vários serviços da AWS

Use o acesso de segurança em nível de linha e coluna do Lake Formation

Além de permitir que sua equipe inicie sessões do RStudio no SageMaker, você também pode proteger o data lake usando controles de acesso em nível de linha e coluna do Lake Formation. Para obter mais informações, consulte Data lakes eficazes usando o AWS Lake Formation, Parte 4: Implementando a segurança em nível de célula e em nível de linha.

Por meio dos controles de segurança do Lake Formation, você pode garantir que cada pessoa tenha o acesso correto aos dados no data lake. Considere os dois perfis de usuário a seguir no domínio SageMaker, cada um com uma função de execução diferente:

Perfil de usuário Função de execução
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

A captura de tela a seguir mostra o rstudiouser-limitedaccess Detalhes de perfil.

Fig 2: Detalhes do perfil da função rstudiouser-limitedaccess

Fig 2: Detalhes do perfil da função rstudiouser-limitedaccess

A captura de tela a seguir mostra o rstudiouser-fullaccess Detalhes de perfil.

Fig 3: Detalhes do perfil da função rstudiouser-fullaccess

Fig 3: Detalhes do perfil da função rstudiouser-fullaccess

O conjunto de dados usado para este post é um Conjunto de dados públicos COVID-19. A captura de tela a seguir mostra um exemplo dos dados:

Fig4: conjunto de dados públicos COVID-19

Fig4: conjunto de dados públicos COVID-19

Depois de criar o perfil de usuário e atribuí-lo à função apropriada, você pode acessar o Lake Formation para rastrear os dados com Cola AWS, crie os metadados e a tabela e conceda acesso aos dados da tabela. Para o AmazonSageMaker-ExecutionRole-FullAccess função, você concede acesso a todas as colunas na tabela e, para AmazonSageMaker-ExecutionRole-LimitedAccess, você concede acesso usando o filtro de dados USA_Filter. Usamos esse filtro para fornecer permissões de coluna em nível de linha e de célula (consulte o Recursos coluna na captura de tela a seguir).

Fig5: Permissões do AWS Lake Formation para AmazonSageMaker-ExecutionRole -Funções de acesso total/limitado

Fig5: Permissões do AWS Lake Formation para AmazonSageMaker-ExecutionRole -Funções de acesso total/limitado

Conforme mostrado na captura de tela a seguir, a segunda função tem acesso limitado. Os usuários associados a esta função só podem acessar o continent, date, total_cases, total_deaths, new_cases, new_deaths e iso_codecolumns.

Fig6: Permissões em nível de coluna do AWS Lake Formation para a função de acesso limitado AmazonSageMaker-ExecutionRole

Fig6: Permissões em nível de coluna do AWS Lake Formation para a função de acesso limitado AmazonSageMaker-ExecutionRole

Com as permissões de função anexadas a cada perfil de usuário, podemos ver como o Lake Formation impõe as permissões apropriadas em nível de linha e coluna. Você pode abrir o RStudio Workbench a partir do Lançamento do Aplicativo menu suspenso na lista de usuários criada e escolha RStudio.

Na captura de tela a seguir, iniciamos o aplicativo como o rstudiouser-limitedaccess user.

Fig7: Iniciando a sessão do RStudio para o usuário rstudiouser-limitedaccess no console do Amazon SageMaker

Fig7: Iniciando a sessão do RStudio para o usuário rstudiouser-limitedaccess no console do Amazon SageMaker

Você pode ver a página inicial do RStudio Workbench e uma lista de sessões, projetos e conteúdo publicado.

Fig8: Sessão R Studio Workbench para usuário rstudiouser-limitedaccess

Fig8: Sessão R Studio Workbench para usuário rstudiouser-limitedaccess

Escolha um nome de sessão para iniciar a sessão no SageMaker. Instale o Paws (consulte as orientações anteriores neste post) para que você possa acessar os serviços apropriados da AWS. Agora você pode executar uma consulta para extrair todos os campos do conjunto de dados por meio de Amazona atena, usando o comando “SELECT * FROM "databasename.tablename"e armazene a saída da consulta em um Serviço de armazenamento simples da Amazon (Amazon S3).

Fig9: Execução do Athena Query na sessão do R Studio

Fig9: Execução do Athena Query na sessão do R Studio

A captura de tela a seguir mostra os arquivos de saída no bucket do S3.

Fig10: Resultados da execução do Athena Query no bucket do Amazon S3

Fig10: Resultados da execução do Athena Query no bucket do Amazon S3

A captura de tela a seguir mostra os dados nesses arquivos de saída usando Seleção do Amazon S3.

Fig11: Revisando os dados de saída usando o Amazon S3 Select

Fig11: Revisando os dados de saída usando o Amazon S3 Select

Apenas dados dos EUA e colunas continente, data, total_cases, total_deaths, new_cases, new_deaths e iso_code são mostrados no resultado para rstudiouser-limitedaccess usuário.

Vamos repetir os mesmos passos para o rstudiouser-fullaccess usuário.

Fig12: Iniciando a sessão do RStudio para o usuário rstudiouser-fullaccess no console do Amazon SageMaker

Fig12: Iniciando a sessão do RStudio para o usuário rstudiouser-fullaccess no console do Amazon SageMaker

Você pode ver a página inicial do RStudio Workbench e uma lista de sessões, projetos e conteúdo publicado.

Fig13: Sessão R Studio Workbench para usuário rstudiouser-fullaccess

Fig13: Sessão R Studio Workbench para usuário rstudiouser-fullaccess

Vamos executar a mesma consulta “SELECT * FROM "databasename.tablename" usando Atena.

Fig14: Execução do Athena Query na sessão do R Studio

Fig14: Execução do Athena Query na sessão do R Studio

A captura de tela a seguir mostra os arquivos de saída no bucket do S3.

Fig15: Resultados da execução do Athena Query no bucket do Amazon S3

Fig15: Resultados da execução do Athena Query no bucket do Amazon S3

A captura de tela a seguir mostra os dados nesses arquivos de saída usando Seleção do Amazon S3.

Fig16: Revisando os dados de saída usando o Amazon S3 Select

Fig16: Revisando os dados de saída usando o Amazon S3 Select

Como mostrado neste exemplo, o rstudiouser-fullaccess o usuário tem acesso a todas as colunas e linhas no conjunto de dados.

Auto-hospedado no Amazon EC2

Se você quiser começar a experimentar a versão de código aberto do RStudio na AWS, poderá instalar o Rstudio em uma instância do EC2. Este modelo do CloudFormation fornecido nesta postagem provisiona a instância do EC2 e instala o RStudio usando o script de dados do usuário. Você pode executar o modelo várias vezes para provisionar várias instâncias do RStudio conforme necessário e usá-lo em qualquer região da AWS. Depois de implantar o modelo do CloudFormation, ele fornece uma URL para acessar o RStudio de um navegador da web. O Amazon EC2 permite que você aumente ou diminua a escala para lidar com alterações no tamanho dos dados e na capacidade de computação necessária para executar suas análises.

Crie um par de valores-chave para acesso seguro

A AWS usa criptografia de chave pública para proteger as informações de login da sua instância do EC2. Você especifica o nome do par de chaves no KeyPair parâmetro ao iniciar o modelo do CloudFormation. Em seguida, você pode usar a mesma chave para fazer login na instância do EC2 provisionada posteriormente, se necessário.

Antes de executar o modelo do CloudFormation, verifique se você tem o par de chaves do Amazon EC2 na conta da AWS que planeja usar. Se não, então consulte Criar um par de chaves usando o Amazon EC2 para obter instruções para criar um.

Inicie o modelo do CloudFormationFaça login no console do CloudFormation no us-east-1 Região e escolha Iniciar Pilha.

Botão de inicialização da pilha

Você deve inserir vários parâmetros no modelo do CloudFormation:

  • InitialUser e InitialPassword – O nome de usuário e a senha que você usa para fazer login na sessão do RStudio. Os valores padrão são rstudio e Rstudio@123, Respectivamente.
  • Tipo de instância – O tipo de instância do EC2 no qual implantar o servidor RStudio. Atualmente, o modelo aceita todas as instâncias nas famílias de instâncias t2, m4, c4, r4, g2, p2 e g3 e pode incorporar facilmente outras famílias de instâncias. O valor padrão é t2.micro.
  • Par de Chaves – O par de chaves que você usa para efetuar login na instância do EC2.
  • VpcId e SubnetId - A Nuvem privada virtual da Amazon (Amazon VPC) e sub-rede na qual iniciar a instância.

Depois de inserir esses parâmetros, implante o modelo do CloudFormation. Quando estiver concluído, os seguintes recursos estarão disponíveis:

  • Uma instância do EC2 com o RStudio instalado.
  • Uma função do IAM com as permissões necessárias para se conectar a outros serviços da AWS.
  • Um grupo de segurança com regras para abrir a porta 8787 para o Servidor RStudio.

Faça login no RStudio

Agora você está pronto para usar o RStudio! Vou ao Saídas guia para a pilha do CloudFormation e copie o valor da URL do RStudio (está no formato http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/). Digite esse URL em um navegador da web. Isso abre sua sessão do RStudio, na qual você pode fazer login usando o mesmo nome de usuário e senha fornecidos durante a execução do modelo do CloudFormation.

Acesse os serviços da AWS a partir do RStudio

Após acessar a sessão do RStudio, você deve instalar o R ​​Package for AWS (Paws). Isso permite que você se conecte a muitos serviços da AWS, incluindo serviços e recursos em seu data lake. Para instalar o Paws, insira e execute o seguinte código R:

install.packages("paws")

Para usar um serviço da AWS, crie um cliente e acesse as operações do serviço desse cliente. Ao acessar as APIs da AWS, você deve fornecer suas credenciais e região. O Paws pesquisa as credenciais e a região usando a cadeia de autenticação da AWS:

  • Chave de acesso, chave secreta, token de sessão, perfil ou região fornecida explicitamente
  • Variáveis ​​de ambiente R
  • Variáveis ​​de ambiente do sistema operacional
  • Credenciais compartilhadas e arquivos de configuração da AWS em .aws/credentials e .aws/config
  • Função do IAM do contêiner
  • Função do IAM da instância

Como você está executando em uma instância do EC2 com uma função do IAM anexada, o Paws usa automaticamente suas credenciais de função do IAM para autenticar solicitações de API da AWS.

# To interact with an Amazon S3 service, first create an S3 client then list the objects within your bucket by invoking: rstudio-XXXXXXXXXX
s3 <- paws::s3(config = list(region = 'us-east-1'))s3$list_objects(Bucket = "rstudio-XXXXXXXXXX")
# Let’s see how we can interactively query data from your data lake using Amazon Athena.
athena <- paws::athena(config = list(region = 'us-east-1'))
athena$start_query_execution(QueryString = "SELECT * FROM "databasename.tablename" limit 10;",QueryExecutionContext = list(Database = "databasename", Catalog = "catalogname"),ResultConfiguration = list(OutputLocation = "S3 Bucket",EncryptionConfiguration = list(EncryptionOption = "SSE_S3")), WorkGroup = "workgroup name")
$QueryExecutionId[1] 
"17ccec8a-d196-4b4c-b31c-314fab8939f3"

Para ambiente de produção, recomendamos o uso da solução escalável Rstudio descrita em este blog.

Conclusão

Você aprendeu a implantar seu ambiente RStudio na AWS. Demonstramos as vantagens de usar o RStudio no Amazon SageMaker e como você pode começar. Você também aprendeu como começar a experimentar rapidamente a versão de código aberto do RStudio usando uma instalação auto-hospedada usando o Amazon EC2. Também demonstramos como integrar o RStudio em suas arquiteturas de data lake e implementar controle de acesso refinado em uma tabela de data lake usando o recurso de segurança em nível de linha e de célula do Lake Formation.

Em nosso próximo post, vamos demonstrar como conteinerizar scripts R e executá-los usando AWS Lambda.


Sobre os autores

Implemente o RStudio em seu ambiente AWS e acesse seu data lake usando permissões do AWS Lake Formation PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Venkata Campana é um arquiteto de soluções sênior na equipe de serviços humanos e de saúde da AWS e mora em Sacramento, CA. Nessa função, ele ajuda os clientes do setor público a atingir seus objetivos de missão com soluções bem arquitetadas na AWS.

Implemente o RStudio em seu ambiente AWS e acesse seu data lake usando permissões do AWS Lake Formation PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.Dra. Dawn Heisey-Grove é o líder de análise de saúde pública da equipe de governo estadual e local da Amazon Web Services. Nessa função, ela é responsável por ajudar agências de saúde pública estaduais e locais a pensar de forma criativa sobre como atingir seus desafios de análise e metas de longo prazo. Ela passou sua carreira encontrando novas maneiras de usar dados novos ou existentes para apoiar a vigilância e a pesquisa em saúde pública.

Carimbo de hora:

Mais de Aprendizado de máquina da AWS