AWS Glue 開発エンドポイントでバックアップされた私の Amazon SageMaker ノートブックインスタンスが、次のエラーでタイムアウトします。
「ノートブックインスタンス 'arn:aws:sagemaker:us-xxxx-x:xxxxxx:notebook-instance/mynotebook' 用のノートブックインスタンスのライフサイクル設定 'arn:aws:sagemaker:us-xxxx-x:xxxxxx:notebook-instance-lifecycle-config/mylifecycleconfig' が5分以上かかった。ノートブックインスタンスにインターネットへのアクセスがある場合、CloudWatch ログで詳細を確認してください。「
解決方法
このエラーは、AWS Glue 開発エンドポイントでの Apache Livy サービスが、ノートブックを実行しているサーバーと通信できないことを示している可能性があります。この問題の最も一般的な理由は、ノートブックにアタッチされたライフサイクル設定が、存在しない開発エンドポイントを参照している可能性があることです。SageMaker ライフサイクルスクリプトは、開発エンドポイントで実行している Livy サーバーに対して REST API をコールするように SparkMagic プラグインを設定するために使用されます。これらのコンポーネントの連携方法については、「AWS Glue 開発エンドポイントの SageMaker ノートブックとの連携方法」を参照してください。
この問題を解決するには、次のトラブルシューティングオプションを試してください。
新しい開発エンドポイントを作成する
新しい AWS Glue 開発エンドポイントを作成します。できれば、使用していたエンドポイントと同じ名前と設定を使用します。詳細については、「開発エンドポイントの追加」を参照してください。
ノートブックインスタンスのライフサイクル設定を更新する
次のいずれかの条件に該当する場合は、失敗したノートブックインスタンスのライフサイクル設定を更新する必要があります。
- 別の名前の開発エンドポイントを作成した。
- 以前に作成した開発エンドポイントを使いたい。
ノートブックのライフサイクル設定を更新するには、次の手順を実行します。
1. SageMaker コンソールを開きます。
2. ナビゲーションペインの [ノートブック] で、[ライフサイクル設定] を選択します。
3. 失敗したノートブックインスタンスのライフサイクル設定を選択します。
4. [Edit] (編集) を選択します。
5. [スクリプト] セクションの [ノートブックの開始] と [ノートブックの作成] スクリプトの両方で、次のコマンドで開発エンドポイントの名前を作成したエンドポイント (example_new_dev_endpoint) の名前に置き換えます。
必ずコマンドの us-east-1 を、AWS Glue 開発エンドポイントのリージョンを使用して更新してください。
aws glue get-dev-endpoint --endpoint-name example_new_dev_endpoint --endpoint https://glue.us-east-1.amazonaws.com
**注意:**SageMaker ノートブックに、開発エンドポイントへのアクセスに必要な許可あることを確認してください。
ノートブックのデータを復元する
SageMaker にアクセスできるが、新しい開発エンドポイントを作成できない場合は、ノートブックの復元を検討してください。
ノートブックのデータを回復するには、次の手順に従います。
- SageMaker コンソールを開きます。
- ナビゲーションペインの [ノートブック] で、[ノートブックインスタンス] を選択します。
- 復元するノートブックを選択します。
- ノートブックのステータスが停止済みではない場合、[アクション] を選択し、[停止] を選択してノートブックインスタンスを停止します。
ノートブックインスタンスのステータスが [停止中] に変わっていることがわかります。ステータスが [停止済み] に変わるまで待って、残りのステップを完了します。
- [アクション] を選択してから、[設定の更新] を選択します。
- [ノートブックインスタンスの編集] ページで、[追加の設定] の [ライフサイクル設定] で、[設定なし] を選択します。
- [ノートブックインスタンスの更新] を選択します。
ノートブックインスタンスのステータスが [更新中] に変わります。ノートブックインスタンスの更新が完了すると、ステータスが [停止済み] に変わります。[開始] を選択してインスタンスを開始します。インスタンスを開始した後、Jupyter と JupyterLab にアクセスして、スクリプトとデータをローカルでダウンロードできます。ただし、AWS Glue 開発エンドポイントにはまだ接続できません。
重要: スクリプトを GitHub リポジトリにリンクすると、将来のデータの損失を回避できます。
注: ライブラリをインストールしようとしたときにライフサイクル設定がタイムアウトした場合は、「ライブラリをインストールしようとしたときに私のライフサイクル設定がタイムアウトした場合、マニュアルでインストールしたライブラリが Amazon SageMaker で保持されていることを確認するにはどうすればよいですか?」を参照してください。
関連情報
チュートリアル: 開発エンドポイントで SageMaker ノートブックを使用する
AWS Glue コンソールでの SageMaker ノートブック
AWS Glue コンソールでのノートブックの操作
SageMaker ノートブックの IAM ポリシーを作成する