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 インスタンス オプションを制限する方法も示しています。
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
プロフィール詳細。
次のスクリーンショットは、 rstudiouser-fullaccess
プロフィール詳細。
この記事で使用するデータセットは COVID-19 公開データセット. 次のスクリーンショットは、データの例を示しています。
ユーザー プロファイルを作成して適切なロールに割り当てたら、Lake Formation にアクセスしてデータをクロールできます。 AWSグルー、メタデータとテーブルを作成し、テーブル データへのアクセスを許可します。 のために AmazonSageMaker-ExecutionRole-FullAccess
役割、テーブル内のすべての列へのアクセスを許可し、 AmazonSageMaker-ExecutionRole-LimitedAccess
、データフィルターを使用してアクセスを許可します USA_Filter
. このフィルターを使用して、行レベルおよびセルレベルの列のアクセス許可を提供します ( リソース 次のスクリーンショットの列)。
次のスクリーンショットに示すように、XNUMX 番目のロールはアクセスが制限されています。 このロールに関連付けられたユーザーは、 continent
, date
, total_cases
, total_deaths
, new_cases
, new_deaths
, iso_codecolumns
.
各ユーザー プロファイルに付与された役割のアクセス許可により、Lake Formation が適切な行レベルおよび列レベルのアクセス許可をどのように適用するかを確認できます。 RStudio ワークベンチは、 アプリを起動 作成したユーザー リストのドロップダウン メニューから、 Rstudio.
次のスクリーンショットでは、アプリを rstudiouser-limitedaccess user
.
RStudio Workbench のホームページと、セッション、プロジェクト、および公開されたコンテンツのリストを表示できます。
セッション名を選択して、SageMaker でセッションを開始します。 適切な AWS サービスにアクセスできるように、Paws をインストールします (この記事の前半のガイダンスを参照)。 クエリを実行して、データセットからすべてのフィールドを取得できるようになりました。 アマゾンアテナ、コマンドを使用 “SELECT * FROM "databasename.tablename"
、およびクエリ出力を Amazon シンプル ストレージ サービス (Amazon S3)バケット。
次のスクリーンショットは、S3 バケット内の出力ファイルを示しています。
次のスクリーンショットは、以下を使用したこれらの出力ファイルのデータを示しています。 Amazon S3 セレクト.
米国のデータと列のみ、大陸、日付、 total_cases
, total_deaths
, new_cases
, new_deaths
, iso_code
の結果に表示されます rstudiouser-limitedaccess
ユーザー。
についても同じ手順を繰り返しましょう。 rstudiouser-fullaccess
ユーザー。
RStudio Workbench のホームページと、セッション、プロジェクト、および公開されたコンテンツのリストを表示できます。
同じクエリを実行してみましょう “SELECT * FROM "databasename.tablename"
アテナを使用。
次のスクリーンショットは、S3 バケット内の出力ファイルを示しています。
次のスクリーンショットは、以下を使用したこれらの出力ファイルのデータを示しています。 Amazon S3 セレクト.
この例に示すように、 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 コードを入力して実行します。
AWS サービスを使用するには、クライアントを作成し、そのクライアントからサービスのオペレーションにアクセスします。 AWS API にアクセスするときは、認証情報とリージョンを提供する必要があります。 Paws は、AWS 認証チェーンを使用して資格情報とリージョンを検索します。
- 明示的に提供されたアクセス キー、秘密鍵、セッション トークン、プロファイル、またはリージョン
- R 環境変数
- オペレーティング システムの環境変数
- AWS 共有認証情報と設定ファイル
.aws/credentials
&.aws/config
- コンテナ IAM ロール
- インスタンス IAM ロール
IAM ロールがアタッチされた EC2 インスタンスで実行しているため、Paws は自動的に IAM ロール認証情報を使用して AWS API リクエストを認証します。
実稼働環境では、で説明されているスケーラブルな Rstudio ソリューションを使用することをお勧めします このブログ.
まとめ
RStudio 環境を AWS にデプロイする方法を学びました。 Amazon SageMaker で RStudio を使用する利点と、開始方法を示しました。 また、Amazon EC2 を使用した自己ホスト型インストールを使用して、RStudio のオープンソース バージョンの実験をすぐに開始する方法も学びました。 また、RStudio をデータ レイク アーキテクチャに統合し、Lake Formation の行レベルおよびセル レベルのセキュリティ機能を使用してデータ レイク テーブルにきめ細かいアクセス制御を実装する方法も示しました。
次の投稿では、R スクリプトをコンテナー化し、それらを使用して実行する方法を示します。 AWSラムダ.
著者について
ヴェンカタ カンパーナ AWS Health and Human Services チームのシニア ソリューション アーキテクトであり、カリフォルニア州サクラメントを拠点としています。 その役割で、彼は公共部門の顧客が AWS で適切に設計されたソリューションを使用してミッションの目標を達成するのを支援しています。
ドーン・ヘイジー・グローブ博士 は、アマゾン ウェブ サービスの州および地方政府チームの公衆衛生分析のリーダーです。 この役割で、彼女は、州および地方の公衆衛生機関が分析の課題と長期的な目標を達成する方法について創造的に考えるのを支援する責任を負っています。 彼女は、公衆衛生の監視と研究をサポートするために、既存または新しいデータを使用する新しい方法を見つけることにキャリアを費やしてきました。