AWS 環境に RStudio を実装し、AWS Lake Formation のアクセス許可 PlatoBlockchain Data Intelligence を使用してデータ レイクにアクセスします。 垂直検索。 あい。

AWS 環境に RStudio を実装し、AWS Lake Formation 権限を使用してデータ レイクにアクセスする

R は、データ サイエンティストやアナリストがデータ処理の実行、統計分析の実施、データの視覚化の作成、機械学習 (ML) モデルの構築に使用する一般的な分析プログラミング言語です。 R の統合開発環境である RStudio は、チームが組織全体で作業を開発および共有するためのオープンソース ツールとエンタープライズ対応のプロフェッショナル ソフトウェアを提供します。ただし、RStudio を自分で構築、保護、スケーリング、および維持するのは面倒で面倒です。

RStudio 環境を AWS に実装すると、オンプレミスに展開する場合にはない弾力性とスケーラビリティが提供され、そのインフラストラクチャを管理する必要がなくなります。 処理要件に基づいて必要なコンピューティングとメモリを選択できます。また、スケールアップまたはスケールダウンして、さまざまなサイズの分析および ML ワークロードを処理することもできます。事前投資は必要ありません。 これにより、新しいデータ ソースとコードをすばやく試し、新しい分析プロセスと ML モデルを組織全体に展開できます。 また、データ レイク リソースをシームレスに統合して、開発者やデータ サイエンティストが利用できるようにし、 AWSレイクフォーメーション.

この投稿では、AWS で RStudio を簡単にデプロイして実行し、データ レイクに保存されているデータにアクセスする XNUMX つの方法を紹介します。

  • フルマネージド アマゾンセージメーカー
  • 自己ホスト アマゾン エラスティック コンピューティング クラウド (Amazon EC2)
    • この投稿でも説明する EC2 でホストされたアプローチを使用して、RStudio のオープンソース バージョンをデプロイすることを選択できます。 自己ホスト型オプションでは、管理者が EC2 インスタンスを作成し、RStudio を手動または AWS CloudFormation また、このタイプの実装ではすべてのユーザーが同じアクセス レベルを持つため、このオプションでユーザー アクセス制御を実装する柔軟性も低くなります。

AmazonSageMakerのRStudio

SageMaker からクリックするだけで RStudio Workbench を起動できます。 SageMaker を使用すると、お客様は RStudio の構築、インストール、保護、スケーリング、および保守の運用上のオーバーヘッドを負担する必要がなく、継続的に実行されている RStudio サーバー (t3.medium を使用している場合) に対して支払う必要がなく、支払うだけです。 RSession は、使用時に計算します。 RStudio ユーザーは、オンザフライでインスタンスを切り替えることにより、コンピューティングを動的にスケーリングする柔軟性を得ることができます。 SageMaker で RStudio を実行するには、管理者が SageMaker ドメインと関連するユーザー プロファイルを確立する必要があります。 適切な RStudio ライセンスも必要です

SageMaker 内では、RStudio 管理者レベルと RStudio ユーザーレベルでアクセス権を異なる権限で付与できます。 これら XNUMX つのロールのいずれかを付与されたユーザープロファイルのみが、SageMaker の RStudio にアクセスできます。 SageMaker で RStudio をセットアップするための管理者タスクの詳細については、次を参照してください。 AmazonSageMakerでRStudioを使い始めましょう. この投稿では、セッションごとに EC2 インスタンスを選択するプロセスと、管理者が RStudio ユーザーの EC2 インスタンス オプションを制限する方法も示しています。

図 1: さまざまな AWS サービスの相互作用を示すアーキテクチャ図

Lake Formation の行レベルおよび列レベルのセキュリティ アクセスを使用する

チームが SageMaker で RStudio セッションを起動できるようにするだけでなく、Lake Formation の行レベルおよび列レベルのアクセス制御を使用してデータ レイクを保護することもできます。 詳細については、次を参照してください。 AWS Lake Formation を使用した効果的なデータレイク、パート 4: セルレベルおよび行レベルのセキュリティの実装.

