【问题标题】:Rule of Thumb for AWS ECS Service Memory or CPU requirementsAWS ECS 服务内存或 CPU 要求的经验法则
【发布时间】:2019-10-24 03:26:23
【问题描述】:

我正在使用 AWS ECS 来部署我的网站。现在我想知道-

  1. 是否有任何经验法则或任何方法来确定服务的内存或 CPU 大小?
  2. 或者有什么方法可以确定集群的 EC2 系列实例?
  3. 使用 Fargate 而不是 EC2 是否更好地节省成本?
  4. 在 AWS ECS 中使用自动缩放的更好方法是什么?

我有两个任务定义 -

  1. 提供 html、css、JS(前端服务器)的 Web 服务器
  2. 微服务(后端服务器)

【问题讨论】:

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


    【解决方案1】:
    1. 实际上以一些代表性负载运行服务。使用 top(1) 之类的工具进行观察,它可以告诉您实际内存使用情况(在 top 中,查找 rssrsz 列)和 CPU 利用率。任何给定服务的资源利用率都非常依赖于语言选择、​​运行时、负载、并发性、算法决策、数据库约束……而且确实没有经验法则。

    2. 匹配您实际测量的资源利用率、一些假设的部署计划和AWS EC2 instance types listing。如果您有 4 个服务,每个服务需要 1 个完整的 CPU 内核和 1 GB 的 RAM,并且您希望每个服务运行 3 个副本,那么您总共需要 12 个内核和 12 GB 的 RAM;如果您希望将其分布在 3 台主机上,则 3 个 c5.xlarge 实例可为您提供 12 个内核和 24 GB 的 RAM。

    3. 一般而言,托管 AWS 服务并不比您自己在裸 EC2 实例上运行相同的服务便宜。对于 Fargate,计划任务的 CPU 小时和 GB 小时为 priced。在撰写本文时,我在上面描述的假设工作量在us-east-1 中每小时花费大约 0.54 美元;对于EC2 on-demand usage,3 个 c5.xlarge 实例的成本为每小时 0.51 美元(如果您能够承诺购买预留实例,这将变得更便宜)。如果您的工作负载非常突发,那么调度和取消调度 ECS 任务可能比 EC2 实例更容易,并且 Fargate 定价模型可能更适合您。

    4. ECS 文档有 a tutorial on setting up CloudWatch and an auto-scaling group to automatically expand a cluster。缩小规模有点棘手(您需要 set the instance to drain,等待任务实际移动,然后取消配置它)。

    5. 如果您处于全 AWS 环境中,请考虑使用 hosting static content directly in S3。这可能比运行专用服务器更便宜且更易于管理。

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2017-07-12
      • 2021-02-23
      • 2020-06-01
      • 1970-01-01
      • 2021-07-09
      • 2020-09-06
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多