Implementa RStudio nel tuo ambiente AWS e accedi al tuo data Lake utilizzando le autorizzazioni di AWS Lake Formation PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Implementa RStudio nel tuo ambiente AWS e accedi al tuo data lake utilizzando le autorizzazioni AWS Lake Formation

R è un popolare linguaggio di programmazione analitica utilizzato da data scientist e analisti per eseguire l'elaborazione dei dati, condurre analisi statistiche, creare visualizzazioni di dati e costruire modelli di machine learning (ML). RStudio, l'ambiente di sviluppo integrato per R, fornisce strumenti open source e software professionale pronto per l'impresa per consentire ai team di sviluppare e condividere il proprio lavoro all'interno dell'organizzazione Creare, proteggere, ridimensionare e mantenere RStudio da soli è, tuttavia, noioso e ingombrante.

L'implementazione dell'ambiente RStudio in AWS fornisce elasticità e scalabilità che non hai durante la distribuzione in locale, eliminando la necessità di gestire tale infrastruttura. Puoi selezionare il calcolo e la memoria desiderati in base ai requisiti di elaborazione e puoi anche aumentare o diminuire per lavorare con carichi di lavoro analitici e ML di dimensioni diverse senza un investimento iniziale. Ciò ti consente di sperimentare rapidamente con nuove origini dati e codice e di implementare nuovi processi di analisi e modelli di machine learning nel resto dell'organizzazione. Puoi anche integrare perfettamente le risorse di Data Lake per renderle disponibili a sviluppatori e data scientist e proteggere i dati utilizzando i controlli di accesso a livello di riga e di colonna da Formazione AWS Lake.

Questo post presenta due modi per distribuire ed eseguire facilmente RStudio su AWS per accedere ai dati archiviati nel data lake:

  • Completamente gestito Amazon Sage Maker
  • Auto-ospitato Cloud di calcolo elastico di Amazon (Amazon EC2)
    • Puoi scegliere di distribuire la versione open source di RStudio utilizzando un approccio ospitato EC2 che descriveremo anche in questo post. L'opzione self-hosted richiede che l'amministratore crei un'istanza EC2 e installi RStudio manualmente o utilizzando a AWS CloudFormazione C'è anche una minore flessibilità per l'implementazione dei controlli di accesso degli utenti in questa opzione poiché tutti gli utenti hanno lo stesso livello di accesso in questo tipo di implementazione.

RStudio su Amazon SageMaker

Puoi avviare RStudio Workbench con un semplice clic da SageMaker. Con SageMaker i clienti non devono sostenere il sovraccarico operativo di costruzione, installazione, protezione, ridimensionamento e manutenzione di RStudio, non devono pagare per il server RStudio in esecuzione continua (se utilizzano t3.medium) e pagano solo per il calcolo di RSession quando lo usano. Gli utenti di RStudio avranno la flessibilità di scalare dinamicamente il calcolo cambiando istanze al volo. L'esecuzione di RStudio su SageMaker richiede che un amministratore stabilisca un dominio SageMaker e i profili utente associati. È inoltre necessaria una licenza RStudio appropriata

All'interno di SageMaker, puoi concedere l'accesso a livello di amministratore di RStudio e utente di RStudio, con autorizzazioni diverse. Solo i profili utente a cui è stato concesso uno di questi due ruoli possono accedere a RStudio in SageMaker. Per ulteriori informazioni sulle attività dell'amministratore per la configurazione di RStudio su SageMaker, fare riferimento a Inizia con RStudio su Amazon SageMaker. Quel post mostra anche il processo di selezione delle istanze EC2 per ogni sessione e come l'amministratore può limitare le opzioni delle istanze EC2 per gli utenti di RStudio.

Fig1: diagramma dell'architettura che mostra l'interazione di vari servizi AWS

Utilizzare l'accesso di sicurezza a livello di riga e di colonna di Lake Formation

Oltre a consentire al tuo team di avviare sessioni RStudio su SageMaker, puoi anche proteggere il data lake utilizzando i controlli di accesso a livello di riga e di colonna di Lake Formation. Per ulteriori informazioni, fare riferimento a Data lake efficaci con AWS Lake Formation, parte 4: implementazione della sicurezza a livello di cella e di riga.

