

# チュートリアル: 開発エンドポイントで Amazon SageMaker AI ノートブックを使用する
<a name="dev-endpoint-tutorial-sage"></a>

 AWS Glue では、開発エンドポイントを作成し、ETL および機械学習スクリプトの開発に役立つ SageMaker AI ノートブックを作成できます。SageMaker AI ノートブックは、Jupyter Notebook アプリケーションを実行しているフルマネージド型機械学習コンピューティングインスタンスです。

1. AWS Glue コンソールで [**Dev endpoints (開発エンドポイント)**] を選択して、開発エンドポイントのリストに移動します。

1. 使用する開発エンドポイントの名前の横にあるチェックボックスをオンにし、[**アクション**] メニューで [**Create SageMaker notebook (SageMaker ノートブックの作成)**] を選択します。

1. [**Create and configure a notebook (ノートブックの作成と設定)**] ページに次のように入力します。

   1. ノートブック名を入力します。

   1. [**Attach to development endpoint (開発エンドポイントにアタッチ**] で、開発エンドポイントを確認します。

   1. AWS Identity and Access Management (IAM) ロールを作成または選択します。

      ロールを作成することをお勧めします。既存のロールを使用する場合は、必要な権限があることを確認します。(詳細については、[ステップ 6: SageMaker AI ノートブック用の IAM ポリシーを作成する](create-sagemaker-notebook-policy.md) を参照してください)。

   1. (オプション) VPC、サブネット、および 1 つ以上のセキュリティグループを選択します。

   1. (オプション) AWS Key Management Service 暗号化キーを選択します。

   1. (オプション) ノートブックインスタンスのタグを追加します。

1. [**Create notebook (ノートブックの作成)**] を選択します。[**ノートブック**] ページで、右上にある更新アイコンを選択し、[**ステータス**] に `Ready` と表示されるまで続行します。

1. 新しいノートブック名の横にあるチェックボックスをオンにし、[**ノートブックを開く**] を選択します。

1. 新しいノートブックを作成する: **jupyter** ページで [**新規**] を選択し、[**Sparkmagic (PySpark)**] を選択します。

   これで、画面は以下のようになります。  
![\[jupyter ページには、メニューバー、ツールバー、およびステートメントを入力できる横長のテキストフィールドがあります。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/sagemaker-notebook.png)

1. (オプション) ページの上部にある [**Untitled (無題)**] を選択し、ノートブックに名前を付けます。

1. Spark アプリケーションを起動するには、次のコマンドをノートブックに入力し、ツールバーで [**実行**] を選択します。

   ```
   spark
   ```

   しばらくすると、次のようなレスポンスが表示されます。  
![\[システムレスポンスには、Spark アプリケーションのステータスが示され、次のメッセージが出力されます: SparkSession available as 'spark'。\]](http://docs.aws.amazon.com/ja_jp/glue/latest/dg/images/spark-command-response.png)

1. 動的フレームを作成し、それに対してクエリを実行します。`persons_json` テーブルのカウントとスキーマを出力する次のコードをコピー、貼り付け、実行します。

   ```
   import sys
   from pyspark.context import SparkContext
   from awsglue.context import GlueContext
   from awsglue.transforms import *
   glueContext = GlueContext(SparkContext.getOrCreate())
   persons_DyF = glueContext.create_dynamic_frame.from_catalog(database="legislators", table_name="persons_json")
   print ("Count:  ", persons_DyF.count())
   persons_DyF.printSchema()
   ```