Amazon Elastic Container Service (ECS)允许开发人员在Amazon Elastic Compute Cloud (EC2)或Amazon Fargate上大规模运行容器。ECS是一种容器编排服务,用于管理容器集群,包括容器生命周期、高可用性、存储和网络等方面。
除了所使用的EC2实例、EBS存储卷或Fargate虚拟cpu (vcpu)和存储的常规成本之外,使用ECS没有额外的成本。我们将解释如何在EC2、Fargate和使用Amazon Outposts运行ECS时进行定价,并提供一些优化ECS成本的技巧。
这是我们系列文章的一部分AWS定价.
运行和支付Amazon ECS有三种模式:通过Amazon EC2、AWS Outposts或Amazon Fargate。
当您以EC2启动类型运行Amazon ECS时,ECS服务不收取额外费用。您需要为使用的AWS资源付费,例雷竞技rabet官网如EC2实例和EBS卷。没有最低费率或预先承诺。
亚马逊EC2实例有五种支付方式:按需、保留实例、现货实例和储蓄计划。第五个选项是专用主机,它在专用物理服务器上提供EC2实例容量。
AWS Outposts是一项完全托管的服务,将AWS云基础设施服务、api和工具扩展到内部部署。用户可以像在云中一样,使用AWS控制台、CLI或SDK在AWS Outposts上启动EC2实例并运行应用程序。您可以通过位于云中的Amazon ECS控制平面在AWS Outposts上控制Amazon ECS的定价。EC2容量的服务费,您可以使用EC2容量运行容器实例,而不会产生额外的成本。
该服务提供各种AWS Outposts配置选项,这些选项将资源集中在一起,包括EC2实例、EBS卷和S3。雷竞技rabet官网这些配置特性的定价包括安装、交付、升级、软件补丁和基础设施服务维护。
AWS Fargate是一种无服务器容器服务,仅在需要时启动容器,然后将其关闭。Amazon ECS任务可以在Fargate上运行,您根据任务实际运行的时间向Fargate支付费用,四舍五入到最接近的秒。
计费依据:
例如,目前美国东部地区Amazon ECS的Fargate现货实例的成本是每vcpu小时0.01302749美元和每gb小时0.00143051美元官方定价页面最新价格)。
假设在某一周内,您运行了以下ECS工作负载:
| 任务数量 | 小时数 | vcpu成本+ RAM成本 | ||
| 10 | * | 2.3 | * | ((1 * $0.01302749) + (2 * $0.00143051)) |
这里有一些技巧可以用来优化ECS的使用并节省成本。
ECS运行在Fargate现货实例上,让您节省高达70%的常规按需价格。在Service Auto Scaling策略中,您可以指定一定数量的任务在任何时候都应该运行(在按需模式下),其余的任务可以在可用的情况下在现场实例上运行。
您应该注意,现场实例是最不可靠的,这就是Amazon将它们推荐给无状态或容错应用程序的原因。在使用Fargate Spot实例时,Amazon不提供任何SLA,并且可以随时中断实例,从而限制了这些实例对于关键任务工作负载的价值。
然而,NetApp的Spot提供了一种使用Spot实例可靠地运行容器化应用程序的解决方案。海洋Spot的无服务器容器引擎提供企业级SLA,甚至允许关键任务、生产工作负载在Spot实例上运行,而没有中断风险。
Ocean使用先进的人工智能技术,可以在终止前一小时预测闲置产能中断(AWS的标准警告时间为两分钟),并主动替换濒危实例。如果没有满足工作负载需求的可用实例,Ocean会自动提供按需实例,确保工作负载的连续性。
ECS和Fargate的自动伸缩策略可用于成本优化。您应该通过了解应用程序的基准性能来调整自动扩展配置,并确保集群仅在真正需要时才进行扩展。
例如,一个应用程序可以根据CPU利用率有效地扩展,而另一个应用程序可以根据磁盘利用率有效地扩展。不同的应用程序有不同的阈值。
调度ECS实例是一种节省成本的简单方法。例如,如果一个系统是由员工使用的,那么在周末或下班时间关闭它是有意义的。另一种选择是自动化批调度,根据需要在实例上运行的作业数量运行实例。您可以使用在ECS和Fargate中都可用的计划伸缩配置来调度ECS工作负载。
现货实例是节省ECS的好方法,但它们也不太可靠。克服这个问题的一个有趣方法是依赖多种定价模型。例如,为关键的管理组件运行随需应变的实例,并为其他对故障容忍度更高的应用程序组件运行指定实例。
您可以使用Amazon Spot Fleet创建包括现货实例和按需实例的自动伸缩组。当给定实例类型和投标价格的现货实例不可用时,自动伸缩组也会使用按需实例。
然而,自动提供具有正确配置的实例通常需要自定义模板和脚本。创造这些内容需要花费大量时间,并且需要专业知识。
使用NetApp Spot的Ocean,当用户需要部署工作负载或扩展应用程序时,他们不必担心配置正确的基础设施。Ocean根据应用程序需求自动提供现货、按需和保留实例的最佳组合,并优先使用现货实例以节省成本。但是,如果有未使用的预留实例可用,Ocean将首先使用这些预付实例。
您可以使用多个负载均衡器目标组特性将一个ECS服务附加到多个目标组。这样可以简化代码,并通过整合服务降低成本。
例如,使用多个目标组,您可以运行一个ECS服务,从内部和外部负载均衡器接收流量。否则,您将不得不为内部请求维护一个服务副本,为外部请求维护另一个副本。
正确的大小是保存云资源的关键技术。雷竞技rabet官网在Kubernetes中,您可以通过指定每个pod中容器可用资源的限制来执行正确的大小。雷竞技rabet官网使用kube-resource-report这样的工具来可视化实际利用率,并在以下方面取得平衡:
来自NetApp Spot的Ocean通过将CPU和内存需求与实际利用率进行比较,提供自动的适当大小建议。这种比较有助于改进资源配置,避免节点供应过多或不足。
您可以将标签应用到Amazon ECS和Fa雷竞技rabet官网rgate中的资源,包括服务、任务、集群和容器。这允许你:
虽然上述策略为优化ECS提供了重要的机会,但使用它们并不简单。为了高效地配置自动缩放和正确的大小,您将需要详细的监控和严格的测试。此外,使用现场实例带来了重大的操作挑战。
NetApp的Spot自动化了这些功能,作为Ocean的一部分,Ocean旨在利用云计算基础设施的定价、生命周期、性能和可用性: