如何获取亚马逊 Sagemaker 笔记本实例的公有 IP?可能吗?



是否可以获取 Amazonsagemaker笔记本实例的公有 IP?

我想知道我是否可以使用公共 ip 进行远程调试。

我尝试使用以下 curl 命令获取公共 ip

$curl http://169.254.169.254/latest/meta-data

这只列出本地 IP,而不是公共 IP。

我也尝试了以下命令。

$curl ifconfig.me

这将返回一个 IP 地址,如13.232.96.15。如果我尝试使用 ssh 进入这个它不起作用。

我们还有其他方法可以做到这一点吗?

注意:安全组中的 ssh 端口 22 已打开

我认为你不能通过ssh到笔记本实例。您可以使用从控制台打开它们,也可以使用 API 获取 url,re: https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-access-ws.html

如果您需要终端,则可以从Jupyter打开一个终端。

您可以在 sagemaker 笔记本实例中运行它以获取公共/外部 IP

from requests import get
ip = get('https://api.ipify.org').content.decode('utf8')
print('My public IP address is: {}'.format(ip))

笔记本可以具有"与互联网的默认通信"(这允许笔记本通过 SageMaker 管理的 VPC 与互联网通信)或"VPC 与互联网通信"(您可以创建新的/使用带有 NAT 网关的现有 VPC,所有外部流量都将通过您控制的 NAT 网关 IP 进行)

附言您正在获得正确的公共IP,但正如其他答案中所述,sagemaker不提供SSH访问。

引用:

  • https://stackoverflow.com/a/36205547/2073920
  • https://docs.aws.amazon.com/sagemaker/latest/dg/appendix-notebook-and-internet-access.html

虽然我已经接受了朱利安的回答,但我还是粘贴了我从 aws 得到的回复,以便可能会有所帮助。

问:我们可以 ssh 到一个 sagemaker 笔记本实例吗?

答:不可以。

问:为什么不呢?

答:笔记本实例是作为 SageMaker 完全托管架构的一部分形成的。 这意味着服务的任何组件的所有底层实例都部署在 SageMaker 托管环境中,并且只能通过 SageMaker 的 API 访问它们。 对于笔记本实例,客户拥有的唯一访问权限是通过 Jupyter 笔记本(或 Jupyter 实验室),为此您必须使用CreatePresignedNotebookInstanceUrlAPI 才能获得授权的 URL,这不包括通过 SSH 的访问。

URL 是公开的,但客户仍然可以限制对特定 IP 地址的访问[1] 或通过 VPC 终端节点 [2] 连接到它。

[1] https://docs.aws.amazon.com/sagemaker/latest/dg/API_CreatePresignedNotebookInstanceUrl.html

[2] https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-interface-endpoint.html

最新更新