Implementera RStudio på din AWS-miljö och få tillgång till din datasjö med AWS Lake Formation-behörigheter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Implementera RStudio i din AWS-miljö och få tillgång till din datasjö med AWS Lake Formation-behörigheter

R är ett populärt analytiskt programmeringsspråk som används av datavetare och analytiker för att utföra databearbetning, utföra statistiska analyser, skapa datavisualiseringar och bygga modeller för maskininlärning (ML). RStudio, den integrerade utvecklingsmiljön för R, tillhandahåller verktyg med öppen källkod och professionell programvara för företag att utveckla och dela sitt arbete i hela organisationen Att bygga, säkra, skala och underhålla RStudio själv är dock tråkigt och krångligt.

Implementering av RStudio-miljön i AWS ger elasticitet och skalbarhet som du inte har när du distribuerar på plats, vilket eliminerar behovet av att hantera den infrastrukturen. Du kan välja önskad dator och minne baserat på bearbetningskrav och kan även skala upp eller ned för att arbeta med analytiska och ML-arbetsbelastningar av olika storlekar utan en förskottsinvestering. Detta låter dig snabbt experimentera med nya datakällor och kod, och rulla ut nya analysprocesser och ML-modeller till resten av organisationen. Du kan också sömlöst integrera dina Data Lake-resurser för att göra dem tillgängliga för utvecklare och dataforskare och säkra data genom att använda åtkomstkontroller på rad- och kolumnnivå från AWS Lake Formation.

Det här inlägget presenterar två sätt att enkelt distribuera och köra RStudio på AWS för att komma åt data lagrad i datasjö:

  • Fullt skött på Amazon SageMaker
  • Egen värd på Amazon Elastic Compute Cloud (Amazon EC2)
    • Du kan välja att distribuera öppen källkodsversionen av RStudio med en EC2-värd metod som vi också kommer att beskriva i det här inlägget. Alternativet självvärd kräver att administratören skapar en EC2-instans och installerar RStudio manuellt eller med en AWS molnformation Det finns också mindre flexibilitet för att implementera användaråtkomstkontroller i detta alternativ eftersom alla användare har samma åtkomstnivå i denna typ av implementering.

RStudio på Amazon SageMaker

Du kan starta RStudio Workbench med ett enkelt klick från SageMaker. Med SageMaker behöver kunderna inte bära de operativa omkostnaderna för att bygga, installera, säkra, skala och underhålla RStudio, de behöver inte betala för den kontinuerligt körande RStudio Server (om de använder t3.medium) och de betalar bara för RSession compute när de använder det. RStudio-användare kommer att ha flexibilitet att dynamiskt skala beräkningar genom att byta instanser i farten. Att köra RStudio på SageMaker kräver att en administratör upprättar en SageMaker-domän och tillhörande användarprofiler. Du behöver också en lämplig RStudio-licens

Inom SageMaker kan du ge åtkomst på RStudio-administratörs- och RStudio-användarnivå, med olika behörigheter. Endast användarprofiler som beviljats ​​en av dessa två roller kan komma åt RStudio i SageMaker. För mer information om administratörsuppgifter för att ställa in RStudio på SageMaker, se Kom igång med RStudio på Amazon SageMaker. Det inlägget visar också processen för att välja EC2-instanser för varje session, och hur administratören kan begränsa EC2-instansalternativ för RStudio-användare.

Fig1: Arkitekturdiagram som visar interaktionen mellan olika AWS-tjänster

Använd Lake Formation säkerhetsåtkomst på radnivå och kolumnnivå

Förutom att tillåta ditt team att starta RStudio-sessioner på SageMaker, kan du också säkra datasjön genom att använda åtkomstkontroller på rad- och kolumnnivå från Lake Formation. För mer information, se Effektiva datasjöar med AWS Lake Formation, del 4: Implementering av säkerhet på cellnivå och radnivå.

