【问题标题】:Running multiple instances of the same application on a single machine in the cloud在云中的单台机器上运行同一应用程序的多个实例
【发布时间】:2017-04-26 20:53:59
【问题描述】:

我有一个工作应用程序(非面向 Web),它处理来自 AWS SQS 的一些作业。我想运行这个应用程序的多个实例,但使用不同的命令行参数(最终可能有 30 个进程),所以:

myApp arg1 arg2
myApp arg3 arg4

我的基础架构需求非常基本,但我特别希望应用程序的每个实例都满足

  1. 出现故障时自动重启
  2. 进行某种基本监控 + 日志检索
  3. 支持 git 自动部署
  4. 在专用 IP 上运行

托管这个的最佳基础设施是什么?亚马逊生态系统中的首选,但不是必需的。

在亚马逊:

  • Amazon Kinesis + Amazon Lambda 不支持专用 IP 部分
  • Amazon EC2 + CodeDeploy 然后我可以在 EC2 映像上配置 UpStart 或其他东西以保持进程处于活动状态?
  • Amazon EC2 Container Service (ECS) 可以为每个进程运行一个 docker 容器。我目前认为这是我最好的选择。

不是亚马逊:

  • Heroku 支持可以轻松运行每个进程的“进程类型”,但这需要每个进程一个“dyno”。这似乎最终是 25 美元/进程,无法扩展。

我只是在寻求想法。在亚马逊没有太多经验。还有哪些其他基础设施选项特别适合解决这个问题?

【问题讨论】:

    标签: amazon-web-services heroku amazon-ecs


    【解决方案1】:

    Docker 或 rkt 是您的解决方案。您可以在一个 EC2 实例中启动并运行。请记住,您的应用程序实例的数量将受到 AWS 为每种实例类型允许的 IP 地址数量的限制。

    看看http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI 可以拥有多少个 IPv4 和 IPv6 地址。 如果您需要更多,请提前要求 AWS 支持增加限制。

    【讨论】:

    • 是的,Amazon ECS 服务是基于 docker 的。我正朝着那个方向前进。关于 IP 限制的要点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多