ノートブックをコンテナ化する - AWS IoT Analytics

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

ノートブックをコンテナ化する

このセクションでは、Jupyter ノートブックを使用して独自の Docker コンテナを構築する方法について説明します。サードパーティー製のノートブックを再利用するとセキュリティ上のリスクがあります。含まれるコンテナはユーザーの許可を得て任意のコードを実行できます。さらに、ノートブックによって生成された HTML は AWS IoT Analytics コンソールに表示される可能性があり、HTML を表示しているコンピュータ上に潜在的な攻撃ベクトルを提供します。使用する前に、サードパーティー製のノートブックの著者を信頼できることを確認します。

高度な分析機能を実行する 1 つの方法として、Jupyter Notebook を使用します。Jupyter Notebook は、機械学習と様々な統計的分析を実行できる強力なデータサイエンスツールを備えています。詳細については、「ノートブックテンプレート」を参照してください。現在 JupyterLab 内でのコンテナ化はサポートされていないことに注意してください。) Jupyter Notebook とライブラリをコンテナにパッケージできます。このコンテナは、定義したデルタ時間ウィンドウ中に AWS IoT Analytics が受信した新しいデータのバッチを定期的に実行します。コンテナと指定された時間ウィンドウでキャプチャされるセグメント化された新しいデータを使用する分析ジョブをスケジュールし、この先にスケジュールされた分析用にこのジョブの出力を保存できます。

2018 年 8 月 23 日以降に AWS IoT Analytics コンソールを使用して SageMaker インスタンスを作成した場合、コンテナ化の拡張機能のインストールは自動的に行われ、コンテナ化されたイメージの作成を開始できます。それ以外の場合は、このセクションに記載されている手順に従って、SageMaker インスタンスでノートブックのコンテナ化を有効にします。以下では、SageMaker 拡張機能を変更して Amazon EC2 にコンテナイメージをアップロードできるようにします。こうして、コンテナ化の拡張機能をインストールできます。

AWS IoT Analytics コンソールを介して作成されていないノートブックインスタンスのコンテナ化を有効化する

新しい SageMaker インスタンスの作成は、次の手順ではなく、AWS IoT Analytics コンソールを使用して行うことが推奨されます。新しいインスタンスでは、自動的にコンテナ化がサポートされます。

ここに示すようにコンテナ化を有効にした後で SageMaker インスタンスを再起動する場合、IAM ロールおよびポリシーを再度追加する必要はありませんが、最後のステップに示すように、拡張機能を再インストールする必要があります。

  1. Amazon ECS へのアクセス権をノートブックに付与するには、Amazon SageMaker ページで SageMaker インスタンスを選択します。

    AWS IoT Analytics でノートブックをコンテナ化します。
  2. IAM role ARN IAM ロール ARNで SageMaker Execution Role SageMaker 拡張機能ロールを選択します。

    AWS IoT Analytics でノートブックをコンテナ化します。
  3. Attach Policy ポリシーのアタッチを選択したら、「Permissions アクセス許可)」に示すようにポリシーを定義してアタッチします。AmazonSageMakerFullAccess ポリシーがまだアタッチされていない場合は、ポリシーをアタッチします。

    AWS IoT Analytics でノートブックをコンテナ化します。

Amazon S3 からコンテナ化コードをダウンロードして、ノートブックインスタンスにインストールする必要があります。最初のステップは、SageMaker インスタンスのターミナルにアクセスすることです。

  1. Jupyter 内で、新規を選択します。

    AWS IoT Analytics でノートブックをコンテナ化します。
  2. 表示されるメニューで、ターミナルを選択します。

    AWS IoT Analytics でノートブックをコンテナ化します。
  3. ターミナル内で、コードをダウンロードするための次のコマンドを入力し、解凍してインストールします。これらのコマンドは、この SageMaker インスタンス上でノートブックが実行するすべてのプロセスを終了することに注意してください。

    AWS IoT Analytics でノートブックをコンテナ化します。
    cd /tmp aws s3 cp s3://iotanalytics-notebook-containers/iota_notebook_containers.zip /tmp unzip iota_notebook_containers.zip cd iota_notebook_containers chmod u+x install.sh ./install.sh

    拡張機能が有効になりインストールされるまで、1 ~ 2 分ほど待ちます。

ノートブックのコンテナ化拡張機能を更新する

2018 年 8 月 23 日以降に AWS IoT Analytics コンソールで SageMaker インスタンスを作成した場合、コンテナ化の拡張機能は自動的にインストールされます。SageMaker コンソールからインスタンスを再起動して拡張機能を更新できます。手動で拡張機能をインストールした場合には、「Enable Containerization Of Notebook Instances Not Created Via Iot Analytics Console AWS IoT Analytics コンソールを使用しないで作成されたノートブックインスタンスのコンテナ化を有効にする)」にリストされるターミナルコマンドを再度実行して更新することができます。

コンテナ化イメージを作成する

このセクションでは、ノートブックをコンテナ化するために必要な手順を示します。開始するには、Jupyter Notebook にアクセスして、コンテナ化カーネルを使用してノートブックを作成します。

  1. Jupyter Notebook で New 新規を選択し、ドロップダウンリストからカーネルのタイプを選択します。カーネルのタイプは、最初を「コンテナ化」に、最後を選択すべきカーネルにする必要があります。 たとえば、単純な Python 3.0 環境が必要な場合 conda_python3 など)、「Containerized conda_python3」を選択します)。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  2. ノートブックで作業が完了し、これをコンテナ化するには、コンテナ化を選択します。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  3. コンテナ化のノートブックの名前を入力します。オプションとして説明を入力することもできます。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  4. ノートブックを呼び出す 入力変数 パラメータを指定します。ノートブックから自動的に検出される入力変数を選択することも、カスタム変数を定義することもできます。以前にノートブックを実行したことがある場合にのみ、入力変数が検出されることに注意してください。) 各入力変数でタイプを選択します。また、オプションで入力変数の説明も入力できます。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  5. ノートブックから作成されたイメージがアップロードされる先の Amazon ECR リポジトリを選択します。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  6. コンテナ化を選択してプロセスを開始します。

    入力をまとめた概要が表示されます。プロセスは開始してしまうとキャンセルできなくなるので注意してください。このプロセスには最長で 1 時間程度かかることがあります。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  7. 次のページに進行状況が表示されます。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。
  8. 誤ってブラウザを閉じた場合には、AWS IoT Analytics コンソールの ノートブック セクションからコンテナ化プロセスのステータスをモニタリングできます。

  9. プロセスが完了すると、コンテナ化されたイメージは Amazon ECR に保存され、使用できるようになります。

    AWS IoT Analytics でノートブックのコンテナ化拡張機能を更新します。