Genom Lake Formations säkerhetskontroller kan du se till att varje person har rätt tillgång till data i datasjön. Tänk på följande två användarprofiler i SageMaker-domänen, var och en med olika exekveringsroller:

Användarprofil Utförande roll
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

Följande skärmdump visar rstudiouser-limitedaccess profildetaljer.

Fig 2: Profildetaljer för rollen rstudiouser-limited access

Fig 2: Profildetaljer för rollen rstudiouser-limited access

Följande skärmdump visar rstudiouser-fullaccess profildetaljer.

Fig 3: Profildetaljer för rollen rstudiouser-fullaccess

Fig 3: Profildetaljer för rollen rstudiouser-fullaccess

Datauppsättningen som används för detta inlägg är en Offentlig datauppsättning för covid-19. Följande skärmdump visar ett exempel på data:

Fig 4: COVID-19 Offentlig datauppsättning

Fig 4: COVID-19 Offentlig datauppsättning

När du har skapat användarprofilen och tilldelat den till lämplig roll kan du komma åt Lake Formation för att genomsöka data med AWS-lim, skapa metadata och tabell och ge åtkomst till tabelldata. För AmazonSageMaker-ExecutionRole-FullAccess roll ger du åtkomst till alla kolumner i tabellen och för AmazonSageMaker-ExecutionRole-LimitedAccess, ger du åtkomst med hjälp av datafiltret USA_Filter. Vi använder det här filtret för att tillhandahålla kolumnbehörigheter på radnivå och cellnivå (se Resurs kolumn i följande skärmdump).

Fig5: AWS Lake Formation Behörigheter för AmazonSageMaker-ExecutionRole -Full/Begränsad åtkomst roller

Fig5: AWS Lake Formation Behörigheter för AmazonSageMaker-ExecutionRole -Full/Begränsad åtkomst roller

Som visas i följande skärmdump har den andra rollen begränsad åtkomst. Användare som är associerade med den här rollen kan bara komma åt continent, date, total_cases, total_deaths, new_cases, new_deathsoch iso_codecolumns.

Fig6: AWS Lake Formation Kolumnnivå behörigheter för AmazonSageMaker-ExecutionRole-Limited Access roll

Fig6: AWS Lake Formation Kolumnnivå behörigheter för AmazonSageMaker-ExecutionRole-Limited Access roll

Med rollbehörigheter kopplade till varje användarprofil kan vi se hur Lake Formation upprätthåller lämpliga radnivå- och kolumnnivåbehörigheter. Du kan öppna RStudio Workbench från Starta app rullgardinsmenyn i den skapade användarlistan och välj RStudio.

I följande skärmdump startar vi appen som rstudiouser-limitedaccess user.

Fig7: Starta RStudio-session för rstudiouser-begränsad åtkomstanvändare från Amazon SageMaker Console

Fig7: Starta RStudio-session för rstudiouser-begränsad åtkomstanvändare från Amazon SageMaker Console

Du kan se RStudio Workbenchs hemsida och en lista över sessioner, projekt och publicerat innehåll.

Fig8: R Studio Workbench-session för rstudiouser-användare med begränsad åtkomst

Fig8: R Studio Workbench-session för rstudiouser-användare med begränsad åtkomst

Välj ett sessionsnamn för att starta sessionen i SageMaker. Installera Paws (se vägledning tidigare i detta inlägg) så att du kan komma åt lämpliga AWS-tjänster. Nu kan du köra en fråga för att hämta alla fält från datamängden via Amazonas Athena, med hjälp av kommandot “SELECT * FROM "databasename.tablename", och lagra frågeutgången i en Amazon enkel lagringstjänst (Amazon S3) hink.

Fig9: Körning av Athena Query i R Studio-session

Fig9: Körning av Athena Query i R Studio-session

Följande skärmdump visar utdatafilerna i S3-hinken.

Fig10: Körning av Athena Query resulterar i Amazon S3 Bucket

Fig10: Körning av Athena Query resulterar i Amazon S3 Bucket

Följande skärmdump visar data i dessa utdatafiler med hjälp av Amazon S3 Välj.

Fig11: Granskning av utdata med Amazon S3 Select

Fig11: Granskning av utdata med Amazon S3 Select

Endast USA-data och kolumner kontinent, datum, total_cases, total_deaths, new_cases, new_deathsoch iso_code visas i resultatet för rstudiouser-limitedaccess användaren.

Låt oss upprepa samma steg för rstudiouser-fullaccess användaren.

Fig12: Starta RStudio-session för rstudiouser-fullaccess-användare från Amazon SageMaker Console

Fig12: Starta RStudio-session för rstudiouser-fullaccess-användare från Amazon SageMaker Console

Du kan se RStudio Workbenchs hemsida och en lista över sessioner, projekt och publicerat innehåll.

Fig13: R Studio Workbench-session för rstudiouser-användare med full tillgång

Fig13: R Studio Workbench-session för rstudiouser-användare med full tillgång

Låt oss köra samma fråga “SELECT * FROM "databasename.tablename" använder Athena.

Fig14: Körning av Athena Query i R Studio-session

Fig14: Körning av Athena Query i R Studio-session

Följande skärmdump visar utdatafilerna i S3-hinken.

Fig15: Körning av Athena Query resulterar i Amazon S3 Bucket

Fig15: Körning av Athena Query resulterar i Amazon S3 Bucket

Följande skärmdump visar data i dessa utdatafiler med hjälp av Amazon S3 Välj.

Fig16: Granskning av utdata med Amazon S3 Select

Fig16: Granskning av utdata med Amazon S3 Select

Som visas i det här exemplet är rstudiouser-fullaccess användaren har tillgång till alla kolumner och rader i datamängden.

Självvärd på Amazon EC2

Om du vill börja experimentera med RStudios open source-version på AWS kan du installera Rstudio på en EC2-instans. Denna CloudFormation-mall som tillhandahålls i det här inlägget tillhandahåller EC2-instansen och installerar RStudio med användardataskriptet. Du kan köra mallen flera gånger för att tillhandahålla flera RStudio-instanser efter behov, och du kan använda den i vilken AWS-region som helst. När du har distribuerat CloudFormation-mallen ger den dig en URL för åtkomst till RStudio från en webbläsare. Amazon EC2 gör att du kan skala upp eller ned för att hantera förändringar i datastorlek och den nödvändiga beräkningskapaciteten för att köra din analys.

Skapa ett nyckel-värdepar för säker åtkomst

AWS använder kryptografi med publik nyckel för att säkra inloggningsinformationen för din EC2-instans. Du anger namnet på nyckelparet i KeyPair parameter när du startar CloudFormation-mallen. Sedan kan du använda samma nyckel för att logga in på den tillhandahållna EC2-instansen senare om det behövs.

Innan du kör CloudFormation-mallen, se till att du har Amazon EC2-nyckelparet i AWS-kontot som du planerar att använda. Om inte, hänvisa till Skapa ett nyckelpar med Amazon EC2 för instruktioner för att skapa en.

Starta CloudFormation-mallenLogga in på CloudFormation-konsolen i us-east-1 Region och välj Starta stack.

Knappen Starta stack

Du måste ange flera parametrar i CloudFormation-mallen:

  • InitialUser och InitialPassword – Användarnamnet och lösenordet som du använder för att logga in på RStudio-sessionen. Standardvärdena är rstudio och Rstudio@123, Respektive.
  • InstanceType – EC2-instanstypen som RStudio-servern ska distribueras på. Mallen accepterar för närvarande alla instanser i t2-, m4-, c4-, r4-, g2-, p2- och g3-instansfamiljerna och kan enkelt införliva andra instansfamiljer. Standardvärdet är t2.micro.
  • Nyckelpar – Nyckelparet du använder för att logga in på EC2-instansen.
  • VpcId och SubnetId - Den Amazon Virtual Private Cloud (Amazon VPC) och subnät där instansen ska startas.

