首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何远程连接到GCP ML引擎/AWS Sagemaker托管笔记本?

如何远程连接到GCP ML引擎/AWS Sagemaker托管笔记本?
EN

Stack Overflow用户
提问于 2019-04-12 05:39:06
回答 4查看 3.8K关注 0票数 8

GCP终于发布了管理型木星笔记本电脑。我希望能够通过连接到笔记本上与笔记本进行本地交互。即。我使用PyCharm通过传递其URL &令牌param连接到外部配置的jupyter服务器。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-12 08:29:21

在AWS上,您可以使用AWS创建一个开发人员端点,然后再从那里创建Sagemaker笔记本。开发人员端点允许您通过ssh访问您的python或Scala,它还允许您从任何其他工具(包括PyCharm )中隧道连接和访问。

对于PyCharm专业人员,我们甚至有更紧密的整合,允许您远程调试SFTP文件。

如果您需要在笔记本上安装任何依赖项,除了直接在笔记本上安装之外,您可以始终选择new>terminal,并且您可以从您的jupyter环境中直接连接到该机器,在这里您可以安装任何你想要的

票数 3
EN

Stack Overflow用户

发布于 2020-05-07 17:10:33

AWS本机不支持SageMaker笔记本实例中的SSH-ing,但是没有什么能真正阻止您自己设置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,以便您知道连接到哪里。
  • 创建~/.ssh/authorized_keys文件(在SageMaker上)并粘贴您的公钥(可能是计算机上的~/.ssh/id_rsa.pub )
  • 通过调用ssh -p <port_from_ngrok_logfile> ec2-user@0.tcp.ngrok.com (或他们分配给您的任何主机,它将位于ngrok.log中)

如果您想让它自动化,我建议您使用生命周期配置脚本

另一个很好的技巧是将下载、解压缩、身份验证和启动ngrok包装成/usr/bin中的一些二进制文件,这样您就可以在SageMaker控制台上调用它了。

要完全解释如何使用生命周期脚本实现自动化有点太长了,但是我已经编写了一个关于https://biasandvariance.com/sagemaker-ssh-setup/的详细指南。

票数 5
EN

Stack Overflow用户

发布于 2022-03-10 15:55:19

有一种方法可以将SSH放入SAGMEK笔记本实例中,而不必使用第三方反向代理(如ngrok ),也不需要设置EC2堡垒,也不需要使用,以下是您可以这样做的方法。

先决条件

  • 对于笔记本实例,使用自己的VPC,而不是由AWS/Sagemaker管理的VPC。
  • 将笔记本实例的安全组中的入口规则配置为允许SSH流量(端口22通过TCP)

怎么做?

  • 创建在实例启动时执行的生命周期脚本配置。
  • 在生命周期脚本中添加以下代码段:
代码语言:javascript
复制
INSTANCE_IP=$(/sbin/ifconfig eth2 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "SSH into the instance using : ssh ec2-user@$INSTANCE_IP" > ~ec2-user/SageMaker/ssh-instructions.txt
  • /home/ec2-user/.ssh/authorized_keys中添加公共SSH密钥,使用jupyterlab的终端手动添加,或者在上面的生命周期脚本中添加

当您的用户打开木星界面时,他们将找到ssh-instructions.txt文件,该文件为主机和命令提供了使用:ssh ec2-user@<INSTANCE_IP>

如果您想要从本地环境中获得SSH,您可能需要连接到您的VPN,在VPC中路由您的通信量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55645119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档