REL07-BP01 在获取或扩展资源时利用自动化 - 可靠性支柱

REL07-BP01 在获取或扩展资源时利用自动化

在替换被损坏的资源或扩展您的工作负载时,通过采用托管 AWS 服务(如 Amazon S3 和 AWS Auto Scaling)对流程进行自动处理。您还可以使用第三方工具和 AWS 开发工具包自动扩展。

托管 AWS 服务包括 Amazon S3、Amazon CloudFront、AWS Auto Scaling、AWS Lambda、Amazon DynamoDB、AWS Fargate 和 Amazon Route 53。

AWS Auto Scaling 让您可以检测与替换被破坏的实例。它还可以帮助您为资源制定扩展计划,包括 Amazon EC2 实例和 Spot 队列、 Amazon ECS 任务、 Amazon DynamoDB 表和索引,以及 Amazon Aurora 副本。

在扩展 EC2 实例时,请确保您使用多个可用区(最好至少三个)并增加或减少容量以保持这些可用区之间的平衡。ECS 任务或 Kubernetes 容器组(pod)(使用 Amazon Elastic Kubernetes Service 时)也应分布在多个可用区中。

如果使用 AWS Lambda,实例会自动扩展。每次收到关于您的函数的事件通知时,AWS Lambda 会快速找到其计算队列中的可用容量,然后运行您的代码至分配的并发值。您需要确保在特定的 Lambda 上,以及在您的Service Quotas中配置必要的并发值。

Amazon S3 会自动扩展以处理较高的请求速率。例如,您的应用程序可以在存储桶中为每个前缀每秒至少发送 3500 个 PUT/COPY/POST/DELETE 或 5500 个 GET/HEAD 请求。存储桶中的前缀数量没有限制。您可以通过并行化读取提高您的读取或写入性能。例如,如果在 Amazon S3 存储桶中创建 10 个前缀以便对读取进行并行化,您可以将读取性能扩展至每秒 55000 个读取请求。

配置和使用 Amazon CloudFront 或受信任的内容分发网络(CDN,Content Delivery Network)。CDN 可以缩短最终用户的响应时间,并从缓存中为请求提供内容,从而减少扩展工作负载的请求。

常见反模式:

  • 实施 Auto Scaling 组进行自动修复,但无法实施弹性。

  • 使用 Auto Scaling 响应流量激增。

  • 部署高状态应用程序,消除了部署弹性选项。

建立此最佳实践的好处: 自动化可以避免部署和淘汰资源时的潜在手动错误。自动化可以避免由于缓慢响应部署或淘汰需求而导致的服务超支和拒绝服务风险。

未建立此最佳实践暴露的风险等级:

实施指导

  • 配置和使用 AWS Auto Scaling。它会监控您的应用程序,并自动调整容量来维持稳定、可预测的性能,并且成本最低。使用 AWS Auto Scaling,您可以跨多个服务为多个资源轻松设置应用程序扩展。

  • 使用 Elastic Load Balancing。负载均衡器可以按路径或网络连接分配负载。

  • 使用高度可用的 DNS 提供商。使用 DNS 名称,用户可以输入名称而不是 IP 地址来访问您的工作负载,并将该信息分发到指定的范围内,通常面向全局范围内工作负载的所有用户。

    • 使用 Amazon Route 53 或可信 DNS 提供商。

    • 使用 Route 53 管理 CloudFront 分配和负载均衡器。

      • 确定要管理的域和子域。

      • 使用 ALIAS 或 CNAME 记录来创建适当的记录集。

  • 使用 AWS 全球网络可优化用户与应用程序之间的路径。AWS Global Accelerator 持续监控应用程序端点的运行状况,可在 30 秒内将流量重定向到运行状况良好的端点。

    • AWS Global Accelerator 是一项可帮助本地或全球用户提高应用程序可用性和性能的服务。它提供的静态 IP 地址可用作从单个或多个 AWS 区域 区域(例如 Application Load Balancers、网络负载均衡器或 Amazon EC2 实例)访问应用程序端点的固定入口点。

  • 配置和使用 Amazon CloudFront 或受信任的内容分发网络(CDN,Content Delivery Network)。内容分发网络可以缩短最终用户的响应时间,还可以对可能导致工作负载进行不必要扩展的内容请求做出响应。

    • 什么是 Amazon CloudFront?

      • 针对您的工作负载配置 Amazon CloudFront 分配,或者使用第三方 CDN。

        • 您可以通过在端点安全组或访问策略中使用 CloudFront 的 IP 范围,将对工作负载的访问限制为只能从 CloudFront 访问。

资源

相关文档: