Amazon Web Services ブログ

ライフサイクル構成およびインターネットアクセスを無効にするオプションを使用して Amazon SageMaker ノートブックインスタンスをカスタマイズする

Amazon SageMaker は、データの探索と前処理用に Jupyter ノートブックを実行する、完璧なマネージドインスタンスを提供します。顧客は、構成済みのノートブックインスタンスをワンクリックで簡単に起動できることに大きな価値を見出しています。現在、私たちは、2 つの新しいオプションを提供することによってカスタマイズ性を向上させることに取り組んでいます。すなわち、ノートブックインスタンスのカスタマイズプロセスの自動化を支援するライフサイクル構成と、ノートブックインスタンスに制御されたセキュリティ環境を提供するために、ノートブックインスタンスをパブリックインターネットから切り離す機能です。

ノートブックインスタンスのライフサイクル構成

Amazon SageMaker は現在、追加ライブラリをノートブックインスタンスに手動でインストールする機能を備えています。しかし、ノートブックインスタンスを停止させると、これらの追加したカスタマイゼーションも、同時に削除されてしまいます。そのため、ノートブックインスタンスを再起動した場合、これらを再び手動で追加する必要があります。Amazon SageMaker の新しいライフサイクル構成機能を使用すると、これらのカスタマイゼーションをインスタンスのライフサイクルのさまざまなフェーズで適用するのを自動化することができるようになります。たとえば、一連のライブラリをインストールするスクリプトを作成し、ライフサイクル構成機能を使用して、ノートブックインスタンスが起動されるたびにスクリプトが自動的に実行されるように構成することができます。あるいは、ノートブックインスタンスが作成されたとき、スクリプトが一度だけ、自動的に実行されるように構成することもできます。

TurboTax や QuickBooks など、グローバルに製品およびプラットフォームを提供していることで知られる Intuit は、ライフサイクル構成を使用して、セキュリティスキャナーのデプロイや、ルーティングルールの再構成など、ノートブックインスタンスのセキュリティ環境をカスタマイズしています。また Intuit は、ノートブックインスタンスではインターネットへの直接アクセスを無効にし、ライフサイクル構成を使用して、VPC にデプロイされたプライベートパッケージインデックスを利用する、パッケージのインストールをブートストラップしています。

ノートブックインスタンスのインターネットへの直接アクセスを無効にするオプション

従来は、すべての Amazon SageMaker ノートブックインスタンスがデフォルトでインターネットへの直接アクセス権を持っており、それを無効にすることはできませんでした。これにより、パブリックインターネットから、人気のあるパッケージ、ノートブック、データセットをダウンロードしたり、他の Amazon SageMaker コンポーネントにアクセスしたりすることができました。しかし、ノートブックインスタンスを仮想プライベートクラウド (VPC) に接続すると、ノートブックインスタンスは、『ノートブックインスタンスのセキュリティ』で議論しているように、データアクセスのための余計なアベニューを装備することになります。その結果、いくつかの顧客から、インターネットアクセスを制御する機能についての要望がありました。特に、自社の VPC に接続するノートブックインスタンスについての要望です。現在、Amazon SageMaker ノートブックインスタンスのデフォルトのインターネットへの直接アクセスを無効にするオプションが用意されました。これを使用すると、VPC 構成を信頼して、ノートブックインスタンスにインターネットアクセスを許可するかしないかを制御させることができます。

これらの新しい機能について調べるために、Amazon SageMaker コンソールを開いて、ノートブックインスタンスを作成します。ページの下にある [Lifecycle configuration (ライフサイクル構成)] にナビゲートします。  始めて使用する場合、アカウントにはいかなるライフサイクル構成も含まれていないので、[Create a lifecycle configuration (ライフサイクル構成の作成)] を選択します。

最初のライフサイクル構成を作成するための作業ウィンドウがポップアップします。ライフサイクル構成を追加していけば、このウィンドウのドロップダウンリストから既存の構成を選択することができるようになります。

このポップアップウィンドウで、ライフサイクル構成に名前を付け、[Start notebook (ノートブックの起動)] または [Create notebook (ノートブックの作成)] の下のテキストボックスにカスタムスクリプトを挿入してから、特定のニーズに応じて、[Create configuration (構成の作成)] を選択します。この例では、ノートブックを起動するたびに、yaml パッケージが自動的にインストールされ、使える状態になるようにします。この時点で、最初のライフサイクル構成を作成したことになります。そして、[Create notebook instance (ノートブックインスタンスの作成)] を選択します。ノートブックインスタンスが作成されて、起動され、スクリプトが構成に従って実行されます。これで完了です。

ライフサイクル構成の管理も非常に簡単です。左側のナビゲーションペインの [Notebook instances (ノートブックインスタンス)] の下で、[Lifecycle configuration (ライフサイクル構成)] を選択します。

ここに、あなたが作成したすべてのライフサイクル構成が表示されます。新しいライフサイクル構成を作成したり、既存の構成を編集/削除したりすることができます。

次に、Amazon SageMaker コンソールを使って、インターネットへの直接アクセスが無効になっているノートブックインスタンスを作成するプロセスに移りましょう。ちなみにこの操作は、AWS SDK を使って、実行することもできます。

最初に、Amazon SageMaker コンソールで、ナビゲーションバー上の [Notebook instances (ノートブックインスタンス)] を選択し、[Create notebook instance (ノートブックインスタンスの作成)] を選択します。

次に、[Notebook instance settings (ノートブックインスタンスの設定)] の必要なすべてのフィールドに値を入力し、ノートブックインスタンスの接続先の VPC を選択します。いつかの他のフィールドが有効になっていることに気付くはずです。VPC 設定に含まれる、[Subnet (サブネット)] および [Security group(s) (セキュリティグループ)] を選択します。 インターネットへの直接アクセスを無効にするために、[Direct Internet access (インターネットへの直接アクセス)] の下で [Disable – use VPC only (無効 – VPC のみを使用)] を選択して、下部にある [Create notebook instance (ノートブックインスタンスの作成)] ボタンを選択します。これで準備は完了です。

数分後にノートブックインスタンスが立ち上がり、インターネットへの直接アクセスができない状態で動作を開始します。この例では、あなたの VPC が NAT ゲートウェイを持っており、あなたのセキュリティグループがアウトバウンド接続を許可していることがない限り、このノートブックインスタンスのノートブックからはモデルのトレーニングやデプロイメントができないことに注意してください。VPC 用の NAT ゲートウェイのセットアップについての詳細は、『Amazon Virtual Private Cloud ユーザーガイド』の「NAT ゲートウェイの操作」を参照してください。セキュリティグループの詳細については、「VPC のセキュリティグループ」を参照してください。

まとめ

要約すると、Amazon SageMaker ノートブックインスタンスのライフサイクル構成オプションとインターネットアクセスを無効にする機能は、現在、米国東部 (バージニア州北部)、米国東部 (オハイオ州)、EU (アイルランド)、および米国西部 (オレゴン州) の AWS リージョンで利用可能です。さらに詳しく知りたければ、Amazon SageMaker ノートブックインスタンスのドキュメントを参照してください。


今回のブログ投稿者について

Fan Li は AWS ML プラットフォームチームの製品マネージャーです。このプラットフォームは、Amazon SageMaker、Amazon Machine Learning、AWS 深層学習 AMI から構成されています。彼は以前は社交ダンスに熱狂していました。しかし現在は、7 つになる息子が好きになるものだけを好きになっています。