AWS 部署和管理相关知识点。
只有针对 AWS Certified Solutions Architect - Professional (SAP-C02) 认证补充的内容,基础请参考针对 SAA-03 的考点汇总:AWS 知识点 - 部署和管理
实操请参考:AWS 实操 - 部署和管理
Elastic Beanstalk 部署策略
一、Elastic Beanstalk 部署策略基本概念

二、一次部署全部 (All at once) 策略

- ⚠ 执行部署时,环境中的所有实例将短时间禁用(有停机时间)
- ⚠ 应用程序更新失败时,只能通过手动部署之前的旧版本进行回滚
三、滚动部署 (Rolling) 策略

四、附加批次滚动部署 (Rolling with additional batch) 策略

- ⭐ 新启动额外的新实例进行部署保证服务容量,并在部署完成后删除
五、不可变部署 (Immutable) 策略

- ⭐ 由于需要通过健康状况检查,新的实例才会替换旧的实例,因此这是生产环境的核心业务的首选之一
- ⚠ 仍然使用旧的弹性扩展组,这与使用新的扩展组替换旧扩展组的
蓝/绿部署 (Blue/green deployments)不同。
AWS CodeDeploy
一、AWS CodeDeploy 基本概念

二、使用 CodeDeploy 部署 EC2

三、使用 CodeDeploy 部署 Auto-Sacling Group (ASG) 中的实例

就地部署 (In-place deployments):更新当前ASG中所有的EC2实例蓝/绿部署 (Blue/green deployments)- 根据之前的配置创建一个新的
ASG - ⭐ 必须使用
ELB(负载均衡器) - 可以进行配置如何处理旧的实例
- 根据之前的配置创建一个新的
四、使用 CodeDeploy 部署 Lambda

- 可以设置
CloudWAtch Alarms实现自动回滚 - ⭐
SAM (Serverless Application Model)原生使用CodeDeploy进行部署 - 流量转移 (Traffic Shifting) 前通过 Pre-Traffic Hook 进行验证,转移后通过 Post-Traffic Hook 进行验证
五、使用 CodeDeploy 部署 ECS

AWS Service Catalog
一、AWS Service Catalog 基本概念


- ⭐ 可以通过
Service Catalog预先定义资源的模板,供其他用户快速启动 AWS 资源,来实现组织的一致性以及满足合规性要求
二、AWS Service Catalog 管理员及用户流程

Serverless Application Model (SAM)
一、Serverless Application Model (SAM) 基本概念

- ⭐
SAM可以帮助在本地运行Lambda函数、DynamoDB表和 API 网关等无服务器应用 SAM通过 YAML 配置,是CloudFormation的扩展
二、SAM 的 CI/CD 架构

AWS CodePipeline是一项持续交付服务,可用于对发布软件所需的步骤进行建模、可视化和自动化
AWS 部署方式对比及总结
一、部署方式总结

EC2的 User DataAMIAuto Scaling组的启动模板和启动配置(可以基于AMI)CodeDeploy(部署应用程序)Elastic Beanstalk(适合刚开始使用 AWS 的公司)OpsWorksSAM是基于CloudFormation的扩展,同时使用CodeDeploy进行部署,是集成度更高的针对无服务器应用的部署方式