使用什么AWS Fargate或AWS Beanstalk

时间:2019-05-14 07:21:50

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

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

2 个答案:

答案 0 :(得分:0)

Fargate将是理想的解决方案,因为它比Beanstalk具有以下优点:

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

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

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

答案 1 :(得分:0)

我有一个非常相似的用例,并且使用了Batch。 (2014年问这个问题时不可用)

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

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

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

如果将最小群集大小设置为零,那么在无工作要做时就不会有服务器在运行,但是您可以让它们自动扩展以处理作业进来时所需的工作量。 / p>

与lambda相比,优点是执行的代码可以是任何具有您想扔给它的资源的容器。

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