Lake Formation のセキュリティ制御により、各ユーザーがデータ レイク内のデータに適切にアクセスできるようにすることができます。 SageMaker ドメイン内の次の XNUMX つのユーザー プロファイルについて考えてみましょう。それぞれに異なる実行ロールがあります。

ユーザープロファイル 実行の役割
rstudiouser-fullaccess AmazonSageMaker-ExecutionRole-FullAccess
rstudiouser-limitedaccess AmazonSageMaker-ExecutionRole-LimitedAccess

次のスクリーンショットは、 rstudiouser-limitedaccess プロフィール詳細。

図 2: rstudiouser-limitedaccess ロールのプロファイルの詳細

図 2: rstudiouser-limitedaccess ロールのプロファイルの詳細

次のスクリーンショットは、 rstudiouser-fullaccess プロフィール詳細。

図 3: rstudiouser-fullaccess ロールのプロファイルの詳細

図 3: rstudiouser-fullaccess ロールのプロファイルの詳細

この記事で使用するデータセットは COVID-19 公開データセット. 次のスクリーンショットは、データの例を示しています。

図 4: COVID-19 公開データセット

図 4: COVID-19 公開データセット

ユーザー プロファイルを作成して適切なロールに割り当てたら、Lake Formation にアクセスしてデータをクロールできます。 AWSグルー、メタデータとテーブルを作成し、テーブル データへのアクセスを許可します。 のために AmazonSageMaker-ExecutionRole-FullAccess 役割、テーブル内のすべての列へのアクセスを許可し、 AmazonSageMaker-ExecutionRole-LimitedAccess、データフィルターを使用してアクセスを許可します USA_Filter. このフィルターを使用して、行レベルおよびセルレベルの列のアクセス許可を提供します ( リソース 次のスクリーンショットの列)。

図 5: AmazonSageMaker-ExecutionRole の AWS Lake Formation アクセス許可 - フル/制限付きアクセス ロール

図 5: AmazonSageMaker-ExecutionRole の AWS Lake Formation アクセス許可 - フル/制限付きアクセス ロール

次のスクリーンショットに示すように、XNUMX 番目のロールはアクセスが制限されています。 このロールに関連付けられたユーザーは、 continent, date, total_cases, total_deaths, new_cases, new_deaths, iso_codecolumns.

図 6: AmazonSageMaker-ExecutionRole-Limited Access ロールの AWS Lake Formation 列レベルのアクセス許可

図 6: AmazonSageMaker-ExecutionRole-Limited Access ロールの AWS Lake Formation 列レベルのアクセス許可

各ユーザー プロファイルに付与された役割のアクセス許可により、Lake Formation が適切な行レベルおよび列レベルのアクセス許可をどのように適用するかを確認できます。 RStudio ワークベンチは、 アプリを起動 作成したユーザー リストのドロップダウン メニューから、 Rstudio.

次のスクリーンショットでは、アプリを rstudiouser-limitedaccess user.

図 7: Amazon SageMaker コンソールから rstudiouser-limitedaccess ユーザーの RStudio セッションを起動する

図 7: Amazon SageMaker コンソールから rstudiouser-limitedaccess ユーザーの RStudio セッションを起動する

RStudio Workbench のホームページと、セッション、プロジェクト、および公開されたコンテンツのリストを表示できます。

図 8: rstudiouser-limitedaccess ユーザーの R Studio Workbench セッション

図 8: rstudiouser-limitedaccess ユーザーの R Studio Workbench セッション

セッション名を選択して、SageMaker でセッションを開始します。 適切な AWS サービスにアクセスできるように、Paws をインストールします (この記事の前半のガイダンスを参照)。 クエリを実行して、データセットからすべてのフィールドを取得できるようになりました。 アマゾンアテナ、コマンドを使用 “SELECT * FROM "databasename.tablename"、およびクエリ出力を Amazon シンプル ストレージ サービス (Amazon S3)バケット。

図 9: R Studio セッションでの Athena クエリの実行

図 9: R Studio セッションでの Athena クエリの実行

次のスクリーンショットは、S3 バケット内の出力ファイルを示しています。

図 10: Amazon S3 バケットでの Athena クエリの実行結果

図 10: Amazon S3 バケットでの Athena クエリの実行結果

次のスクリーンショットは、以下を使用したこれらの出力ファイルのデータを示しています。 Amazon S3 セレクト.

図 11: Amazon S3 Select を使用して出力データを確認する

図 11: Amazon S3 Select を使用して出力データを確認する

米国のデータと列のみ、大陸、日付、 total_cases, total_deaths, new_cases, new_deaths, iso_code の結果に表示されます rstudiouser-limitedaccess ユーザー。

についても同じ手順を繰り返しましょう。 rstudiouser-fullaccess ユーザー。

図 12: Amazon SageMaker コンソールから rstudiouser-fullaccess ユーザーの RStudio セッションを起動する

図 12: Amazon SageMaker コンソールから rstudiouser-fullaccess ユーザーの RStudio セッションを起動する

RStudio Workbench のホームページと、セッション、プロジェクト、および公開されたコンテンツのリストを表示できます。

図 13: rstudiouser-fullaccess ユーザーの R Studio Workbench セッション

図 13: rstudiouser-fullaccess ユーザーの R Studio Workbench セッション

同じクエリを実行してみましょう “SELECT * FROM "databasename.tablename" アテナを使用。

図 14: R Studio セッションでの Athena クエリの実行

図 14: R Studio セッションでの Athena クエリの実行

次のスクリーンショットは、S3 バケット内の出力ファイルを示しています。

図 15: Amazon S3 バケットでの Athena クエリの実行結果

図 15: Amazon S3 バケットでの Athena クエリの実行結果

次のスクリーンショットは、以下を使用したこれらの出力ファイルのデータを示しています。 Amazon S3 セレクト.

図 16: Amazon S3 Select を使用して出力データを確認する

図 16: Amazon S3 Select を使用して出力データを確認する

この例に示すように、 rstudiouser-fullaccess ユーザーは、データセット内のすべての列と行にアクセスできます。

Amazon EC2 でセルフホスト

AWS で RStudio のオープンソース バージョンの実験を開始する場合は、Rstudio を EC2 インスタンスにインストールできます。 この投稿で提供されるこの CloudFormation テンプレートは、EC2 インスタンスをプロビジョニングし、ユーザー データ スクリプトを使用して RStudio をインストールします。 テンプレートを複数回実行して、必要に応じて複数の RStudio インスタンスをプロビジョニングし、任意の AWS リージョンで使用できます。 CloudFormation テンプレートをデプロイすると、Web ブラウザーから RStudio にアクセスするための URL が提供されます。 Amazon EC2 を使用すると、スケールアップまたはスケールダウンして、データ サイズの変更と、分析を実行するために必要なコンピューティング容量を処理できます。

安全なアクセスのためのキーと値のペアを作成する

AWS は公開鍵暗号を使用して、EC2 インスタンスのログイン情報を保護します。 キー ペアの名前を KeyPair CloudFormation テンプレートを起動するときのパラメーター。 その後、同じキーを使用して、後で必要に応じてプロビジョニングされた EC2 インスタンスにログインできます。

CloudFormation テンプレートを実行する前に、使用する予定の AWS アカウントに Amazon EC2 キー ペアがあることを確認してください。 そうでない場合は、参照してください AmazonEC2を使用してキーペアを作成します を作成する手順については、

CloudFormation テンプレートを起動します。CloudFormation コンソールにサインインします。 us-east-1 リージョンを選択し、Launch Stack を選択します。

スタックボタンを起動

CloudFormation テンプレートにいくつかのパラメーターを入力する必要があります。

  • InitialUser と InitialPassword – RStudio セッションへのログインに使用するユーザー名とパスワード。 デフォルト値は次のとおりです。 rstudio & Rstudio@123それぞれ。
  • インスタンスタイプ – RStudio サーバーをデプロイする EC2 インスタンスタイプ。 テンプレートは現在、t2、m4、c4、r4、g2、p2、および g3 インスタンス ファミリーのすべてのインスタンスを受け入れ、他のインスタンス ファミリーを簡単に組み込むことができます。 デフォルト値は t2.micro です。
  • キーペア – EC2 インスタンスへのログインに使用するキーペア。
  • VpcId と SubnetId - Amazon Virtual Private Cloud(Amazon VPC) インスタンスを起動するサブネット。

