【问题标题】:ssh into AWS Batch jobsSSH 进入 AWS Batch 作业
【发布时间】:2021-01-28 05:52:42
【问题描述】:

我想通过本地 R 进程与 AWS Batch 作业进行通信,就像 Davis Vaughn 在https://gist.github.com/DavisVaughan/865d95cf0101c24df27b37f4047dd2e5 为 EC2 演示的方式一样。 AWS Batch 文档描述了如何为批处理作业设置密钥对和安全组。但是,我找不到有关如何查找作业实例的 IP 地址或我需要什么用户名的详细说明。当我运行作业时,控制台中的 IP 地址尤其不可用,aws batch describe-jobs --jobs 打印出一个空的 "jobs": [] JSON 字符串。我在哪里可以找到通过 ssh 进入工作实例所需的信息? (在我的用例中,我更喜欢 IP 地址而不是主机名。)

【问题讨论】:

  • 您正在链接到具有 EC2 实例的示例。 AWS Batch 隐藏部署详细信息。如果你想点击链接,那么你需要 EC2,而不是 Batch。
  • 那么本地进程和作业之间就没有办法通信了吗?通过存储似乎比 ssh 或套接字连接慢得多。
  • AWS Batch 是否支持能够在内存中来回发送数据的消息队列?
  • 您的代码在实例上的 docker 容器中运行,您没有 ssh 访问权限。您可以尝试 EFS (aws.amazon.com/efs) 在作业之间共享文件系统。
  • 所以这就是我感到困惑的地方。为什么user guide 反复提到 SSH 连接 AWS Batch 容器实例?

标签: r amazon-web-services amazon-ec2 aws-batch


【解决方案1】:

在这里发帖以防万一这对某人有帮助。该实例应显示在您的 ec2 控制台中的“正在运行的实例”下。您应该能够使用那里指定的公共 IP 地址。确保您已将批处理作业配置为使用您的 ec2 密钥对和正确的用户名(亚马逊 linux 2 的 ec2-user)。例如。 ssh -i "your_keypair.pem" ec2-user@XX.XXX.XX.XXX.

【讨论】:

  • 谢谢!有什么方法可以从 AWS API 获取该 IP 地址?想要构建可以在后台通过 ssh 进入批处理作业的自动化工具。
  • 你应该可以使用这个api了。我不太熟悉它,但是获取 IP 地址的 cli 命令是这样的:aws ec2 describe-instances \ --filters \ "Name=instance-state-name,Values=running" \ "Name=instance-id,Values=<instance-id>" \ --query 'Reservations[*].Instances[*].[PrivateIpAddress, PublicIpAddress]' \ --output text
猜你喜欢
  • 2021-03-11
  • 2020-09-17
  • 2021-05-02
  • 2018-09-20
  • 2022-01-04
  • 2018-06-17
  • 2018-08-15
  • 2022-01-26
  • 1970-01-01
相关资源
最近更新 更多