如何在 EC2 上远程执行带有命令行参数的程序(java 程序)?

How to execute a program with command line arguments on EC2 remotely (java program)?

我想从 java 代码启动一个 EC2 实例并在该 EC2 实例上执行 python 代码。

  1. 使用 python 控制台应用程序创建自定义 AMI
  2. 使用来自 java 应用程序的 AMI 启动 EC2 实例
  3. 使用来自 java 代码的不同命令行参数启动 python 程序的多个实例。

我做了一些分析,我可以使用 python 代码创建 AMI 并启动 EC2 实例,但我正在寻找一种方法来使用命令行参数启动 python 程序的多个实例。

基本上我想构建一个可扩展的系统,它将启动 EC2 实例并根据要求启动多个 python 进程,并在工作完成后删除 EC2 实例。

更新:虽然接受的答案是正确的,但还有另一种方法可以使用 JSCH java 库使用 ssh 隧道远程执行脚本,这里是 Gist 示例代码

这可用于与启用 SSH 服务的非 AWS 机器通信。

您可以使用 AWS Systems Manager 在远程 EC2 实例上调用 shell 命令。

  1. 在 AWS SSM 中创建一个调用 shell 命令的文档。
  2. 创建一个 EC2 角色,允许 SSM 代表您在 EC2 实例上 运行 命令。
  3. 将该角色附加到该实例并等待该实例在 SSM 中进入 Managed Instance
  4. 运行 该实例上的 SSM 文档来自 Java。