Amazon Web Services ブログ
Amazon SageMaker ノートブックインスタンスのネットワーク設定と高度なルーティングオプションについて理解する
Amazon SageMaker ノートブックインスタンスは、完全マネージド型の機械学習 (ML) Amazon EC2 インスタンスを通じて、Jupyter ノートブックアプリケーションを提供します。Amazon SageMaker Jupyter ノートブックは、高度なデータ探索、トレーニングジョブの作成、Amazon SageMaker ホスティングへのモデルのデプロイ、モデルのテストや検証に使用されます。
ノートブックインスタンスには、さまざまなネットワーク設定が用意されています。このブログ記事では、さまざまなオプションの概要を説明するとともに、お客様の一般的な事例を紹介していきます。
ベーシック
Amazon SageMaker ノートブックインスタンスは、Virtual Private Cloud (VPC) がアタッチされているかどうかにかかわらず起動できます。VPC をアタッチして起動すると、ノートブックは、直接インターネット接続ありまたはなしで設定することができます。
重要な注意事項: 直接インターネット接続があるとは、Amazon SageMaker サービスが、サービスによって管理される VPC を通じて、ノートブックをインターネットに接続できるネットワークインターフェイスを提供していることを意味します。
Amazon SageMaker コンソールを使用する際、次の 3 つのオプションがあります。
- お客様の VPC のアタッチなし。
- お客様の VPC のアタッチあり (直接インターネット接続あり)。
- お客様の VPC のアタッチあり (直接インターネット接続なし)。
それはどういう意味ですか?
3 つのオプションはそれぞれ、マネージド EC2 インスタンスのネットワークインターフェイスを一連のルーティング設定で自動的に設定します。特定の状況では、これらの設定を変更して、特定の IP アドレスの範囲を別のネットワークインターフェイスにルーティングすることができます。次に、これらのデフォルト設定をそれぞれ順を追って説明します。
- アタッチしたお客様の VPC なし (1 つのネットワークインターフェイス)
この構成では、すべてのトラフィックが単一のネットワークインターフェイスを経由します。 ノートブックインスタンスは、上記の図に示すように、Amazon SageMaker が管理する VPC で実行されています。 - お客様がアタッチした VPC あり (直接インターネット接続あり) (2 つのネットワークインターフェイス)
この設定では、ノートブックインスタンスは、どのネットワークトラフィックが 2 つのネットワークインターフェイスのどちら経由すべきかを判断する必要があります。
172.31.0.0/16 CIDR の範囲で VPC を起動し、OS レベルのルート情報を調べた例を見てみましょう。
このルートテーブルを見ると、次のことがわかります。- 172.31.0.0/16 トラフィックは eth2 インターフェイスを使用します。
- いくつかのドッカーとメタデータのルート。
- 他のすべてのトラフィックは eth0 インターフェイスを使用します。
わかりやすくするために、eth0 と eth2 の設定に焦点を絞り、その他の Docker/ec2 メタデータの項目には焦点を当てません。これにより、以下の設定が表示されます。
このデフォルト設定では、お客様がアタッチした VPC (eth2) の CIDR 範囲を除くすべてのトラフィックにインターネットネットワークインターフェイス (eth0) を使用します。この設定は、オンプレミスまたはピア VPC リソースのいずれかと相互作用するときに上書きされることがあります。
- お客様がアタッチした VPC あり (直接インターネット接続なし)。
重要な注意事項: この設定では、ノートブックのインスタンスは引き続きインターネットにアクセスするように設定できます。起動するネットワークインターフェイスにはプライベート IP アドレスしかありません。つまり、NAT を使用してプライベートサブネットにとどまるか、仮想プライベートゲートウェイを介してインターネットに戻る必要があります。パブリックサブネットに立ち上げられた場合、インターネットゲートウェイ (IGW) を介してインターネットに接続することはできません。
一般的なお客様のパターン
直接インターネット接続による Amazon SageMaker インスタンスからのオンプレミスリソースへのアクセス。
次のような設定があると仮定します。
10.0.0.0/16 CIDR 範囲のオンプレミスリソースにアクセスしようとすると、OS によって eth0 インターネットインターフェイス経由でルーティングされます。このインターフェイスはオンプレミスでの接続を持たず、オンプレミスリソースとの通信を行うことができません。
オンプレミスに戻るには、ルートテーブルを次のように更新する必要があります。
これを行うには、Amazon SageMaker ノートブックインスタンスの端末から次のコマンドを実行します。
“route -n” と入力してルートテーブルを見ると、次のルートが表示されます。
VPC ルーティング IP アドレス (172.31.64.1) を通過するマスク 255.255.0.0 (10.0.0.0/16と同じ) を使用して、10.0.0.0のルートが表示されます。
まだ問題が 1 つあります。
ノートブックを再起動すると、変更内容が失われてしまうことです。 ML ストレージボリュームに加えられた変更だけが、停止/開始時にも保持されます。一般的に、パッケージとファイルの内容を保持するには、 “/home/ec2-user/SageMaker” の下に保存する必要があります。この場合、別の機能を使用します: ライフサイクル設定を使用すると、ノートブックの起動時にいつでもルートを追加できます。
次の図に示すように、ライフサイクルポリシーを作成できます。
今度は、このライフサイクル設定でノートブックを作成できます。
この設定では、ノートブックが作成されたときや、停止したり再起動したりしたときに、次のネットワーキング設定を持つことを期待できます。
結論
Amazon SageMaker Jupyter ノートブックは、高度なデータ探索、モデルトレーニングジョブの作成、Amazon SageMaker ホスティングへのモデルのデプロイ、モデルのテストや検証に使用されます。 これにより、ノートブックインスタンスがさまざまなネットワーキング設定を利用できるようにする必要が生じます。 これらの設定をどのように適用できるかを知ることで、組織や企業の既存のリソースと統合することが可能になります。
今回のブログ投稿者について
Ben Snively は、AWS パブリックセクタースペシャリストのソリューションアーキテクトです。 彼は、ビッグデータ/分析および AI/ML プロジェクトで政府機関、非営利組織、教育機関のお客様と協力し、AWS を使用したソリューションの構築をサポートしています。