AWS CodeDeploy
User Guide (API Version 2014-10-06)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

在 AWS CodeDeploy 中尝试使用示例蓝/绿部署

本部分将指导您完成使用 示例部署向导 对一个或多个 Amazon EC2 实例部署修订所需的步骤,然后运行蓝/绿部署,以将部署组中的原始实例组 (原始环境) 替换为一组不同的实例 (替换环境)。

启动向导

启动向导:

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CodeDeploy 控制台:https://console.www.amazonaws.cn/codedeploy

    注意

    使用您在入门中使用的相同账户或 IAM 用户信息进行登录。

  2. 如果显示介绍页面,请选择 Get Started Now。如果显示 Applications 页面,请在 More info 中,选择 示例部署向导

步骤 1:开始使用

选择 Sample deployment,然后选择 Next

步骤 2:选择部署类型

选择 Blue/green deployment,然后选择 Next

步骤 3:创建蓝/绿部署

Step 3: Create blue/green deployment 页面上,我们提供了您进行蓝/绿部署需要的大多数组件的默认值。

  1. 在以下字段中接受或更改任意默认名称:

    注意

    由于这些字段有不同的验证要求,因此为了节约时间,我们建议保留示例部署的默认名称。

    字段 描述
    应用程序名称 一个充当容器的名称,可确保使用正确的部署选项组合部署正确的内容。
    部署组名称 表示要部署到的实例组的名称。
    Auto Scaling 组名称 将为部署环境预置 Amazon EC2 实例的 Auto Scaling 组的名称。
    负载均衡器名称 Elastic Load Balancing 中的 Classic Load Balancer,用于将流量路由至部署环境中的实例。
    服务角色名称 服务角色的名称,该角色将为 AWS CodeDeploy 提供在部署过程中访问其他 AWS 服务所需的权限。
  2. Key pair name 下拉列表中,选择将用于连接到 Amazon EC2 实例的 Amazon EC2 实例密钥对。

    注意

    要创建 Amazon EC2 实例密钥对,请按照使用 Amazon EC2 创建密钥对。请确保在 AWS General Reference 中的区域和终端节点中列出的某个区域中创建密钥对。新的 Amazon EC2 实例密钥对可能不会显示在 Key pair name 下拉列表中,直至您重新启动向导。

  3. 选择 Launch environment

  4. 在环境准备就绪后,查看 Congratulations! Your environment is ready 下的详细信息。

    注意

    为便于以后参考,我们建议您将 Congratulations! Your environment is ready 区域中的整个文本复制到计算机上的文件中。

    • 为您创建的 Classic Load Balancer 的名称,例如 BlueGreenLoadBalancer-abcdefh

    • 为您的原始环境创建的 Auto Scaling 组的名称,例如 CodeDeployBGStack-abcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56

    • 在您的原始环境中部署的应用程序的 Web 地址,例如 http://BlueGreenLoadBalancer-abcdefh-1234567890.us-east-1.elb.amazonaws.com

      重要

      现在,我们建议您在不同的浏览器窗口中打开您的 Web 应用程序,以便稍后可以刷新它来查看蓝/绿部署期间所做的背景颜色更改。

    • 用于创建环境的 AWS CloudFormation 堆栈的名称,例如 BlueGreenLoadBalancer-abcdefh。当您准备好从示例蓝/绿部署中清除资源后,将使用 AWS CloudFormation 控制台删除此堆栈。

    • 将在原始环境中安装的示例应用程序的位置,例如:

      https://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip

  5. 选择 Start blue/green deployment

步骤 4:监控蓝/绿部署

Deployment 页面上,您可以以控制面板格式查看蓝/绿部署的进度。

Deployment progress 区域报告部署中四个主要步骤的进度:

  • 在替换环境中预置实例。

  • 在替换环境中安装新应用程序修订。

  • 将流量重新路由到替换环境。

  • 在原始环境中终止实例。

Instances receiving traffic 区域报告在原始环境和替换环境中目前向负载均衡器注册的实例的计数。

