如何远程连接到GCP ML Engine / AWS Sagemaker管理的笔记本?

时间:2019-04-12 05:39:07

标签: amazon-web-services google-cloud-platform jupyter-notebook google-cloud-ml amazon-sagemaker

GCP终于发布了托管的Jupyter笔记本。我希望能够通过连接到笔记本进行本地交互。就是我使用PyCharm通过传递URL和令牌参数来连接到外部配置的jupyter notebbok服务器。

问题也适用于AWS Sagemaker笔记本电脑。

4 个答案:

答案 0 :(得分:2)

AWS本身不支持将SSH连接到SageMaker笔记本实例,但是并没有真正阻止您自己设置SSH的功能。

唯一的问题是这些实例没有获得公共IP地址,这意味着您必须创建一个反向代理(例如,使用ngrok)或通过堡垒框连接到它。

使ngrok解决方案有效的步骤:

  • 使用curl https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip > ngrok.zip下载ngrok
  • unzip ngrok.zip
  • 创建ngrok免费帐户以获取tcp隧道的权限
  • 使用令牌运行./ngrok authenticate
  • ./ngrok tcp 22 > ngrok.log &开头(&会放在背景中)
  • 日志文件将包含该URL,以便您知道要连接到的位置
  • (在SageMaker上)创建~/.ssh/authorized_keys文件并粘贴您的公钥(可能从您的计算机上粘贴~/.ssh/id_rsa.pub
  • 通过调用ssh -p <port_from_ngrok_logfile> ec2-user@0.tcp.ngrok.com(或他们分配给您的任何主机,它会在ngrok.log中)来
  • ssh

如果要使其自动化,建议使用lifecycle configuration scripts

另一个不错的技巧是将下载,解压缩,身份验证和启动ngrok打包到/ usr / bin中的某个二进制文件中,以便在死机时直接从SageMaker控制台调用它。

要完全解释如何使用生命周期脚本自动执行它有点太长,但是我已经在https://biasandvariance.com/sagemaker-ssh-setup/上写了详细的指南。

答案 1 :(得分:1)

在AWS上,您可以使用AWS Glue创建一个developer endpoint,然后从那里创建Sagemaker笔记本。开发人员端点使您可以通过ssh连接到python或Scala spark REPL,并且还可以通过任何其他工具(包括PyCharm)建立连接和访问的通道。

对于PyCharm专业人士,我们甚至拥有tighter integration,可让您SFTP文件并进行远程调试。

如果您需要在笔记本电脑上安装任何依赖项,除了直接在笔记本电脑上安装它之外,您始终可以选择new>terminal,您将直接从jupyter环境中连接到该计算机。安装anything you want

答案 2 :(得分:0)

你好橄榄树,

感谢您使用Amazon SageMaker。

您是否尝试过CreatePresignedNotebookInstanceUrl使用URL访问笔记本实例?

我们始终根据客户要求重新评估功能积压,因此,我们感谢对此功能的反馈。

让我们知道我们还有什么可以帮助的。

谢谢,
内拉姆

答案 3 :(得分:0)

GCP的AI平台笔记本自动创建一个永久性URL,可用于访问笔记本。那是你要找的吗?