AWS CodeDeploy
User Guide (API 版本 2014-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

步骤 1:创建和配置 Auto Scaling 组

在此步骤中,您将创建一个包含单个 Amazon Linux、RHEL 或 Windows Server Amazon EC2 实例的 Auto Scaling 组。在后面的步骤中,您将指示 Auto Scaling 再添加一个 Amazon EC2 实例,并且 AWS CodeDeploy 将向其中部署您的修订。

创建和配置 Auto Scaling 组 (CLI)

  1. 调用 create-launch-configuration 命令以创建 Auto Scaling 启动配置。

    在调用此命令之前,您需要适用于本教程的 AMI 的 ID (由占位符 image-id 表示)。您还需要 Amazon EC2 实例密钥对的名称 (由占位符 key-name 表示) 才能访问 Amazon EC2 实例。最后,您需要有关安装最新版本的 AWS CodeDeploy 代理的说明。

    AWS CodeDeployTo 获取适用于本教程的 AMI 的 ID:

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

    2. 在导航窗格中的 Instances 下,选择 Instances,然后选择 Launch Instance

    3. Choose an Amazon Machine Image 页的 Quick Start 选项卡上,记下 Amazon Linux AMIRed Hat Enterprise Linux 7.1Ubuntu Server 14.04 LTSMicrosoft Windows Server 2012 R2 旁的 AMI 的 ID。

      注意

      如果您拥有与 AWS CodeDeploy 兼容的 AMI 自定义版本,则在此选择它,而不用浏览 Quick Start 选项卡。有关将自定义 AMI 用于 AWS CodeDeploy 和 Auto Scaling 的信息,请参阅将自定义 AMI 用于 AWS CodeDeploy 和 Auto Scaling

    对于 Amazon EC2 实例密钥对,使用 Amazon EC2 实例密钥对的名称。

    要在您的开发计算机上安装最新版本的 AWS CodeDeploy 代理,请创建一个包含以下内容的名为 instance-setup.sh (适用于 Amazon Linux、Ubuntu Server 或 RHEL Amazon EC2 实例) 或 instance-setup.txt (适用于 Windows Server Amazon EC2 实例) 的文件。

    注意

    如果您拥有与 AWS CodeDeploy 兼容的 AMI 自定义版本,则无需创建 instance-setup.shinstance-setup.txt 文件。

    在 Amazon Linux 和 RHEL Amazon EC2 实例上

    对于 中国(北京)区域:

    #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-cn-north-1.s3.cn-north-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 中国 (宁夏) 区域:

    #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-cn-northwest-1.s3.cn-northwest-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    在 Ubuntu Server Amazon EC2 实例上

    对于 中国(北京)区域:

    #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget https://aws-codedeploy-cn-north-1.s3.cn-north-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 中国 (宁夏) 区域:

    #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget https://aws-codedeploy-cn-northwest-1.s3.cn-northwest-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    在 Windows Server Amazon EC2 实例上

    对于 中国(北京)区域:

    <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName aws-codedeploy-cn-north-1/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell>

    对于 中国 (宁夏) 区域:

    <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName aws-codedeploy-cn-northwest-1/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell>

    调用 create-launch-configuration 命令。

    在本地 Linux, OS X, or Unix 计算机上:

    重要

    Be sure to include file:// before the file name. It is required in this command.

    aws autoscaling create-launch-configuration \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --image-id image-id \ --key-name key-name \ --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile \ --instance-type t1.micro \ --user-data file://path/to/instance-setup.sh

    在本地 Windows 计算机上:

    重要

    Be sure to include file:// before the file name. It is required in this command.

    aws autoscaling create-launch-configuration --launch-configuration-name CodeDeployDemo-AS-Configuration --image-id image-id --key-name key-name --iam-instance-profile CodeDeployDemo-EC2-Instance-Profile --instance-type t1.micro --user-data file://path/to/instance-setup.txt

    注意

    如果您拥有与 AWS CodeDeploy 兼容的 AMI 自定义版本,则在上述命令中省略 --user-data 选项。

    这些命令根据指定的映像 ID 创建名为 CodeDeployDemo-AS-Configuration 的 Auto Scaling 启动配置,同时应用指定的 IAM 实例配置文件和 Amazon EC2 实例密钥对,并运行命令以安装最新版本的 AWS CodeDeploy 代理。此启动配置基于 t1.micro Amazon EC2 实例类型。

  2. 调用 create-auto-scaling-group 命令以创建 Auto Scaling 组。您将需要 AWS General Reference区域和终端节点所列区域之一中的某个可用区的名称 (由占位符 availability-zone 表示)。

    注意

    要查看区域中的可用区列表,请调用:

    aws ec2 describe-availability-zones --region region-name

    例如,要查看美国西部(俄勒冈)区域中的可用区列表,请调用:

    aws ec2 describe-availability-zones --region us-west-2

    有关区域名称标识符的列表,请参阅各区域的资源工具包存储桶名称

    在本地 Linux, OS X, or Unix 计算机上:

    aws autoscaling create-auto-scaling-group \ --auto-scaling-group-name CodeDeployDemo-AS-Group \ --launch-configuration-name CodeDeployDemo-AS-Configuration \ --min-size 1 \ --max-size 1 \ --desired-capacity 1 \ --availability-zones availability-zone

    在本地 Windows 计算机上:

    aws autoscaling create-auto-scaling-group --auto-scaling-group-name CodeDeployDemo-AS-Group --launch-configuration-name CodeDeployDemo-AS-Configuration --min-size 1 --max-size 1 --desired-capacity 1 --availability-zones availability-zone

    这些命令基于名为 CodeDeployDemo-AS-Configuration 的 Auto Scaling 启动配置创建一个名为 CodeDeployDemo-AS-Group 的 Auto Scaling 组。此 Auto Scaling 组只有一个在指定可用区中创建的 Amazon EC2 实例。

  3. CodeDeployDemo-AS-Group 调用 describe-auto-scaling-groups 命令:

    aws autoscaling describe-auto-scaling-groups --auto-scaling-group-names CodeDeployDemo-AS-Group --query "AutoScalingGroups[0].Instances[*].[HealthStatus, LifecycleState]" --output text

    请在返回的值显示 HealthyInService 之后继续。

创建和配置 Auto Scaling 组(控制台)

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

  2. 在全局导航栏中,确保选中 AWS General Reference区域和终端节点中列出的某个区域。Auto Scaling 资源与您所指定的区域相关联,并且 AWS CodeDeploy 仅在选定区域中受支持。

  3. 在导航栏中的 Auto Scaling 下,选择 Launch Configurations

  4. 选择 Create launch configuration

  5. Choose AMI 页的 Quick Start 选项卡上,在 Amazon Linux AMIRed Hat Enterprise Linux 7.2Ubuntu Server 14.04 LTSMicrosoft Windows Server 2012 R2 Base 旁选择 Select

    注意

    如果您拥有已安装 AWS CodeDeploy 代理的 AMI 自定义版本,则改为在此选择该版本。有关将自定义 AMI 用于 AWS CodeDeploy 和 Auto Scaling 的信息,请参阅将自定义 AMI 用于 AWS CodeDeploy 和 Auto Scaling

  6. Choose Instance Type 页上保留默认值,然后选择 Next: Configure details

  7. Configure details 页上的 Name 中,键入 CodeDeployDemo-AS-Configuration。在 IAM role 中,选择您之前创建的 IAM 实例配置文件 (CodeDeployDemo-EC2-Instance-Profile)。

    展开 Advanced Details,然后在 User data 中键入以下内容。

    注意

    如果您使用的是已安装 AWS CodeDeploy 代理的 AMI 自定义版本,请跳过此步骤。

    对于 Amazon Linux 和 RHEL Amazon EC2 实例

    对于 中国(北京)区域:

    #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-cn-north-1.s3.cn-north-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 中国 (宁夏) 区域:

    #!/bin/bash yum -y update yum install -y ruby cd /home/ec2-user curl -O https://aws-codedeploy-cn-northwest-1.s3.cn-northwest-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 Ubuntu Server Amazon EC2 实例

    对于 中国(北京)区域:

    #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget https://aws-codedeploy-cn-north-1.s3.cn-north-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 中国 (宁夏) 区域:

    #!/bin/bash apt-get -y update apt-get -y install ruby apt-get -y install wget cd /home/ubuntu wget https://aws-codedeploy-cn-northwest-1.s3.cn-northwest-1.amazonaws.com.cn/latest/install chmod +x ./install ./install auto

    对于 Windows Server Amazon EC2 实例

    对于 中国(北京)区域:

    <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName aws-codedeploy-cn-north-1/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell>

    对于 中国 (宁夏) 区域:

    <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName aws-codedeploy-cn-northwest-1/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell>

    保留其余默认值,然后选择 Skip to review

  8. Review 页上选择 Create launch configuration

    注意

    在生产环境中,建议您限制对 Amazon EC2 实例的访问。有关更多信息,请参阅有关保护您的 EC2 实例的提示

  9. Select an existing key pair or create a new key pair 对话框中,选择 Choose an existing key pair。在 Select a key pair 下拉列表中,选择您在前面步骤中创建或使用的 Amazon EC2 实例密钥对。选择 I acknowledge that I have access to the selected private key file (key-file-name.pem), and that without this file, I won't be able to log into my instance,然后选择 Create launch configuration

  10. 选择 Create an Auto Scaling group using this launch configuration

  11. Configure Auto Scaling group details 页上的 Group name 中,键入 CodeDeployDemo-AS-Group。在 Group size 中,保留默认值。在 Availability Zone(s) 框中,选择 AWS General Reference区域和终端节点所列区域之一中的一个可用区。保留其余默认值,然后选择 Next: Configure scaling policies

    注意

    如果 Launch into EC2-Classic 不显示在 Network 列表中,而且您不能选择默认的 Virtual Private Cloud (VPC),则请选择或创建 VPC 和子网。有关更多信息,请参阅您的 VPC 和子网

  12. 2. Configure scaling policies 页上,保留 Keep this group at its initial size 为选中状态,然后选择 Next: Configure Notifications

  13. 跳过配置通知的步骤,然后选择 Review

  14. 选择 Create Auto Scaling group,然后选择 Close

  15. 在导航栏中,在 Auto Scaling Groups 处于选中状态的情况下,选择 CodeDeployDemo-AS-Group,然后选择 Instances 选项卡。请在 InService 的值出现在 Lifecycle 列中并且 Healthy 的值出现在 Health Status 列中之后继续。