- 管理与监管›
- AWS Auto Scaling›
- 常见问题
AWS Auto Scaling 常见问题
一般性问题
问:什么是 AWS Auto Scaling?
AWS Auto Scaling 是一种新型 AWS 服务,它能够轻松、安全地扩展多种 AWS 资源,帮助您在优化应用程序性能的同时实现基础设施成本节约。该产品简化了扩展体验,让您只需单击几次即可扩展用于支持应用程序的相关资源集合。AWS Auto Scaling 可以帮助您跨支持应用程序的完整基础设施堆栈配置一致、协调的扩展策略。AWS Auto Scaling 将遵循您选定的扩展策略根据需要自动扩展资源,以便您保持性能并仅为实际需要的资源付费。
问:AWS Auto Scaling 的优势是什么?
AWS Auto Scaling 让您能够快速轻松地优化应用程序的性能和成本。
- 快速设置扩展:AWS Auto Scaling 可以为所有为您的应用程序提供支持的可扩展资源提供统一的扩展方式。您可以通过单一直观的界面查看所有可扩展资源的平均利用率,并快速为每组相似资源定义目标利用率级别。
- 制定明智的扩展决策:借助 AWS Auto Scaling,您能够自动确定不同资源组如何响应需求变化。易于理解的扩展策略让您可以选择优化可用性和成本,或者平衡可用性与成本。AWS Auto Scaling 可以根据您的偏好自动创建所有扩展策略并设置目标。
- 自动维持性能:AWS Auto Scaling 会持续监控支持您的应用程序的资源,确保它们以您期望的性能水平运行。出现需求高峰时,AWS Auto Scaling 可以自动增加受限资源的容量,让您保持高质量的服务。
- 预计成本并避免超支:AWS Auto Scaling 可以帮助您优化使用 AWS 产品时的利用率和成本效率,因此您只需为实际需要的资源付费。当需求下降时,AWS Auto Scaling 将自动删除任何多余的资源容量,避免您超支。
问:何时应使用 AWS Auto Scaling?
如果您有应用程序使用一个或多个可扩展资源且存在可变负载,则应该使用 AWS Auto Scaling。在一天中接收可变流量的电子商务 Web 应用程序是一个不错的示例。它采用的是标准三层架构,其中 Elastic Load Balancing 用于分发传入流量,Amazon EC2 用于计算层,DynamoDB 用于数据层。在该示例中,AWS Auto Scaling 将扩展支持应用程序的一个或多个 EC2 Auto Scaling 组和 DynamoDB 表来响应需求曲线。
问:如何开始使用 AWS Auto Scaling?
AWS Auto Scaling 允许您根据资源标签或 AWS CloudFormation 堆栈选择应用程序。只需单击几次,您就可以为应用程序创建扩展计划,该计划定义了应该如何扩展应用程序中的各项资源。对于各项资源,AWS Auto Scaling 会为相应资源类型的最热门指标创建目标跟踪扩展策略,并使该指标保持在基于选定扩展策略的目标值。要为资源指标设定目标值,您可以从三种预定义的扩展建议(优化可用性、优化成本或平衡可用性与成本)中进行选择。或者,如果您愿意,您可以定义自己的目标值。AWS Auto Scaling 还会自动设定资源的最小/最大值。
扩展选项
问:我可以通过哪些不同的方式来扩展 AWS 资源?
AWS 客户可以使用多个选项扩展资源。Amazon EC2 Auto Scaling 可帮助您确保拥有适量的 Amazon EC2 实例来处理您的应用程序负载。EC2 Auto Scaling 还可以检测到实例何时运行状况不佳并终止实例,然后启动新实例以替换它。当您使用 EC2 Auto Scaling 时,您应用程序的容错能力和可用性将会更高,您也可以更好地管理成本。
要扩展 EC2 以外的资源,您可以使用 Application Auto Scaling API,该 API 允许您定义扩展策略以自动扩展 AWS 资源,或者安排一次性或循环的扩展操作。Application Auto Scaling 可以扩展 Amazon ECS 服务、Amazon EC2 Spot 队列、Amazon EMR 集群、Amazon AppStream 2.0 队列、Amazon DynamoDB 表和全局二级索引的预置读写容量、Amazon Aurora 副本以及 Amazon SageMaker 终端节点变体。
要为跨多项服务的多个资源配置自动扩展,请使用 AWS Auto Scaling 为支持应用程序的资源创建扩展计划。AWS Auto Scaling 还用于为 EC2 资源创建预测性扩展。
问:何时应使用 AWS Auto Scaling 与Amazon EC2 Auto Scaling?
您应该使用 AWS Auto Scaling 来管理跨多项服务的多个资源的扩展。借助 AWS Auto Scaling,您可以使用预定义的扩展策略为多个 EC2 Auto Scaling 组或其他资源定义动态扩展策略。与通过单个服务控制台管理每个资源的扩展策略相比,使用 AWS Auto Scaling 为应用程序中的所有可扩展资源配置扩展策略会更快,同时也更加轻松,因为 AWS Auto Scaling 包含可简化扩展策略设置的预定义扩展策略。如果您想为 EC2 资源创建预测性扩展,也应该使用 AWS Auto Scaling。
如果您只需要扩展 Amazon EC2 Auto Scaling 组,或只想维持 EC2 队列的运行状况,则应该使用 EC2 Auto Scaling。如果您需要创建或配置 Amazon EC2 Auto Scaling 组,或者需要设置计划或分步扩展策略(因为 AWS Auto Scaling 仅支持目标跟踪扩展策略),也应该使用 EC2 Auto Scaling。
必须在 AWS Auto Scaling 之外创建和配置 EC2 Auto Scaling 组,例如通过 EC2 控制台、Auto Scaling API 或 CloudFormation。AWS Auto Scaling 可帮助您为现有的 EC2 Auto Scaling 组配置动态扩展策略。
问:何时应使用 AWS Auto Scaling 与Auto Scaling?
您应该使用 AWS Auto Scaling 来管理跨多项服务的多个资源的扩展。AWS Auto Scaling 支持对多个资源进行统一扩展,并具有预定义的指导,有助于您更轻松、更快地配置扩展。如果您愿意,也可以选择使用单个服务控制台、Auto Scaling API 或 Application Auto Scaling API 来扩展单项 AWS 服务。如果您想要设置分步扩展策略或计划扩展,也应该使用单个控制台或 API,因为 AWS Auto Scaling 仅可创建目标跟踪扩展策略。
问:什么是预测式扩展?
预测式扩展是 AWS Auto Scaling 的一项功能,它可以查看历史流量模式并预测未来的流量模式,以便在适当的未来时间里安排更改 EC2 实例的数量。预测式扩展使用机器学习模型来预测每日和每周的模式。
通过预测式扩展增强的 Auto Scaling 可提供更快、更简单、更准确的容量预置,从而降低成本并提高应用程序响应速度。通过预测流量变化,预测式扩展在更改流量之前会预置 EC2 实例,提高 Auto Scaling 速度和准确性。
问:预测式扩展可以与哪些服务结合使用?
此时,预测式扩展只能为 EC2 实例生成计划。
问:如何将预测式扩展与目标跟踪结合使用?
预测式扩展与目标跟踪结合使用,可使您的 EC2 容量更改更快地响应您的传入应用程序流量。尽管预测式扩展会根据预测的流量为您的应用程序设置最小容量,但目标跟踪会根据当前的实际流量更改实际容量。目标跟踪用于跟踪不同流量条件下所需的容量利用率水平,并解决不可预测的流量峰值和其他波动。用户将预测式扩展和目标跟踪一同进行配置,以生成扩展计划。
问:什么是扩展计划?
扩展计划是多个 AWS 资源的扩展指令集合。您可以通过首先在 AWS Auto Scaling 中选择应用程序底层的所有 EC2 资源来配置扩展计划。然后,选择要跟踪的资源利用率指标,例如 CPU 利用率,并设置要跟踪的值,例如 50%。最后,选择代表输入流量的 CloudWatch 指标。如果尚未设置,则可能需要进行设置。
资源利用率指标和传入流量指标是扩展计划的重要参数。预测式扩展使用传入流量指标生成流量预测。根据这些预测,预测式扩展会安排未来的扩展操作以配置最小容量。动态扩展使用资源利用率指标及其目标值,随流量的变化动态更改应用程序的 EC2 容量。
问:是否可以在不使用预测式扩展的情况下配置扩展计划?
是的,您可以仅使用动态扩展并选择退出预测式扩展来配置扩展计划。反之,您也可以在未配置动态扩展的情况下启用预测式扩展。
问:预测式扩展需要多少历史数据才能生成扩展计划?
预测式扩展最多需要两周的历史数据,但也可以只使用一天的数据量生成预测式扩展计划。
问:预测式扩展可以预测未来多久的流量?
预测式扩展每隔 24 小时预测未来 48 小时的流量,并针对这 48 小时安排容量变化。
问:我是否可以配置预测式扩展,以在实际流量高峰到来之前预置实例?
是的,您可以选择配置缓冲时间,以便在预测的流量变化之前的某个时间预置实例。这对于一些应用程序来说非常有用,因为这些应用程序的 EC2 实例在其准备好为应用程序流量服务之前需要一些“预热”时间。
问:预测式扩展如何收费?
与其他 Auto Scaling 功能一样,使用预测式扩展无需付费。您需要为运行应用程序所用的资源付费。
问:AWS Auto Scaling 与各项服务的扩展功能有何不同?
下表比较了 AWS 的各个扩展选项。
AWS Auto Scaling |
Amazon EC2 Auto Scaling |
Auto Scaling Auto Scaling |
|
---|---|---|---|
可扩展的资源 | EC2 Auto Scaling 组 EC2 Spot 队列 ECS 服务 DynamoDB 表和 GSI 的预置容量 Aurora 副本 |
EC2 Auto Scaling 组 | EC2 Spot 队列 ECS 服务 DynamoDB 表和 GSI 的预置容量 Aurora 副本 EMR 集群 Appstream 2.0 队列 Sagemaker 终端节点变体 |
扩展方式 | 使用统一界面的应用程序级扩展 |
一次扩展一个 Auto Scaling 组 | 一次扩展一个资源 |
预测式扩展 | 是(仅限 EC2) | 否 | 否 |
自动发现应用程序中的 所有可扩展资源 |
是 | 否 | 否 |
能够使用统一界面扩展跨多项服务的多个资源 | 是 | 否 |
否 |
设置扩展策略的 指导和建议 |
是 | 否 | 否 |
能够创建和设置 Auto Scaling 组 |
否 | 是 |
不适用 |
能够仅将 Auto Scaling 用于 EC2 队列管理 |
否 | 是 | 不适用 |
设置智能的自我优化式 目标跟踪扩展策略* |
是 | 是 | 是 |
设置计划的扩展操作 | 否 | 是 | 是 |
设置分步扩展策略 | 否 | 是 |
是 |
为每个资源配置具有不同指标和阈值的扩展策略 | 否 | 是 | 是 |
*与分步扩展策略相比,建议设置这种扩展策略
功能
问:我可以使用 AWS Auto Scaling 扩展哪些资源?
您可以使用 AWS Auto Scaling 通过单个统一界面为应用程序中的以下资源设置扩展:
- Amazon EC2 Auto Scaling 组
- Amazon Elastic Container Service (ECS) 服务(目前无法使用资源标签发现 ECS 服务)
- Amazon EC2 Spot 队列
- Amazon DynamoDB 吞吐容量
- Amazon Aurora 的 Aurora 副本
问:AWS Auto Scaling 如何提供扩展建议?
AWS Auto Scaling 基于最热门的扩展指标和用于 Auto Scaling 的阈值来提供扩展建议。它还提供关于资源最小和最大规模的建议,以推荐用于扩展的安全防护措施。这样一来,您可以快速入门,然后随着时间推移优化扩展策略。
问:如何在 AWS Auto Scaling 中选择应用程序堆栈?
您可以选择 AWS CloudFormation 堆栈或根据共同的资源标签选择资源。请注意,目前无法使用标签发现 ECS 服务。
问:AWS Auto Scaling 如何发现可以扩展的资源?
AWS Auto Scaling 将扫描您选定的 AWS CloudFormation 堆栈或带指定标签的资源来识别可扩展的受支持 AWS 资源类型。请注意,目前无法使用标签发现 ECS 服务。
可用性和定价
问:AWS Auto Scaling 可以在哪些区域使用?
AWS Auto Scaling 现已在以下地区推出:亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(悉尼)、加拿大(中部)、美国西部(加利福尼亚北部)、欧洲(伦敦)、欧洲(法兰克福)、欧洲(巴黎)、欧洲(米兰)、美国东部(弗吉尼亚)、美国东部(俄亥俄)、美国西部(俄勒冈)、欧洲(爱尔兰)和亚太地区(新加坡)。
问:AWS Auto Scaling 是如何收费的?
与面向单个 AWS 服务的 Auto Scaling 类似,AWS Auto Scaling 的使用是免费的。AWS Auto Scaling 由 Amazon CloudWatch 启用,因此将针对 CloudWatch 和应用程序资源(例如 Amazon EC2 实例、Elastic Load Balancing 负载均衡器等)收取服务费用。