Attraverso i controlli di sicurezza di Lake Formation, puoi assicurarti che ogni persona abbia il giusto accesso ai dati nel data lake. Considera i seguenti due profili utente nel dominio SageMaker, ciascuno con un ruolo di esecuzione diverso:

Profilo utente Ruolo di esecuzione
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

La seguente schermata mostra il rstudiouser-limitedaccess dettagli del profilo.

Fig 2: Dettagli del profilo del ruolo rstudiouser-limitedaccess

Fig 2: Dettagli del profilo del ruolo rstudiouser-limitedaccess

La seguente schermata mostra il rstudiouser-fullaccess dettagli del profilo.

Fig 3: Dettagli del profilo del ruolo rstudiouser-fullaccess

Fig 3: Dettagli del profilo del ruolo rstudiouser-fullaccess

Il set di dati utilizzato per questo post è a Set di dati pubblici COVID-19. Lo screenshot seguente mostra un esempio dei dati:

Fig4: Set di dati pubblici COVID-19

Fig4: Set di dati pubblici COVID-19

Dopo aver creato il profilo utente e averlo assegnato al ruolo appropriato, puoi accedere a Lake Formation per eseguire la scansione dei dati con Colla AWS, crea i metadati e la tabella e concedi l'accesso ai dati della tabella. Per il AmazonSageMaker-ExecutionRole-FullAccess ruolo, concedi l'accesso a tutte le colonne della tabella e per AmazonSageMaker-ExecutionRole-LimitedAccess, si concede l'accesso utilizzando il filtro dati USA_Filter. Utilizziamo questo filtro per fornire autorizzazioni a livello di riga e di colonna a livello di cella (vedi il Gestione colonna nella schermata seguente).

Fig5: Autorizzazioni di AWS Lake Formation per AmazonSageMaker-ExecutionRole - Ruoli di accesso completo/limitato

Fig5: Autorizzazioni di AWS Lake Formation per AmazonSageMaker-ExecutionRole - Ruoli di accesso completo/limitato

Come mostrato nella schermata seguente, il secondo ruolo ha accesso limitato. Gli utenti associati a questo ruolo possono accedere solo a continent, date, total_cases, total_deaths, new_cases, new_deathse iso_codecolumns.

Fig6: AWS Lake Formation Autorizzazioni a livello di colonna per il ruolo AmazonSageMaker-ExecutionRole-Limited Access

Fig6: AWS Lake Formation Autorizzazioni a livello di colonna per il ruolo AmazonSageMaker-ExecutionRole-Limited Access

Con le autorizzazioni di ruolo associate a ciascun profilo utente, possiamo vedere come Lake Formation applica le autorizzazioni appropriate a livello di riga e di colonna. È possibile aprire RStudio Workbench da Avvia l'app menu a discesa nell'elenco utenti creato e scegliere RStudio.

Nello screenshot seguente, lanciamo l'app come rstudiouser-limitedaccess user.

Fig7: avvio della sessione di RStudio per l'utente rstudiouser-limitedaccess dalla console Amazon SageMaker

Fig7: avvio della sessione di RStudio per l'utente rstudiouser-limitedaccess dalla console Amazon SageMaker

È possibile visualizzare la home page di RStudio Workbench e un elenco di sessioni, progetti e contenuti pubblicati.

Fig8: sessione di R Studio Workbench per l'utente rstudiouser-limitedaccess

Fig8: sessione di R Studio Workbench per l'utente rstudiouser-limitedaccess

Scegli un nome di sessione per avviare la sessione in SageMaker. Installa Paws (consulta la guida in precedenza in questo post) in modo da poter accedere ai servizi AWS appropriati. Ora puoi eseguire una query per estrarre tutti i campi dal set di dati tramite Amazzone Atena, utilizzando il comando “SELECT * FROM "databasename.tablename"e archiviare l'output della query in un file Servizio di archiviazione semplice Amazon (Amazon S3) secchio.

Fig9: Esecuzione di Athena Query nella sessione di R Studio

Fig9: Esecuzione di Athena Query nella sessione di R Studio

Lo screenshot seguente mostra i file di output nel bucket S3.