När du har angett dessa parametrar, distribuera CloudFormation-mallen. När det är klart finns följande resurser tillgängliga:

  • En EC2-instans med RStudio installerat på den.
  • En IAM-roll med nödvändiga behörigheter för att ansluta till andra AWS-tjänster.
  • En säkerhetsgrupp med regler för att öppna port 8787 för RStudio Server.

Logga in på RStudio

Nu är du redo att använda RStudio! Gå till Utgångarna fliken för CloudFormation-stacken och kopiera RStudio URL-värde (det är i formatet http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/). Ange webbadressen i en webbläsare. Detta öppnar din RStudio-session, som du kan logga in på med samma användarnamn och lösenord som du angav när du körde CloudFormation-mallen.

Få tillgång till AWS-tjänster från RStudio

När du har kommit åt RStudio-sessionen bör du installera R-paketet för AWS (Paws). Detta låter dig ansluta till många AWS-tjänster, inklusive tjänsterna och resurserna i din datasjö. För att installera Paws, skriv in och kör följande R-kod:

install.packages("paws")

För att använda en AWS-tjänst, skapa en klient och få tillgång till tjänstens verksamhet från den klienten. När du kommer åt AWS API:er måste du ange dina referenser och region. Paws söker efter autentiseringsuppgifterna och regionen med hjälp av AWS-autentiseringskedjan:

  • Explicit tillhandahållen åtkomstnyckel, hemlig nyckel, sessionstoken, profil eller region
  • R miljövariabler
  • Operativsystems miljövariabler
  • AWS delade inloggningsuppgifter och konfigurationsfiler i .aws/credentials och .aws/config
  • Container IAM-roll
  • Exempel IAM roll

Eftersom du kör på en EC2-instans med en bifogad IAM-roll, använder Paws automatiskt dina IAM-rolluppgifter för att autentisera AWS API-förfrågningar.

# 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"

För produktionsmiljö rekommenderar vi att du använder den skalbara Rstudio-lösningen som beskrivs i denna blogg.

Slutsats

Du lärde dig hur du distribuerar din RStudio-miljö i AWS. Vi visade fördelarna med att använda RStudio på Amazon SageMaker och hur du kan komma igång. Du har också lärt dig hur du snabbt börjar experimentera med öppen källkodsversionen av RStudio med hjälp av en självvärd installation med Amazon EC2. Vi visade också hur du integrerar RStudio i dina datasjöarkitekturer och implementerar finkornig åtkomstkontroll på en datasjötabell med hjälp av säkerhetsfunktionen på radnivå och cellnivå i Lake Formation.

I vårt nästa inlägg kommer vi att visa hur man containeriserar R-skript och kör dem med hjälp av AWS Lambda.


Om författarna

Implementera RStudio på din AWS-miljö och få tillgång till din datasjö med AWS Lake Formation-behörigheter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Venkata Kampana är Senior Solutions Architect i AWS Health and Human Services-teamet och är baserad i Sacramento, CA. I den rollen hjälper han kunder i den offentliga sektorn att uppnå sina uppdragsmål med väldesignade lösningar på AWS.

Implementera RStudio på din AWS-miljö och få tillgång till din datasjö med AWS Lake Formation-behörigheter PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Dr Dawn Heisey-Grove är ledare för folkhälsoanalys för Amazon Web Services statliga och lokala regeringsteam. I den här rollen är hon ansvarig för att hjälpa statliga och lokala folkhälsomyndigheter att tänka kreativt om hur de kan uppnå sina analytiska utmaningar och långsiktiga mål. Hon har ägnat sin karriär åt att hitta nya sätt att använda befintliga eller nya data för att stödja folkhälsoövervakning och forskning.

Tidsstämpel:

Mer från AWS maskininlärning