概览
本指南介绍如何在不使用负载均衡器的情况下为后端或队列处理工作负载实施金丝雀部署。通过使用 AWS CodePipeline,您可以编排一个工作流程,首先将金丝雀版本部署到低容量服务实例进行测试,然后将其传播到高容量服务实例以完成部署。此外,您还可以使用 AWS 监控功能和警报来自动启动回滚,从而在对应用程序部署新变更时更好地实施安全部署。
重要:本指南要求使用 AWS CodeCommit,新客户不再可用。AWS CodeCommit 的现有客户可以继续照常使用和部署本指南。
工作原理
此架构图显示了如何在没有负载均衡器的情况下为亚马逊弹性容器服务 (Amazon ECS) 中的后端或队列处理工作负载实施金丝雀部署。
Well-Architected 支柱
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
CodePipeline 和 CodeBuild 可自动执行 CI/CD 流程,用于构建和部署新代码变更。本指南部署了 A mazon ECS 和 AWS Fargate 的变更,这些完全托管的无服务器服务可帮助您减轻运营开销任务,例如升级、修补和扩展各种计算资源。
本指南中的所有服务均使用 AWS 身份和访问管理 (IAM) 进行身份验证和授权。IAM 角色和策略可授予短期访问凭证,保护 AWS 资源,并管理访问权限。通过将 IAM 策略限定在所需的最低权限范围内,您可以限制对资源的未经授权访问。
本指南默认在多个可用区(AZ)部署 Amazon ECS 和 Fargate 任务、Amazon SQS 队列和 Lambda 函数,帮助您实现高可用性。此外,Amazon SQS 队列实现了应用程序组件之间的解耦,而 DLQ 则可以捕获任何处理故障,以便进行调查和重试。
本指南使用的所有服务都是无服务器服务,因此您无需预置或管理服务器即可运行代码,而且只需为使用量付费。CodeBuild 提供按需计算能力,按代码构建持续时间计费,而 CodePipeline 则按每月管道数量计费。此外,CodeBuild 负责构建应用程序代码。应用程序自动扩缩会自动调整集群中运行的 Amazon ECS 和 Fargate 任务的数量,以满足需求,从而最大限度地降低总体计算成本。此外,您还可以选择 ARM64 CPU 架构、竞价型容量和计算类节省计划,以进一步降低计算成本。例如,如果工作负载可以容忍中断,则可以使用 Fargate Spot 。
本指南使用无服务器服务,您无需预置或管理服务器即可运行代码。这些服务可以根据您的工作负载进行扩展,从而避免过度预置资源,最终减少碳足迹。例如,应用程序自动扩缩可自动调整运行的 Amazon ECS 和 Fargate 任务数量,以满足需求,从而最大限度地减少计算量。您还可以在 ARM64 架构上运行 Fargate,以进一步降低功耗。
实施资源
免责声明
找到今天要查找的内容了吗?
请提供您的意见,以便我们改进网页内容的质量。