Deployment details 区域列出有关在替换环境中安装的部署和应用程序修订的识别信息。

Instance activity 区域提供有关原始环境和替换环境中的每个实例的详细信息。

步骤 5:刷新 Web 应用程序窗口

在您之前打开了安装在原始环境中的应用程序的视图的浏览器窗口中 (例如 http://BlueGreenLoadBalancer-abcdefh-1234567890.us-east-1.elb.amazonaws.com),选择浏览器的 Refresh 按钮。

如果网页的背景颜色从蓝色变为绿色,则表示流量已成功从我们在 步骤 3:创建蓝/绿部署 中为您创建的实例路由到在 步骤 4:监控蓝/绿部署 的过程中创建的替换实例。

步骤 6:清除示例资源

要避免将来收费,您必须清除本向导中使用的资源。必须按以下顺序清除资源:

  • 替换环境的实例所属的 Auto Scaling 组。(删除 AWS CloudFormation 堆栈时,与原始环境中的实例关联的 Auto Scaling 组也将被删除。)

  • 示例部署向导 创建的用于为蓝/绿部署提供原始环境的 AWS CloudFormation 堆栈。

  • 示例部署向导 创建的 AWS CodeDeploy 部署组和应用程序。

删除替换环境的 Auto Scaling 组

您将在 Amazon EC2 控制台中看到两个与示例蓝/绿部署关联的 Auto Scaling 组。为了避免错误,请确保在此步骤中删除与替换环境关联的 Auto Scaling 组。您可以按 Auto Scaling 组的格式来区分它们:

  • 删除使用此格式的 Auto Scaling:

    CodeDeploy_BlueGreenDemoFleet-9zyxwvut_d-ZY9XWVUTS8R

  • 您可以立即删除使用此格式的 Auto Scaling 组,也可以让它随着 AWS CloudFormation 堆栈的删除而被删除:

    CodeDeployBGStack-abcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56

  1. 打开 Amazon EC2 控制台 https://console.amazonaws.cn/ec2/

  2. 在导航窗格中的 Auto Scaling 下,选择 Auto Scaling Groups

  3. Auto Scaling 组页面上,选中为替换环境创建的 Auto Scaling 组旁边的框。例如:

    CodeDeploy_BlueGreenDemoFleet-9zyxwvut_d-ZY9XWVUTS8R

    Actions 菜单中选择 Delete

  4. 当系统提示进行确认时,选择 Yes, Delete

删除 AWS CloudFormation 堆栈

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台:https://console.amazonaws.cn/cloudformation/

  2. 选中为蓝/绿部署创建的堆栈旁边的框。例如:

    CodeDeployBGStack-abcdefh-BlueGreenAutoScalingGroup-1IJKLMN234O56

    Actions 菜单中选择 Delete Stack

  3. 在系统提示时,选择 Yes, Delete。在 Amazon EC2、AWS Identity and Access Management、Amazon VPC 和 Elastic Load Balancing 中为此部署创建的其余资源将被删除。

删除 AWS CodeDeploy 蓝/绿部署资源记录

  1. 登录 AWS 管理控制台并通过以下网址打开 AWS CodeDeploy 控制台:https://console.www.amazonaws.cn/codedeploy

    注意

    使用您在入门中使用的相同账户或 IAM 用户信息进行登录。

  2. 如果未显示 Applications 页,请在 AWS CodeDeploy 菜单上选择 Applications

  3. Applications 页面上,选择要删除的应用程序,例如 BlueGreenDemoApplication

  4. Application details 页面上的 Deployment groups 中,选择要删除的部署组旁边的按钮,例如 BlueGreenDemoFleet-1abcdef。在 Actions 菜单上,选择 Delete。在系统提示时,键入部署组的名称以确认要删除此部署组,然后选择 Delete

  5. Application details 页的底部,选择 Delete application

  6. 在系统提示时,键入应用程序的名称,然后选择 Delete

    有关应用程序及其关联的部署组、修订和部署的所有记录将被删除。