

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# クイックスタート: Studio で Amazon EMR クラスターを起動するための SageMaker AI サンドボックスドメインを作成する
<a name="studio-notebooks-emr-cluster-quickstart"></a>

このセクションでは、Amazon SageMaker Studio での完全なテスト環境のクイックセットアップについて説明します。ユーザーが Studio から新しい Amazon EMR クラスターを直接起動できるようにする新しい Studio ドメインを作成します。このステップでは、Amazon EMR クラスターに接続して、Spark ワークロードの実行を開始できるサンプルノートブックを説明します。このノートブックを使用して、Amazon EMR Spark 分散処理と OpenSearch ベクトルデータベースを使って、検索拡張生成 (RAG) を構築します。

**注記**  
開始するには、管理者権限を持つ AWS Identity and Access Management (IAM) ユーザーアカウントを使用して AWS マネジメントコンソールにサインインします。 AWS アカウントにサインアップして、管理アクセス権を持つユーザーを作成する方法については、「[Amazon SageMaker AI の前提条件を満たす](gs-set-up.md)」を参照してください。

**Studio テスト環境をセットアップして、Spark ジョブの実行を開始するには:**
+ [ステップ 1: Studio で Amazon EMR クラスターを起動するための SageMaker AI ドメインを作成する](#studio-notebooks-emr-cluster-quickstart-setup)
+ [ステップ 2: Studio UI から新しい Amazon EMR クラスターを起動する](#studio-notebooks-emr-cluster-quickstart-launch)
+ [ステップ 3: JupyterLab ノートブックを Amazon EMR クラスターに接続する](#studio-notebooks-emr-cluster-quickstart-connect)
+ [ステップ 4: CloudFormation スタックをクリーンアップする](#studio-notebooks-emr-cluster-quickstart-clean-stack)

## ステップ 1: Studio で Amazon EMR クラスターを起動するための SageMaker AI ドメインを作成する
<a name="studio-notebooks-emr-cluster-quickstart-setup"></a>

次の手順では、 CloudFormation スタックを適用して新しい SageMaker AI ドメインを自動的に作成します。このスタックを使用すると、ユーザープロファイルを作成して、必要な環境とアクセス許可を設定できます。SageMaker AI ドメインは、Studio から Amazon EMR クラスターを直接起動できるように設定されます。この例では、Amazon EMR クラスターは SageMaker AI と同じ AWS アカウントで認証なしで作成されます。Kerberos などのさまざまな認証方法をサポートする追加の CloudFormation スタックは、[geting\$1started](https://github.com/aws-samples/sagemaker-studio-emr/tree/main/cloudformation/getting_started) GitHub リポジトリにあります。

**注記**  
SageMaker AI では、 AWS アカウントごとに AWS リージョン デフォルトで 5 つの Studio ドメインを使用できます。スタックを作成する前に、アカウントのリージョン内のドメインが 4 つ以下であることを確認してください。

**Studio から Amazon EMR クラスターを起動するための SageMaker AI ドメインを設定するには、次の手順を実行します。**

1. `sagemaker-studio-emr` GitHub レポジトリから、この [CloudFormation テンプレート](https://github.com/aws-samples/sagemaker-studio-foundation-models/blob/main/workshop-artifacts/cfn/workshop-cfn.yaml)の raw ファイルをダウンロードします。

1.  CloudFormation コンソールに移動します: [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. **[スタックの作成]** をクリックして、ドロップダウンメニューから **[新しいリソースを使用 (標準)]** を選択します。

1. **ステップ 1**:

   1. **[テンプレートの準備]** セクションで、**[既存のテンプレートを選択]** をクリックします。

   1. **[テンプレートの指定]** セクションで、**[テンプレートファイルのアップロード]** を選択します。

   1. ダウンロードした CloudFormation テンプレートをアップロードし、**次へ**を選択します。

1. **[ステップ 2]** で、**[スタック名]** と**[SageMakerDomainName]** を入力してから、**[次へ]** をクリックします。

1. **[ステップ 3]** ではすべてのデフォルト値をそのままにして、**[次へ]** をクリックします。

1. **[ステップ 4]** で、リソースの作成に同意するチェックボックスをオンして、**[スタックの作成]** をクリックします。これにより、アカウントのリージョンに Studio ドメインが作成されます。

## ステップ 2: Studio UI から新しい Amazon EMR クラスターを起動する
<a name="studio-notebooks-emr-cluster-quickstart-launch"></a>

次のステップでは、Studio UI から新しい Amazon EMR クラスターを起動します。

1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) を開き、左側のメニューで **[ドメイン]** を選択します。

1. ドメイン名 **[GenerativeAIDomain]** をクリックして、**[ドメインの詳細]** ページを開きます。

1. ユーザープロファイル `genai-user` から Studio を起動します。

1. 左側のナビゲーションペインで、**[データ]** に移動し、**[Amazon EMR クラスター]** に移動します。

1. [Amazon EMR クラスター] ページで、**[作成]** をクリックします。 CloudFormation スタックが作成したテンプレートである **SageMaker Studio Domain No Auth EMR** を選択してから、**[次へ]** をクリックします。

1. 新しい Amazon EMR クラスター名を入力します。必要に応じて、コアノードとプライマリノードのインスタンスタイプ、アイドルタイムアウト、コアノード数などのその他のパラメータを更新します。

1. **[リソースの作成]** をクリックして、新しい Amazon EMR クラスターを起動します。

   Amazon EMR クラスターを作成したら、**EMR クラスター** ページのステータスに従います。ステータスが `Running/Waiting` に変わると、Amazon EMR クラスターは Studio で使用できるようになります。

## ステップ 3: JupyterLab ノートブックを Amazon EMR クラスターに接続する
<a name="studio-notebooks-emr-cluster-quickstart-connect"></a>

次の手順では、JupyterLab のノートブックを実行中の Amazon EMR クラスターに接続します。この例では、Amazon EMR Spark 分散処理と OpenSearch ベクトルデータベースを使って、検索拡張生成 (RAG) を構築できるノートブックをインポートします。

1. 

**JupyterLab を起動する**

   Studio から JupyterLab アプリケーションを起動します。

1. 

**プライベートスペースを作成します。**

   JupyterLab アプリケーション用のスペースを作成していない場合は、**[JupyterLab スペースの作成]** を選択します。スペース名を入力します。スペースは **[プライベート]** のままにします。その他のすべての設定をデフォルトのままにして、**[スペースを作成]** をクリックします。

   それ以外の場合は、JupyterLab スペースを実行して、JupyterLab アプリケーションを起動します。

1. 

**LLM と推論用の埋め込みモデルをデプロイする**
   + 上部のメニューから、**[ファイル]**、**[新規]**、**[ターミナル]** の順に選択します。
   + ターミナルで、以下のコマンドを実行します。

     ```
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb
     mkdir AWSGuides
     cd AWSGuides
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/AmazonSageMakerDeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/EC2DeveloperGuide.pdf
     wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/AWSGuides/S3DeveloperGuide.pdf
     ```

     これにより `Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb` ノートブックがローカルディレクトリに取得され、3 つの PDF ファイルがローカル `AWSGuides` フォルダにダウンロードされます。
   + `lab-00-setup/Lab_0_Warm_Up_Deploy_EmbeddingModel_Llama2_on_Nvidia.ipynb` を開いて、`Python 3 (ipykernel)` カーネルのままにして、各セルを実行します。
**警告**  
続行する前に、必ず **[Llama 2 ライセンス契約]** セクションの Llama2 EULA を承諾してください。  
このノートブックは、`ml.g5.2xlarge` に推論用の `Llama 2` と `all-MiniLM-L6-v2 Models` の 2 つのモデルをデプロイします。

     モデルのデプロイとエンドポイントの作成には時間がかかる場合があります。

1. 

**メインノートブックを開く**

   JupyterLab でターミナルを平井て、以下のコマンドを実行します。

   ```
   cd ..
   wget --no-check-certificate https://raw.githubusercontent.com/aws-samples/sagemaker-studio-foundation-models/main/lab-03-rag/Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb
   ```

   JupyterLab の左側のパネルに追加の `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` ノートブックが表示されます。

1. 

**`PySpark` カーネルを選択します。**

   `Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` ノートブックを開いて、`SparkMagic PySpark` カーネルを使用していることを確認します。カーネルは、ノートブックの右上で切り替えられます。現在のカーネル名を選択してカーネル選択モーダルを開き、`SparkMagic PySpark` を選択します。

1. 

**ノートブックをクラスターに接続する**

   1. ノートブックの上部にある **[クラスター]** をクリックします。このアクションは、アクセス許可を持つ実行中のすべてのクラスターを一覧表示するモーダルウィンドウを開きます。

   1. クラスターを選択してから、**[接続]** をクリックします。新しい認証情報タイプの選択モーダルウィンドウが開きます。

   1. **[認証情報なし]** を選択してから、**[接続]** をクリックします。  
![\[JupyterLab ノートブックの Amazon EMR 認証情報の選択を示すモーダル\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/images/studio/emr/studio-notebooks-emr-credential-selection.png)

   1. ノートブックセルは自動的に入力され、実行されます。ノートブックセルは、Amazon EMR クラスターに接続する機能を提供する `sagemaker_studio_analytics_extension.magics` 拡張機能をロードします。次に、`%sm_analytics` Magic コマンドを使用して Amazon EMR クラスターと Spark アプリケーションへの接続を開始します。
**注記**  
Amazon EMR クラスターへの接続文字列の認証タイプが `None` に設定されていることを確認します。これは、次の例の `--auth-type None` 値で説明されています。このフィールドは、必要に応じて変更できます。  

      ```
      %load_ext sagemaker_studio_analytics_extension.magics
      %sm_analytics emr connect --verify-certificate False --cluster-id your-cluster-id --auth-type None --language python
      ```

   1. 接続の確立が正常に完了すると、接続セルの出力メッセージに、クラスター ID、`YARN` アプリケーションID、Spark ジョブのモニタリング用 Spark UI へのリンクなど、`SparkSession` の詳細が表示されます。

これで、`Lab_3_RAG_on_SageMaker_Studio_using_EMR.ipynb` ノートブックを使用する準備が整いました。このサンプルノートブックは、LangChain と OpenSearch を使用して RAG システムを構築するための分散 PySpark ワークロードを実行します。

## ステップ 4: CloudFormation スタックをクリーンアップする
<a name="studio-notebooks-emr-cluster-quickstart-clean-stack"></a>

完了したら、継続的な料金の発生を避けるために、2 つのエンドポイントを終了し、 CloudFormation スタックを削除します。スタックを削除すると、スタックがプロビジョンしたすべてのリソースがクリーンアップされます。

**CloudFormation スタックの完了時にスタックを削除するには**

1.  CloudFormation コンソールに移動します: [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)

1. 削除するスタックを選択します。名前で検索することも、スタックのリストで検索することもできます。

1. **[削除]** ボタンをクリックしてスタックの削除を確定してから、もう一度 **[削除]** をクリックして、スタックが作成したすべてのリソースの削除を承認します。

   スタックの削除が完了するまで待ちます。これには数分かかる場合があります。 CloudFormation は、スタックのテンプレートで定義されているすべてのリソースを自動的にクリーンアップします。

1. スタックが作成したすべてのリソースが削除されていることを検証します。例えば、Amazon EMR クラスターが残っていないかを確認します。

**モデルの API エンドポイントを削除するには**

1. SageMaker AI コンソール ([https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)) に移動します。

1. 左側のナビゲーションペインで、**[推論]**、**[エンドポイント]** の順に選択します。

1. エンドポイント `hf-allminil6v2-embedding-ep` を選択して、**[アクション]** ドロップダウンリストで **[削除]** を選択します。エンドポイント `meta-llama2-7b-chat-tg-ep` について、このステップを繰り返します。