通过AWS自动扩展服务优化性能并降低成本

  • 来源:网络
  • 更新日期:2020-07-10

摘要:充分利用AWS Cloud平台的最佳方法之一就是自动扩展,它既免费又易于实施。自动缩放可提供更好的容错能力,更好的可用性和更好的成本管理。当任何基础结构组件的运行状况都不足

充分利用AWS Cloud平台的最佳方法之一就是自动扩展,它既免费又易于实施。自动缩放可提供更好的容错能力,更好的可用性和更好的成本管理。当任何基础结构组件的运行状况都不足以满足请求时,自动缩放功能会检测到该问题并将其替换为运行状况良好的组件。通过这种方式,自动缩放可快速扩展和缩小以满足流量需求,同时将成本保持在预算之内。

自动缩放可帮助组织:

1.按需满足流量需求并相应扩展。 2.通过对自动伸缩组执行计划的操作来调整伸缩组容量。 3.在不需要时减少资源并节省成本。 4.通过跨可用区进行部署来提高应用程序的可用性。

借助AWS,有多种服务可帮助自动扩展基础架构组件并减少与扩展相关的管理。它们通过CloudWatch(AWS监视和可观察性服务)进行中介,该服务提供数据和可操作的见解来监视您的应用程序和基础架构,并响应系统范围的性能变化和资源利用。例如,CloudWatch最多提供一秒钟的指标可见性,15个月的数据保留(指标)以及对指标执行计算的能力。例如,这允许数字工程团队执行历史分析,例如成本优化。在指定的指标之上,团队可以创建警报并警报触发自动扩展策略以执行预定义的步骤,以进行横向扩展或纵向扩展。

AWS Cloud Platform上的自动扩展服务

1. EC2实例自动扩展

EC2实例自动缩放可帮助我们保持正确数量的EC2实例可用于处理应用程序的传入流量请求。我们可以创建一个EC2自动扩展组,该组是EC2实例的集合。在该组中,我们可以指定一个最小值,以确保该组永远不会低于指定的大小。我们还可以指定EC2实例的最大数量,以确保该组永远不会超过指定的大小。这样可将容量保持在最小和最大范围内,并确保自动伸缩组具有以所需容量指定的EC2实例。自动缩放还允许我们配置计划的操作,这些操作可以在指定时间更改最小,最大和所需的自动缩放组容量。

EC2实例自动缩放允许配置缩放策略,该策略将根据策略增加或减少以增加或减少基础架构中的EC2实例。

扩展有两种类型:手动(其中我们可以从自动扩展组附加和分离EC2实例)和动态扩展(动态扩展),其中我们可以定义如何根据传入的请求或变化的需求来扩展自动扩展组的容量。特定资源利用率。这样,我们就可以配置可以扩展和缩减的策略,并根据策略针对诸如请求数,CPU和内存使用率等因素进行操作。

以下是三种类型的动态扩展策略。

目标跟踪–此策略将基于特定指标的目标值来增加或减少自动扩展组的当前所需容量。此策略保持了与指定目标指标(例如CPU或内存利用率)相匹配的能力。假设您已将自动扩展组的利用率设置为60%,则目标跟踪策略将添加或删除EC2实例以满足指定的利用率。分步扩展–此策略基于一组扩展调整(EC2实例)来增加或减少自动扩展组的当前容量,该扩展调整根据警报违规的大小而变化。假设自动扩展组具有三个阶段来跟踪CPU利用率:第一个警报将在达到40%时触发,并将添加一个EC2实例,第二个警报将在达到60%且添加两个EC2实例时触发,第三个当添加三个EC2实例时,达到80%。Simple Scaling –这是一个简单的缩放策略选项,可基于单个缩放调整来增加或减少当前自动缩放组的容量。在此处,当指定的警报违反时,我们可以添加一个EC2实例。EC2自动伸缩提供按需实例伸缩和现货机队实例自动伸缩,在此我们可以根据需求自动增加或减少现货机队的当前容量。它可以在指定范围内启动(缩小)或终止(放大)。

2. ECS容器服务自动扩展

弹性容器服务(ECS)自动扩展适用于容器发布的CloudWatch指标,例如CPU和内存使用率。它会自动增加或减少ECS服务中所需的容器任务容量。您可以使用CloudWatch指标扩展(添加更多任务)以处理大量传入请求,并在低利用率时扩展(删除任务)。

通过ECS Auto Scaling,我们可以配置策略,例如目标跟踪,逐步扩展和计划的扩展操作。

3. RDS存储自动缩放

适用于MariaDB,MySQL,PostgreSQL,SQL Server和Oracle的Amazon Relational Database Services(RDS)支持存储自动扩展,停机时间为零,RDS存储自动扩展可自动扩展连接到RDS数据库的后端存储量,以响应不断增长的数据库大小。

RDS监视当前存储消耗,并在当前消耗接近实际预配置大小时扩大存储容量,而不会影响当前数据库操作和干扰当前数据库横断面。

4. Aurora自动缩放

AWS Aurora自动缩放会动态调整Aurora副本的数量。您可以定义缩放策略,并且Aurora会采取相应的措施。它可以扩展Aurora副本以应对数据库连接性或工作负载的突然增加。随着数据库连接或工作负载减少,Aurora Auto Scaling会自动删除不需要的Aurora副本,这意味着不会向客户收取不需要的副本实例的费用。

就像我们能够在其他服务中定义扩展策略一样,我们也可以在Aurora Auto Scaling中定义它们,这还允许我们配置可以管理的Aurora副本的最小和最大数量。Aurora Auto Scaling可用于Aurora引擎MySQL和PostgreSQL。

5. DynamoDB自动扩展

DynamoDB工作负载中最困难的部分是预测读写容量单位。如果应用程序在特定时期内需要高吞吐量,则不必一直都过度配置容量单位。Amazon DynamoDB Auto Scaling代表您动态调整已调配的吞吐量,以响应实际的传入流量请求模式。

随着工作负载的减少,应用程序自动扩展会减少预配置的吞吐量容量单位,因此客户无需为任何不必要的容量付费。

使用DynamoDB Auto Scaling,我们可以在表或全局二级索引上创建缩放策略。我们可以在扩展策略中指定是否要扩展读取容量或写入容量(两者),以及表或索引的最小和最大预配置容量单位设置。

准备好基础架构以实现自动扩展

为了使这些AWS自动伸缩服务正常运行,组织需要确保它们具有:

1.使用EC2实例时指定的应用程序用户会话状态和持久性。 2.测试,监视和调整其自动缩放策略,以确保其按预期运行。 3.制定决策逻辑,可以根据预定义的阈值或时间表评估这些指标,并确定是横向扩展还是纵向扩展。 4.在配置自动缩放之前,要使用特定于服务的限制。 5.在使用EC2自动缩放时,该团队已指定了冷却时间,要启动哪个应用程序并准备在规定的时间内提供服务。

新网箭头云服务器