Implemente RStudio en su entorno de AWS y acceda a su lago de datos utilizando los permisos de AWS Lake Formation PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Implemente RStudio en su entorno de AWS y acceda a su lago de datos utilizando los permisos de AWS Lake Formation

R es un lenguaje de programación analítico popular que utilizan los científicos y analistas de datos para realizar el procesamiento de datos, realizar análisis estadísticos, crear visualizaciones de datos y crear modelos de aprendizaje automático (ML). RStudio, el entorno de desarrollo integrado para R, proporciona herramientas de código abierto y software profesional listo para la empresa para que los equipos desarrollen y compartan su trabajo en toda la organización. Sin embargo, construir, proteger, escalar y mantener RStudio por sí mismo es tedioso y engorroso.

La implementación del entorno de RStudio en AWS brinda elasticidad y escalabilidad que no tiene cuando se implementa en las instalaciones, lo que elimina la necesidad de administrar esa infraestructura. Puede seleccionar el cómputo y la memoria deseados en función de los requisitos de procesamiento y también puede escalar hacia arriba o hacia abajo para trabajar con cargas de trabajo analíticas y de ML de diferentes tamaños sin una inversión inicial. Esto le permite experimentar rápidamente con nuevas fuentes de datos y código, e implementar nuevos procesos analíticos y modelos ML para el resto de la organización. También puede integrar a la perfección sus recursos de Data Lake para ponerlos a disposición de los desarrolladores y científicos de datos y proteger los datos mediante el uso de controles de acceso a nivel de fila y de columna desde Formación del lago AWS.

Esta publicación presenta dos formas de implementar y ejecutar fácilmente RStudio en AWS para acceder a los datos almacenados en el lago de datos:

  • Totalmente administrado en Amazon SageMaker
  • Autohospedado en Nube informática elástica de Amazon (Amazon EC2)
    • Puede optar por implementar la versión de código abierto de RStudio utilizando un enfoque alojado en EC2 que también describiremos en esta publicación. La opción autohospedada requiere que el administrador cree una instancia EC2 e instale RStudio manualmente o usando un Formación en la nube de AWS También hay menos flexibilidad para implementar controles de acceso de usuarios en esta opción, ya que todos los usuarios tienen el mismo nivel de acceso en este tipo de implementación.

RStudio en Amazon SageMaker

Puede iniciar RStudio Workbench con un simple clic desde SageMaker. Con SageMaker, los clientes no tienen que asumir los gastos generales operativos de creación, instalación, protección, escalado y mantenimiento de RStudio, no tienen que pagar por el servidor RStudio en ejecución continua (si usan t3.medium) y solo pagan para el cálculo de RSession cuando lo usan. Los usuarios de RStudio tendrán flexibilidad para escalar dinámicamente el cómputo cambiando instancias sobre la marcha. La ejecución de RStudio en SageMaker requiere que un administrador establezca un dominio de SageMaker y los perfiles de usuario asociados. También necesita una licencia de RStudio apropiada

Dentro de SageMaker, puede otorgar acceso al administrador de RStudio y al nivel de usuario de RStudio, con diferentes permisos. Solo los perfiles de usuario con uno de estos dos roles pueden acceder a RStudio en SageMaker. Para obtener más información sobre las tareas del administrador para configurar RStudio en SageMaker, consulte Empiece a utilizar RStudio en Amazon SageMaker. Esa publicación también muestra el proceso de selección de instancias EC2 para cada sesión y cómo el administrador puede restringir las opciones de la instancia EC2 para los usuarios de RStudio.

Fig. 1: Diagrama de arquitectura que muestra la interacción de varios servicios de AWS

Utilice el acceso de seguridad a nivel de fila y de columna de Lake Formation

Además de permitir que su equipo inicie sesiones de RStudio en SageMaker, también puede proteger el lago de datos mediante el uso de controles de acceso a nivel de fila y de columna de Lake Formation. Para obtener más información, consulte Lagos de datos efectivos con AWS Lake Formation, Parte 4: Implementación de seguridad a nivel de fila y de celda.

A través de los controles de seguridad de Lake Formation, puede asegurarse de que cada persona tenga el acceso correcto a los datos en el lago de datos. Considere los siguientes dos perfiles de usuario en el dominio de SageMaker, cada uno con una función de ejecución diferente:

Perfil Rol de ejecución
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

La siguiente captura de pantalla muestra el rstudiouser-limitedaccess detalles del perfil.

Fig. 2: Detalles del perfil del rol de acceso limitado de usuario de rstudio

Fig. 2: Detalles del perfil del rol de acceso limitado de usuario de rstudio

La siguiente captura de pantalla muestra el rstudiouser-fullaccess detalles del perfil.

Fig. 3: Detalles del perfil del rol rstudiouser-fullaccess

Fig. 3: Detalles del perfil del rol rstudiouser-fullaccess

El conjunto de datos utilizado para esta publicación es un Conjunto de datos públicos de COVID-19. La siguiente captura de pantalla muestra un ejemplo de los datos:

Fig. 4: conjunto de datos públicos de COVID-19

Fig. 4: conjunto de datos públicos de COVID-19

Después de crear el perfil de usuario y asignarlo a la función adecuada, puede acceder a Lake Formation para rastrear los datos con Pegamento AWS, cree los metadatos y la tabla, y otorgue acceso a los datos de la tabla. Para el AmazonSageMaker-ExecutionRole-FullAccess función, otorga acceso a todas las columnas de la tabla, y para AmazonSageMaker-ExecutionRole-LimitedAccess, otorgas acceso usando el filtro de datos USA_Filter. Utilizamos este filtro para proporcionar permisos de columna a nivel de fila y nivel de celda (consulte la Recurso columna en la siguiente captura de pantalla).

Fig. 5: Permisos de AWS Lake Formation para AmazonSageMaker-ExecutionRole -Roles de acceso completo/limitado

Fig. 5: Permisos de AWS Lake Formation para AmazonSageMaker-ExecutionRole -Roles de acceso completo/limitado

Como se muestra en la siguiente captura de pantalla, el segundo rol tiene acceso limitado. Los usuarios asociados con este rol solo pueden acceder a la continent, date, total_cases, total_deaths, new_cases, new_deathsy iso_codecolumns.

Fig. 6: Permisos de nivel de columna de AWS Lake Formation para el rol de acceso limitado AmazonSageMaker-ExecutionRole

Fig. 6: Permisos de nivel de columna de AWS Lake Formation para el rol de acceso limitado AmazonSageMaker-ExecutionRole

Con los permisos de función adjuntos a cada perfil de usuario, podemos ver cómo Lake Formation aplica los permisos adecuados a nivel de fila y de columna. Puede abrir RStudio Workbench desde el Ejecutar aplicación menú desplegable en la lista de usuarios creada y seleccione RStudio.

En la siguiente captura de pantalla, lanzamos la aplicación como el rstudiouser-limitedaccess user.

Fig. 7: Inicio de la sesión de RStudio para el usuario de acceso limitado de rstudiouser desde la consola de Amazon SageMaker

Fig. 7: Inicio de la sesión de RStudio para el usuario de acceso limitado de rstudiouser desde la consola de Amazon SageMaker

Puede ver la página de inicio de RStudio Workbench y una lista de sesiones, proyectos y contenido publicado.

Fig. 8: Sesión de R Studio Workbench para usuario de acceso limitado de rstudiouser

Fig. 8: Sesión de R Studio Workbench para usuario de acceso limitado de rstudiouser

Elija un nombre de sesión para iniciar la sesión en SageMaker. Instale Paws (consulte la guía anterior en esta publicación) para que pueda acceder a los servicios de AWS apropiados. Ahora puede ejecutar una consulta para extraer todos los campos del conjunto de datos a través de Atenea amazónica, usando el comando “SELECT * FROM "databasename.tablename"y almacene el resultado de la consulta en un Servicio de almacenamiento simple de Amazon (Amazon S3) cubo.

Fig. 9: Ejecución de Athena Query en sesión de R Studio

Fig. 9: Ejecución de Athena Query en sesión de R Studio

La siguiente captura de pantalla muestra los archivos de salida en el depósito S3.

Fig. 10: Resultados de la ejecución de Athena Query en Amazon S3 Bucket

Fig. 10: Resultados de la ejecución de Athena Query en Amazon S3 Bucket

La siguiente captura de pantalla muestra los datos en estos archivos de salida usando Amazon S3 Seleccionar.

Fig. 11: Revisión de los datos de salida con Amazon S3 Select

Fig. 11: Revisión de los datos de salida con Amazon S3 Select

Solo datos de EE. UU. y columnas continente, fecha, total_cases, total_deaths, new_cases, new_deathsy iso_code se muestran en el resultado de la rstudiouser-limitedaccess .

Repitamos los mismos pasos para el rstudiouser-fullaccess .

Fig. 12: Inicio de la sesión de RStudio para el usuario rstudiouser-fullaccess desde la consola de Amazon SageMaker

Fig. 12: Inicio de la sesión de RStudio para el usuario rstudiouser-fullaccess desde la consola de Amazon SageMaker

Puede ver la página de inicio de RStudio Workbench y una lista de sesiones, proyectos y contenido publicado.

Fig. 13: sesión de R Studio Workbench para el usuario rstudiouser-fullaccess

Fig. 13: sesión de R Studio Workbench para el usuario rstudiouser-fullaccess

Hagamos la misma consulta “SELECT * FROM "databasename.tablename" utilizando Atenea.

Fig. 14: Ejecución de Athena Query en sesión de R Studio

Fig. 14: Ejecución de Athena Query en sesión de R Studio

La siguiente captura de pantalla muestra los archivos de salida en el depósito S3.

Fig. 15: Resultados de la ejecución de Athena Query en Amazon S3 Bucket

Fig. 15: Resultados de la ejecución de Athena Query en Amazon S3 Bucket

La siguiente captura de pantalla muestra los datos en estos archivos de salida usando Amazon S3 Seleccionar.

Fig. 16: Revisión de los datos de salida con Amazon S3 Select

Fig. 16: Revisión de los datos de salida con Amazon S3 Select

Como se muestra en este ejemplo, el rstudiouser-fullaccess el usuario tiene acceso a todas las columnas y filas del conjunto de datos.

Autohospedado en Amazon EC2

Si desea comenzar a experimentar con la versión de código abierto de RStudio en AWS, puede instalar Rstudio en una instancia EC2. Esta plantilla de CloudFormation proporcionada en esta publicación aprovisiona la instancia EC2 e instala RStudio mediante el script de datos de usuario. Puede ejecutar la plantilla varias veces para aprovisionar varias instancias de RStudio según sea necesario y puede usarla en cualquier región de AWS. Después de implementar la plantilla de CloudFormation, le proporciona una URL para acceder a RStudio desde un navegador web. Amazon EC2 le permite escalar hacia arriba o hacia abajo para manejar los cambios en el tamaño de los datos y la capacidad informática necesaria para ejecutar sus análisis.

Cree un par clave-valor para un acceso seguro

AWS utiliza criptografía de clave pública para proteger la información de inicio de sesión de su instancia EC2. Especifique el nombre del par de claves en el KeyPair parámetro cuando inicia la plantilla de CloudFormation. Luego puede usar la misma clave para iniciar sesión en la instancia EC2 aprovisionada más tarde si es necesario.

Antes de ejecutar la plantilla de CloudFormation, asegúrese de tener el par de claves de Amazon EC2 en la cuenta de AWS que planea usar. Si no, consulte Cree un par de claves con Amazon EC2 para obtener instrucciones para crear uno.

Inicie la plantilla de CloudFormationInicie sesión en la consola de CloudFormation en el us-east-1 Region y elija Launch Stack.

Botón de lanzamiento de pila

Debe ingresar varios parámetros en la plantilla de CloudFormation:

  • UsuarioInicial y ContraseñaInicial – El nombre de usuario y la contraseña que utiliza para iniciar sesión en la sesión de RStudio. Los valores predeterminados son rstudio y Rstudio@123, respectivamente.
  • Tipo de instancia – El tipo de instancia EC2 en el que implementar el servidor RStudio. Actualmente, la plantilla acepta todas las instancias de las familias de instancias t2, m4, c4, r4, g2, p2 y g3, y puede incorporar otras familias de instancias fácilmente. El valor predeterminado es t2.micro.
  • Par de claves – El par de claves que utiliza para iniciar sesión en la instancia EC2.
  • VpcId y SubnetId - El Nube privada virtual de Amazon (Amazon VPC) y subred en la que lanzar la instancia.

Después de ingresar estos parámetros, implemente la plantilla de CloudFormation. Cuando esté completo, los siguientes recursos estarán disponibles:

  • Una instancia EC2 con RStudio instalado.
  • Un rol de IAM con los permisos necesarios para conectarse a otros servicios de AWS.
  • Un grupo de seguridad con reglas para abrir el puerto 8787 para el servidor RStudio.

Iniciar sesión en RStudio

¡Ahora está listo para usar RStudio! Ve a la Salidas pestaña para la pila de CloudFormation y copie el valor de la URL de RStudio (tiene el formato http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/). Introduzca esa URL en un navegador web. Esto abre su sesión de RStudio, a la que puede iniciar sesión con el mismo nombre de usuario y contraseña que proporcionó al ejecutar la plantilla de CloudFormation.

Acceda a los servicios de AWS desde RStudio

Después de acceder a la sesión de RStudio, debe instalar el paquete R para AWS (Paws). Esto le permite conectarse a muchos servicios de AWS, incluidos los servicios y recursos de su lago de datos. Para instalar Paws, ingrese y ejecute el siguiente código R:

install.packages("paws")

Para utilizar un servicio de AWS, cree un cliente y acceda a las operaciones del servicio desde ese cliente. Al acceder a las API de AWS, debe proporcionar sus credenciales y región. Paws busca las credenciales y la Región utilizando la cadena de autenticación de AWS:

  • Clave de acceso, clave secreta, token de sesión, perfil o región proporcionados explícitamente
  • Variables de entorno R
  • Variables de entorno del sistema operativo
  • AWS compartió credenciales y archivos de configuración en .aws/credentials y .aws/config
  • Rol de IAM de contenedor
  • Rol de IAM de la instancia

Debido a que está ejecutando una instancia EC2 con un rol de IAM adjunto, Paws usa automáticamente sus credenciales de rol de IAM para autenticar las solicitudes de la API de 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 el entorno de producción, recomendamos usar la solución Rstudio escalable descrita en este blog.

Conclusión

Aprendió a implementar su entorno RStudio en AWS. Demostramos las ventajas de usar RStudio en Amazon SageMaker y cómo puede comenzar. También aprendió a comenzar a experimentar rápidamente con la versión de código abierto de RStudio mediante una instalación autohospedada mediante Amazon EC2. También demostramos cómo integrar RStudio en las arquitecturas de su lago de datos e implementar un control de acceso detallado en una tabla de lago de datos utilizando la función de seguridad a nivel de fila y de celda de Lake Formation.

En nuestra próxima publicación, demostraremos cómo contener scripts R y ejecutarlos usando AWS Lambda.


Sobre los autores

Implemente RStudio en su entorno de AWS y acceda a su lago de datos utilizando los permisos de AWS Lake Formation PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Venkata Campana es Arquitecto de Soluciones Sénior en el equipo de Servicios Humanos y de Salud de AWS y tiene su sede en Sacramento, CA. En ese rol, ayuda a los clientes del sector público a lograr los objetivos de su misión con soluciones bien diseñadas en AWS.

Implemente RStudio en su entorno de AWS y acceda a su lago de datos utilizando los permisos de AWS Lake Formation PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.Dra. Dawn Heisey-Grove es el líder de análisis de salud pública para el equipo de gobierno local y estatal de Amazon Web Services. En este cargo, es responsable de ayudar a las agencias de salud pública estatales y locales a pensar de manera creativa sobre cómo lograr sus desafíos analíticos y objetivos a largo plazo. Ha dedicado su carrera a encontrar nuevas formas de utilizar datos existentes o nuevos para respaldar la investigación y la vigilancia de la salud pública.

Sello de tiempo:

Mas de Aprendizaje automático de AWS