これらのパラメーターを入力したら、CloudFormation テンプレートをデプロイします。 完了すると、次のリソースが利用可能になります。

  • RStudio がインストールされた EC2 インスタンス。
  • 他の AWS サービスに接続するために必要なアクセス許可を持つ IAM ロール。
  • RStudio Server のポート 8787 を開くルールを持つセキュリティ グループ。

RStudio にログインします。

これで、RStudio を使用する準備が整いました。 に行く 出力 CloudFormation スタックのタブをクリックし、RStudio URL 値をコピーします (形式は次のとおりです)。 http://ec2-XX-XX-XXX-XX.compute-1.amazonaws.com:8787/)。 その URL を Web ブラウザーに入力します。 これにより RStudio セッションが開き、CloudFormation テンプレートの実行中に指定したのと同じユーザー名とパスワードを使用してログインできます。

RStudio から AWS のサービスにアクセスする

RStudio セッションにアクセスしたら、R Package for AWS (Paws) をインストールする必要があります。 これにより、データ レイク内のサービスやリソースを含む、多くの AWS サービスに接続できます。 Paws をインストールするには、次の R コードを入力して実行します。

install.packages("paws")

AWS サービスを使用するには、クライアントを作成し、そのクライアントからサービスのオペレーションにアクセスします。 AWS API にアクセスするときは、認証情報とリージョンを提供する必要があります。 Paws は、AWS 認証チェーンを使用して資格情報とリージョンを検索します。

  • 明示的に提供されたアクセス キー、秘密鍵、セッション トークン、プロファイル、またはリージョン
  • R 環境変数
  • オペレーティング システムの環境変数
  • AWS 共有認証情報と設定ファイル .aws/credentials & .aws/config
  • コンテナ IAM ロール
  • インスタンス IAM ロール

IAM ロールがアタッチされた EC2 インスタンスで実行しているため、Paws は自動的に IAM ロール認証情報を使用して AWS API リクエストを認証します。

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

実稼働環境では、で説明されているスケーラブルな Rstudio ソリューションを使用することをお勧めします このブログ.

まとめ

RStudio 環境を AWS にデプロイする方法を学びました。 Amazon SageMaker で RStudio を使用する利点と、開始方法を示しました。 また、Amazon EC2 を使用した自己ホスト型インストールを使用して、RStudio のオープンソース バージョンの実験をすぐに開始する方法も学びました。 また、RStudio をデータ レイク アーキテクチャに統合し、Lake Formation の行レベルおよびセル レベルのセキュリティ機能を使用してデータ レイク テーブルにきめ細かいアクセス制御を実装する方法も示しました。

次の投稿では、R スクリプトをコンテナー化し、それらを使用して実行する方法を示します。 AWSラムダ.


著者について

AWS 環境に RStudio を実装し、AWS Lake Formation のアクセス許可 PlatoBlockchain Data Intelligence を使用してデータ レイクにアクセスします。 垂直検索。 あい。ヴェンカタ カンパーナ AWS Health and Human Services チームのシニア ソリューション アーキテクトであり、カリフォルニア州サクラメントを拠点としています。 その役割で、彼は公共部門の顧客が AWS で適切に設計されたソリューションを使用してミッションの目標を達成するのを支援しています。

AWS 環境に RStudio を実装し、AWS Lake Formation のアクセス許可 PlatoBlockchain Data Intelligence を使用してデータ レイクにアクセスします。 垂直検索。 あい。ドーン・ヘイジー・グローブ博士 は、アマゾン ウェブ サービスの州および地方政府チームの公衆衛生分析のリーダーです。 この役割で、彼女は、州および地方の公衆衛生機関が分析の課題と長期的な目標を達成する方法について創造的に考えるのを支援する責任を負っています。 彼女は、公衆衛生の監視と研究をサポートするために、既存または新しいデータを使用する新しい方法を見つけることにキャリアを費やしてきました。

タイムスタンプ:

より多くの AWS機械学習