Fig10: l'esecuzione di Athena Query risulta in Amazon S3 Bucket

Fig10: l'esecuzione di Athena Query risulta in Amazon S3 Bucket

Lo screenshot seguente mostra i dati in questi file di output utilizzando Amazon S3 Seleziona.

Fig11: Revisione dei dati di output utilizzando Amazon S3 Select

Fig11: Revisione dei dati di output utilizzando Amazon S3 Select

Solo dati USA e colonne continente, data, total_cases, total_deaths, new_cases, new_deathse iso_code sono mostrati nel risultato per il rstudiouser-limitedaccess utente.

Ripetiamo gli stessi passaggi per il rstudiouser-fullaccess utente.

Fig12: avvio della sessione RStudio per l'utente rstudiouser-fullaccess dalla console Amazon SageMaker

Fig12: avvio della sessione RStudio per l'utente rstudiouser-fullaccess dalla console Amazon SageMaker

È possibile visualizzare la home page di RStudio Workbench e un elenco di sessioni, progetti e contenuti pubblicati.

Fig13: Sessione di R Studio Workbench per l'utente rstudiouser-fullaccess

Fig13: Sessione di R Studio Workbench per l'utente rstudiouser-fullaccess

Eseguiamo la stessa query “SELECT * FROM "databasename.tablename" usando Atena.

Fig14: Esecuzione di Athena Query nella sessione di R Studio

Fig14: Esecuzione di Athena Query nella sessione di R Studio

Lo screenshot seguente mostra i file di output nel bucket S3.

Fig15: l'esecuzione di Athena Query risulta in Amazon S3 Bucket

Fig15: l'esecuzione di Athena Query risulta in Amazon S3 Bucket

Lo screenshot seguente mostra i dati in questi file di output utilizzando Amazon S3 Seleziona.

Fig16: Revisione dei dati di output utilizzando Amazon S3 Select

Fig16: Revisione dei dati di output utilizzando Amazon S3 Select

Come mostrato in questo esempio, il rstudiouser-fullaccess l'utente ha accesso a tutte le colonne e righe nel set di dati.

Self-hosted su Amazon EC2

Se vuoi iniziare a sperimentare con la versione open source di RStudio su AWS, puoi installare Rstudio su un'istanza EC2. Questo modello CloudFormation fornito in questo post effettua il provisioning dell'istanza EC2 e installa RStudio utilizzando lo script dei dati dell'utente. Puoi eseguire il modello più volte per eseguire il provisioning di più istanze RStudio secondo necessità e utilizzarlo in qualsiasi regione AWS. Dopo aver distribuito il modello CloudFormation, ti fornisce un URL per accedere a RStudio da un browser web. Amazon EC2 ti consente di aumentare o diminuire per gestire le modifiche alle dimensioni dei dati e la capacità di calcolo necessaria per eseguire le tue analisi.

Crea una coppia chiave-valore per un accesso sicuro

AWS utilizza la crittografia a chiave pubblica per proteggere le informazioni di accesso per l'istanza EC2. Specificare il nome della coppia di chiavi in KeyPair parametro quando avvii il modello CloudFormation. Quindi puoi utilizzare la stessa chiave per accedere all'istanza EC2 di cui è stato eseguito il provisioning in un secondo momento, se necessario.

Prima di eseguire il modello CloudFormation, assicurati di avere la coppia di chiavi Amazon EC2 nell'account AWS che intendi utilizzare. In caso contrario, fare riferimento a Crea una coppia di chiavi utilizzando Amazon EC2 per le istruzioni per crearne uno.

Avvia il modello CloudFormationAccedi alla console CloudFormation in us-east-1 Regione e scegli Avvia Stack.

Pulsante di avvio della pila

Devi inserire diversi parametri nel modello CloudFormation:

  • InitialUser e InitialPassword – Il nome utente e la password utilizzati per accedere alla sessione di RStudio. I valori predefiniti sono rstudio ed Rstudio@123, Rispettivamente.
  • Tipo di istanza – Il tipo di istanza EC2 su cui distribuire il server RStudio. Il modello attualmente accetta tutte le istanze nelle famiglie di istanze t2, m4, c4, r4, g2, p2 e g3 e può incorporare facilmente altre famiglie di istanze. Il valore predefinito è t2.micro.
  • Coppia di chiavi – La coppia di chiavi utilizzata per accedere all'istanza EC2.
  • VpcId e SubnetId - L' Amazon Virtual Private Cloud (Amazon VPC) e sottorete in cui avviare l'istanza.

