Implementieren Sie RStudio in Ihrer AWS-Umgebung und greifen Sie mit AWS Lake Formation-Berechtigungen PlatoBlockchain Data Intelligence auf Ihren Data Lake zu. Vertikale Suche. Ai.

Implementieren Sie RStudio in Ihrer AWS-Umgebung und greifen Sie mit AWS Lake Formation-Berechtigungen auf Ihren Data Lake zu

R ist eine beliebte analytische Programmiersprache, die von Data Scientists und Analysten verwendet wird, um Daten zu verarbeiten, statistische Analysen durchzuführen, Datenvisualisierungen zu erstellen und Modelle für maschinelles Lernen (ML) zu erstellen. RStudio, die integrierte Entwicklungsumgebung für R, bietet Open-Source-Tools und unternehmenstaugliche professionelle Software für Teams, um ihre Arbeit zu entwickeln und im gesamten Unternehmen zu teilen. Das Erstellen, Sichern, Skalieren und Verwalten von RStudio selbst ist jedoch mühsam und umständlich.

Die Implementierung der RStudio-Umgebung in AWS bietet Elastizität und Skalierbarkeit, die Sie bei der Bereitstellung vor Ort nicht haben, wodurch die Notwendigkeit entfällt, diese Infrastruktur zu verwalten. Sie können die gewünschte Rechenleistung und den Arbeitsspeicher basierend auf den Verarbeitungsanforderungen auswählen und auch ohne Vorabinvestition nach oben oder unten skalieren, um mit Analyse- und ML-Workloads unterschiedlicher Größe zu arbeiten. Auf diese Weise können Sie schnell mit neuen Datenquellen und Code experimentieren und neue Analyseprozesse und ML-Modelle im Rest der Organisation einführen. Sie können Ihre Data Lake-Ressourcen auch nahtlos integrieren, um sie Entwicklern und Data Scientists zur Verfügung zu stellen, und die Daten sichern, indem Sie Zugriffskontrollen auf Zeilen- und Spaltenebene verwenden AWS Lake-Formation.

Dieser Beitrag stellt zwei Möglichkeiten zum einfachen Bereitstellen und Ausführen von RStudio auf AWS vor, um auf Daten zuzugreifen, die in Data Lake gespeichert sind:

  • Vollständig verwaltet Amazon Sage Maker
  • Selbst gehostet auf Amazon Elastic Compute-Cloud (Amazon EC2)
    • Sie können die Open-Source-Version von RStudio mit einem von EC2 gehosteten Ansatz bereitstellen, den wir ebenfalls in diesem Beitrag beschreiben werden. Die selbst gehostete Option erfordert, dass der Administrator eine EC2-Instanz erstellt und RStudio manuell oder mithilfe einer AWS CloudFormation Bei dieser Option besteht auch weniger Flexibilität für die Implementierung von Benutzerzugriffskontrollen, da alle Benutzer bei dieser Art der Implementierung dieselbe Zugriffsebene haben.

RStudio auf Amazon SageMaker

Sie können RStudio Workbench mit einem einfachen Klick von SageMaker aus starten. Mit SageMaker müssen Kunden nicht den Betriebsaufwand für das Erstellen, Installieren, Sichern, Skalieren und Warten von RStudio tragen, sie müssen nicht für den kontinuierlich laufenden RStudio-Server bezahlen (wenn sie t3.medium verwenden) und sie zahlen nur für RSession-Computing, wenn sie es verwenden. RStudio-Benutzer haben die Flexibilität, Rechenleistung dynamisch zu skalieren, indem sie Instanzen on-the-fly wechseln. Zum Ausführen von RStudio auf SageMaker muss ein Administrator eine SageMaker-Domäne und zugehörige Benutzerprofile einrichten. Außerdem benötigen Sie eine entsprechende RStudio-Lizenz

Innerhalb von SageMaker können Sie Zugriff auf RStudio-Administrator- und RStudio-Benutzerebene mit unterschiedlichen Berechtigungen gewähren. Nur Benutzerprofile, denen eine dieser beiden Rollen zugewiesen wurde, können auf RStudio in SageMaker zugreifen. Weitere Informationen zu Administratoraufgaben zum Einrichten von RStudio auf SageMaker finden Sie unter Erste Schritte mit RStudio auf Amazon SageMaker. Dieser Beitrag zeigt auch den Prozess der Auswahl von EC2-Instances für jede Sitzung und wie der Administrator die EC2-Instance-Optionen für RStudio-Benutzer einschränken kann.

Abb. 1: Architekturdiagramm, das das Zusammenspiel verschiedener AWS-Services zeigt

Verwenden Sie den Sicherheitszugriff auf Zeilen- und Spaltenebene von Lake Formation

Zusätzlich dazu, dass Ihr Team RStudio-Sitzungen auf SageMaker starten kann, können Sie den Data Lake auch sichern, indem Sie Zugriffskontrollen auf Zeilen- und Spaltenebene von Lake Formation verwenden. Weitere Informationen finden Sie unter Effektive Data Lakes mit AWS Lake Formation, Teil 4: Implementieren von Sicherheit auf Zellen- und Zeilenebene.

Durch die Sicherheitskontrollen von Lake Formation können Sie sicherstellen, dass jede Person den richtigen Zugriff auf die Daten im Data Lake hat. Betrachten Sie die folgenden zwei Benutzerprofile in der SageMaker-Domäne, jedes mit einer anderen Ausführungsrolle:

Benutzerprofil Ausführungsrolle
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

Der folgende Screenshot zeigt die rstudiouser-limitedaccess Profildetails.

Abb. 2: Profildetails der Rolle „rstudiouser-limitedaccess“.

Abb. 2: Profildetails der Rolle „rstudiouser-limitedaccess“.

Der folgende Screenshot zeigt die rstudiouser-fullaccess Profildetails.

Abb. 3: Profildetails der Rolle „rstudiouser-fullaccess“.

Abb. 3: Profildetails der Rolle „rstudiouser-fullaccess“.

Der für diesen Beitrag verwendete Datensatz ist a Öffentlicher COVID-19-Datensatz. Der folgende Screenshot zeigt ein Beispiel der Daten:

Abb. 4: Öffentlicher COVID-19-Datensatz

Abb. 4: Öffentlicher COVID-19-Datensatz

Nachdem Sie das Benutzerprofil erstellt und der entsprechenden Rolle zugewiesen haben, können Sie auf Lake Formation zugreifen, um die Daten zu crawlen AWS-Kleber, erstellen Sie die Metadaten und die Tabelle und gewähren Sie Zugriff auf die Tabellendaten. Für die AmazonSageMaker-ExecutionRole-FullAccess Rolle gewähren Sie Zugriff auf alle Spalten in der Tabelle und für AmazonSageMaker-ExecutionRole-LimitedAccess, gewähren Sie den Zugriff über den Datenfilter USA_Filter. Wir verwenden diesen Filter, um Spaltenberechtigungen auf Zeilen- und Zellenebene bereitzustellen (siehe die Ressource Spalte im folgenden Screenshot).

Abb. 5: AWS Lake Formation-Berechtigungen für AmazonSageMaker-ExecutionRole – Full/Limited Access-Rollen

Abb. 5: AWS Lake Formation-Berechtigungen für AmazonSageMaker-ExecutionRole – Full/Limited Access-Rollen

Wie im folgenden Screenshot gezeigt, hat die zweite Rolle eingeschränkten Zugriff. Benutzer, die dieser Rolle zugeordnet sind, können nur auf die zugreifen continent, date, total_cases, total_deaths, new_cases, new_deaths und iso_codecolumns.

Abb. 6: AWS Lake Formation Berechtigungen auf Spaltenebene für die AmazonSageMaker-ExecutionRole-Limited Access-Rolle

Abb. 6: AWS Lake Formation Berechtigungen auf Spaltenebene für die AmazonSageMaker-ExecutionRole-Limited Access-Rolle

Da jedem Benutzerprofil Rollenberechtigungen zugeordnet sind, können wir sehen, wie Lake Formation die entsprechenden Berechtigungen auf Zeilen- und Spaltenebene erzwingt. Sie können die RStudio-Workbench über die öffnen App starten Drop-down-Menü in der erstellten Benutzerliste und wählen Sie aus RStudio.

