【问题标题】:What to use AWS Fargate or AWS Beanstalk使用什么 AWS Fargate 或 AWS Beanstalk
【发布时间】:2019-10-01 03:50:21
【问题描述】:

我有一个 Java 应用程序,它从 SQS 队列中读取数据并进行一些业务处理,最后将其写入数据存储区。随着 SQS 队列的增长,我希望能够扩展以读取更多消息并处理它们。每条 SQS 消息将需要大约 15 到 20 分钟来处理。我正在寻找像 AWS Fargate 或 AWS Beanstalk 这样的服务来部署我的应用程序。钱不是问题,但可用性是。最好的平台是什么?

【问题讨论】:

  • 您是否也考虑使用 AWS Lambda?唯一的潜在问题是 Lambda 函数最多只能运行 15 分钟。您的应用程序是否受到 CPU、磁盘或内存的限制? (也就是说,什么能让它跑得更快?)
  • 抱歉,每条 SQS 消息都需要 15 到 20 分钟来处理。我们已经尝试过 Lambda,我们的进程也遇到了 3 GB 的内存限制。

标签: amazon-web-services amazon-elastic-beanstalk aws-fargate


【解决方案1】:

我有一个与此非常相似的用例,我使用了 Batch。 (在 2014 年提出问题时不可用)

https://aws.amazon.com/batch/

就我而言,我正在处理队列中的音频和视频文件。

您可以设置一个 lambda 以在 SQS 队列上触发,然后将该作业放到批处理中进行处理。

如果您将最小集群大小设置为零,那么当没有工作要做时,您将不会运行任何服务器,但您可以让它们自动扩展,以便在工作进入时处理您需要的尽可能多的工作。

与 lambda 相比的优势在于,执行的代码可以是任何容器,只要你想投入多少资源就可以。

对于您的用例来说,这将是完美的,但对于可以在几秒钟或一分钟内完成处理的任何事情,值得让每个作业处理多个任务,否则每次执行或所有时间都将用于启动和关闭下容器。

【讨论】:

    【解决方案2】:

    Fargate 将是一个理想的解决方案,因为它与 Beanstalk 相比具有以下优势:

    1. 它是无服务器的
    2. 对自定义应用程序架构进行更细粒度的控制。
    3. 无需编写 EB 扩展。
    4. 在本地构建和测试映像并将其推广到 Fargate。
    5. 借助应用程序自动缩放,您可以随时随地进行缩放。
    6. 按秒计费,最少 1 分钟

    常见问题解答: https://aws.amazon.com/fargate/faqs/

    定价: https://aws.amazon.com/fargate/pricing/

    【讨论】:

      猜你喜欢
      • 2020-10-20
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 1970-01-01
      • 1970-01-01
      • 2019-02-20
      • 2013-11-14
      • 2018-06-21
      相关资源
      最近更新 更多