Dopo aver inserito questi parametri, distribuisci il modello CloudFormation. Al termine, sono disponibili le seguenti risorse:

  • Un'istanza EC2 su cui è installato RStudio.
  • Un ruolo IAM con le autorizzazioni necessarie per connettersi ad altri servizi AWS.
  • Un gruppo di sicurezza con regole per aprire la porta 8787 per il server RStudio.

Accedi a RStudio

Ora sei pronto per usare RStudio! Vai al Uscite scheda per lo stack di CloudFormation e copia il valore dell'URL di RStudio (è nel formato http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/). Inserisci quell'URL in un browser web. Verrà aperta la sessione di RStudio, a cui puoi accedere utilizzando lo stesso nome utente e password forniti durante l'esecuzione del modello CloudFormation.

Accedi ai servizi AWS da RStudio

Dopo aver effettuato l'accesso alla sessione di RStudio, è necessario installare il pacchetto R per AWS (Paws). Ciò ti consente di connetterti a molti servizi AWS, inclusi i servizi e le risorse nel tuo data lake. Per installare Paws, inserisci ed esegui il seguente codice R:

install.packages("paws")

Per utilizzare un servizio AWS, crea un client e accedi alle operazioni del servizio da quel client. Quando accedi alle API AWS, devi fornire le tue credenziali e la regione. Paws cerca le credenziali e la regione utilizzando la catena di autenticazione AWS:

  • Chiave di accesso, chiave segreta, token di sessione, profilo o regione forniti in modo esplicito
  • Variabili d'ambiente R
  • Variabili di ambiente del sistema operativo
  • Credenziali condivise e file di configurazione AWS in .aws/credentials ed .aws/config
  • Ruolo IAM contenitore
  • Ruolo IAM di istanza

Poiché sei in esecuzione su un'istanza EC2 con un ruolo IAM collegato, Paws utilizza automaticamente le credenziali del tuo ruolo IAM per autenticare le richieste API 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"

Per l'ambiente di produzione, consigliamo di utilizzare la soluzione scalabile Rstudio descritta in questo blog.

Conclusione

Hai imparato a distribuire il tuo ambiente RStudio in AWS. Abbiamo dimostrato i vantaggi dell'utilizzo di RStudio su Amazon SageMaker e come iniziare. Hai anche imparato come iniziare rapidamente a sperimentare con la versione open source di RStudio utilizzando un'installazione self-hosted utilizzando Amazon EC2. Abbiamo anche dimostrato come integrare RStudio nelle architetture di data lake e implementare il controllo degli accessi granulare su una tabella di data lake usando la funzionalità di sicurezza a livello di riga e di cella di Lake Formation.

Nel nostro prossimo post, dimostreremo come containerizzare gli script R ed eseguirli utilizzando AWS Lambda.


Circa gli autori

Implementa RStudio nel tuo ambiente AWS e accedi al tuo data Lake utilizzando le autorizzazioni di AWS Lake Formation PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Venkata Campana è un Senior Solutions Architect nel team di AWS Health and Human Services e ha sede a Sacramento, in California. In quel ruolo, aiuta i clienti del settore pubblico a raggiungere i loro obiettivi di missione con soluzioni ben progettate su AWS.

Implementa RStudio nel tuo ambiente AWS e accedi al tuo data Lake utilizzando le autorizzazioni di AWS Lake Formation PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.La dottoressa Dawn Heisey-Grove è il leader dell'analisi della salute pubblica per il team del governo statale e locale di Amazon Web Services. In questo ruolo, è responsabile di aiutare le agenzie sanitarie pubbliche statali e locali a pensare in modo creativo a come raggiungere le loro sfide di analisi e obiettivi a lungo termine. Ha trascorso la sua carriera a trovare nuovi modi per utilizzare i dati esistenti o nuovi per supportare la sorveglianza e la ricerca sulla salute pubblica.

Timestamp:

Di più da Apprendimento automatico di AWS