Im folgenden Screenshot starten wir die App als rstudiouser-limitedaccess user.

Abb. 7: Starten der RStudio-Sitzung für den Benutzer „rstudiouser-limitedaccess“ von der Amazon SageMaker-Konsole

Abb. 7: Starten der RStudio-Sitzung für den Benutzer „rstudiouser-limitedaccess“ von der Amazon SageMaker-Konsole

Sie können die Startseite von RStudio Workbench und eine Liste mit Sitzungen, Projekten und veröffentlichten Inhalten anzeigen.

Abb. 8: R Studio Workbench-Sitzung für den Benutzer rstudiouser-limitedaccess

Abb. 8: R Studio Workbench-Sitzung für den Benutzer rstudiouser-limitedaccess

Wählen Sie einen Sitzungsnamen aus, um die Sitzung in SageMaker zu starten. Installieren Sie Paws (siehe Anleitung weiter oben in diesem Beitrag), damit Sie auf die entsprechenden AWS-Services zugreifen können. Jetzt können Sie eine Abfrage ausführen, um alle Felder aus dem Datensatz abzurufen Amazonas Athena, mit dem Befehl “SELECT * FROM "databasename.tablename", und speichern Sie die Abfrageausgabe in einer Amazon Simple Storage-Service (Amazon S3) Eimer.

Abb. 9: Ausführung der Athena-Abfrage in der R Studio-Sitzung

Abb. 9: Ausführung der Athena-Abfrage in der R Studio-Sitzung

Der folgende Screenshot zeigt die Ausgabedateien im S3-Bucket.

Abb. 10: Ergebnisse der Athena Query-Ausführung im Amazon S3-Bucket

Abb. 10: Ergebnisse der Athena Query-Ausführung im Amazon S3-Bucket

Der folgende Screenshot zeigt die Daten in diesen Ausgabedateien mit Amazon S3 auswählen.

Abb. 11: Überprüfung der Ausgabedaten mit Amazon S3 Select

Abb. 11: Überprüfung der Ausgabedaten mit Amazon S3 Select

Nur USA-Daten und Spalten Kontinent, Datum, total_cases, total_deaths, new_cases, new_deaths und iso_code werden im Ergebnis für die angezeigt rstudiouser-limitedaccess Benutzer.

Wiederholen wir die gleichen Schritte für die rstudiouser-fullaccess Benutzer.

Abb. 12: Starten der RStudio-Sitzung für den Benutzer „rstudiouser-fullaccess“ von der Amazon SageMaker-Konsole

Abb. 12: Starten der RStudio-Sitzung für den Benutzer „rstudiouser-fullaccess“ von der Amazon SageMaker-Konsole

Sie können die Startseite von RStudio Workbench und eine Liste mit Sitzungen, Projekten und veröffentlichten Inhalten anzeigen.

Abb. 13: R Studio Workbench-Sitzung für den Benutzer rstudiouser-fullaccess

Abb. 13: R Studio Workbench-Sitzung für den Benutzer rstudiouser-fullaccess

Lassen Sie uns dieselbe Abfrage ausführen “SELECT * FROM "databasename.tablename" mit Athene.

Abb. 14: Ausführung der Athena-Abfrage in der R Studio-Sitzung

Abb. 14: Ausführung der Athena-Abfrage in der R Studio-Sitzung

Der folgende Screenshot zeigt die Ausgabedateien im S3-Bucket.

Abb. 15: Ergebnisse der Athena Query-Ausführung im Amazon S3-Bucket

Abb. 15: Ergebnisse der Athena Query-Ausführung im Amazon S3-Bucket

Der folgende Screenshot zeigt die Daten in diesen Ausgabedateien mit Amazon S3 auswählen.

Abb. 16: Überprüfung der Ausgabedaten mit Amazon S3 Select

Abb. 16: Überprüfung der Ausgabedaten mit Amazon S3 Select

Wie in diesem Beispiel gezeigt, die rstudiouser-fullaccess Der Benutzer hat Zugriff auf alle Spalten und Zeilen im Dataset.

Selbst gehostet auf Amazon EC2

Wenn Sie mit der Open-Source-Version von RStudio auf AWS experimentieren möchten, können Sie Rstudio auf einer EC2-Instance installieren. Diese in diesem Beitrag bereitgestellte CloudFormation-Vorlage stellt die EC2-Instance bereit und installiert RStudio mithilfe des Benutzerdatenskripts. Sie können die Vorlage mehrmals ausführen, um bei Bedarf mehrere RStudio-Instances bereitzustellen, und Sie können sie in jeder AWS-Region verwenden. Nachdem Sie die CloudFormation-Vorlage bereitgestellt haben, stellt sie Ihnen eine URL für den Zugriff auf RStudio über einen Webbrowser bereit. Mit Amazon EC2 können Sie nach oben oder unten skalieren, um Änderungen der Datengröße und der erforderlichen Rechenkapazität zum Ausführen Ihrer Analysen zu bewältigen.

Erstellen Sie ein Schlüssel-Wert-Paar für sicheren Zugriff

AWS verwendet Public-Key-Kryptographie, um die Anmeldeinformationen für Ihre EC2-Instance zu sichern. Den Namen des Schlüsselpaares geben Sie in der an KeyPair -Parameter, wenn Sie die CloudFormation-Vorlage starten. Anschließend können Sie sich bei Bedarf später mit demselben Schlüssel bei der bereitgestellten EC2-Instance anmelden.

Stellen Sie vor dem Ausführen der CloudFormation-Vorlage sicher, dass Sie das Amazon EC2-Schlüsselpaar in dem AWS-Konto haben, das Sie verwenden möchten. Wenn nicht, dann beziehen Sie sich auf Erstellen Sie ein Schlüsselpaar mit Amazon EC2 für Anweisungen zum Erstellen eines solchen.

Starten Sie die CloudFormation-Vorlage. Melden Sie sich in der CloudFormation-Konsole an us-east-1 Region und wählen Sie Stack starten.

Stack-Schaltfläche starten

Sie müssen mehrere Parameter in die CloudFormation-Vorlage eingeben:

  • InitialUser und InitialPassword – Den Benutzernamen und das Kennwort, mit denen Sie sich bei der RStudio-Sitzung anmelden. Die Standardwerte sind rstudio und Rstudio@123, Bzw.
  • Instanztyp – Der EC2-Instance-Typ, auf dem der RStudio-Server bereitgestellt werden soll. Die Vorlage akzeptiert derzeit alle Instances in den Instance-Familien t2, m4, c4, r4, g2, p2 und g3 und kann problemlos andere Instance-Familien integrieren. Der Standardwert ist t2.micro.
  • Schlüsselpaar – Das Schlüsselpaar, mit dem Sie sich bei der EC2-Instance anmelden.
  • VpcId und SubnetId - Die Amazon Virtual Private Cloud (Amazon-VPC) und Subnetz, in dem die Instanz gestartet werden soll.

Nachdem Sie diese Parameter eingegeben haben, stellen Sie die CloudFormation-Vorlage bereit. Wenn es fertig ist, sind die folgenden Ressourcen verfügbar:

  • Eine EC2-Instance, auf der RStudio installiert ist.
  • Eine IAM-Rolle mit den erforderlichen Berechtigungen zum Herstellen einer Verbindung mit anderen AWS-Services.
  • Eine Sicherheitsgruppe mit Regeln zum Öffnen von Port 8787 für den RStudio-Server.

Melden Sie sich bei RStudio an

Jetzt können Sie RStudio verwenden! Gehen Sie zum Ausgänge Registerkarte für den CloudFormation-Stack und kopieren Sie den RStudio-URL-Wert (er hat das Format http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/). Geben Sie diese URL in einen Webbrowser ein. Dadurch wird Ihre RStudio-Sitzung geöffnet, bei der Sie sich mit demselben Benutzernamen und Kennwort anmelden können, die Sie beim Ausführen der CloudFormation-Vorlage angegeben haben.

Greifen Sie von RStudio aus auf AWS-Services zu

Nachdem Sie auf die RStudio-Sitzung zugegriffen haben, sollten Sie das R-Paket für AWS (Paws) installieren. Dadurch können Sie eine Verbindung zu vielen AWS-Services herstellen, einschließlich der Services und Ressourcen in Ihrem Data Lake. Um Paws zu installieren, geben Sie den folgenden R-Code ein und führen Sie ihn aus:

install.packages("paws")

Um einen AWS-Service zu verwenden, erstellen Sie einen Client und greifen Sie von diesem Client aus auf die Vorgänge des Service zu. Beim Zugriff auf AWS-APIs müssen Sie Ihre Anmeldeinformationen und Ihre Region angeben. Paws sucht mithilfe der AWS-Authentifizierungskette nach den Anmeldeinformationen und der Region:

  • Explizit bereitgestellter Zugriffsschlüssel, geheimer Schlüssel, Sitzungstoken, Profil oder Region
  • R-Umgebungsvariablen
  • Umgebungsvariablen des Betriebssystems
  • Von AWS freigegebene Anmeldeinformationen und Konfigurationsdateien in .aws/credentials und .aws/config
  • Container-IAM-Rolle
  • Instanz-IAM-Rolle

Da Sie auf einer EC2-Instance mit einer angehängten IAM-Rolle laufen, verwendet Paws automatisch Ihre IAM-Rollenanmeldeinformationen, um AWS-API-Anforderungen zu authentifizieren.

# 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 Produktionsumgebungen empfehlen wir die Verwendung der skalierbaren Rstudio-Lösung, die in beschrieben wird dieses Blog.

Zusammenfassung

Sie haben gelernt, wie Sie Ihre RStudio-Umgebung in AWS bereitstellen. Wir haben die Vorteile der Verwendung von RStudio auf Amazon SageMaker demonstriert und Ihnen gezeigt, wie Sie beginnen können. Sie haben auch gelernt, wie Sie schnell mit dem Experimentieren mit der Open-Source-Version von RStudio beginnen können, indem Sie eine selbst gehostete Installation mit Amazon EC2 verwenden. Wir haben auch gezeigt, wie Sie RStudio in Ihre Data-Lake-Architekturen integrieren und mithilfe der Sicherheitsfunktion auf Zeilen- und Zellenebene von Lake Formation eine differenzierte Zugriffskontrolle für eine Data-Lake-Tabelle implementieren.

In unserem nächsten Beitrag werden wir demonstrieren, wie R-Skripte containerisiert und mit ausgeführt werden AWS Lambda.


Über die Autoren

Implementieren Sie RStudio in Ihrer AWS-Umgebung und greifen Sie mit AWS Lake Formation-Berechtigungen PlatoBlockchain Data Intelligence auf Ihren Data Lake zu. Vertikale Suche. Ai.Venkata Kampana ist Senior Solutions Architect im AWS Health and Human Services Team und lebt in Sacramento, CA. In dieser Funktion hilft er Kunden des öffentlichen Sektors, ihre Missionsziele mit gut durchdachten Lösungen auf AWS zu erreichen.

Implementieren Sie RStudio in Ihrer AWS-Umgebung und greifen Sie mit AWS Lake Formation-Berechtigungen PlatoBlockchain Data Intelligence auf Ihren Data Lake zu. Vertikale Suche. Ai.Dr. Dawn Heisey-Grove ist der Public-Health-Analytics-Leiter für das staatliche und lokale Regierungsteam von Amazon Web Services. In dieser Funktion ist sie dafür verantwortlich, staatliche und lokale Gesundheitsbehörden dabei zu unterstützen, kreativ darüber nachzudenken, wie sie ihre analytischen Herausforderungen und langfristigen Ziele erreichen können. Sie hat ihre Karriere damit verbracht, neue Wege zu finden, um vorhandene oder neue Daten zu nutzen, um die Überwachung und Forschung im Bereich der öffentlichen Gesundheit zu unterstützen.

Zeitstempel:

Mehr von AWS Maschinelles Lernen