将代码部署至虚拟机

在本教程中,您将了解如何将应用程序代码部署至 AWS 上的虚拟机。您将使用 AWS CodeDeploy (一种自动将代码部署至 AWS 或本地服务器的服务) 将代码部署至使用 Amazon EC2 创建和管理的虚拟机。 

在本教程中完成的所有操作均符合免费套餐条件。

管理 AWS 资源

登录控制台

您需要创建键前缀,以使用 Amazon EC2 访问虚拟机。如果已经有键前缀,请跳至步骤 2。


a. 当您单击此处时,AWS 管理控制台将在新的浏览器窗口中打开,因此您可以将本分步指南保持打开状态。单击 Create Key Pair

tmt-codeDeploy-20

(单击以缩放)

tmt-codeDeploy-20

b. 命名键前缀。在本教程中,我们将其命名为 MyFirstKey。 单击 Create

注意:Amazon EC2 使用公有密钥密码加密和解密登录信息。要了解有关键前缀的更多信息,请参阅 Amazon EC2 键前缀

tmt-codeDeploy-19

(单击以缩放)

tmt-codeDeploy-19

a. 单击 AWS 管理控制台左上角的主页图标。找到 Developer Tools 下面的 CodeDeploy,然后单击以打开 AWS CodeDeploy 控制台。

tmt-codeDeploy-0

(单击以缩放)

tmt-codeDeploy-0

b. 在 AWS CodeDeploy 控制台中,单击 Get Started Now

如果您已经有应用程序,请找到合适的列,然后单击 Create Deployment Walkthrough

tmt-codeDeploy-1

(单击以缩放)

tmt-codeDeploy-1

c. 选择 Sample Deployment,然后单击 Next Step

tmt-codeDeploy-2

(单击以缩放)

tmt-codeDeploy-2

您需要启动一个 AWS 虚拟机来部署代码。AWS 虚拟机也称为 Amazon EC2 实例,或简称“实例”。在本步骤中,我们将使用预配置的 EC2 模板启动三个 EC2 实例。


您将使用以下选项配置实例设置:

  • Operating System:您可以选择 EC2 实例的操作系统。在本教程中,我们将使用 Amazon Linux
  • Instance Type:在本教程中,t1.micro 实例的类型已经选择为默认值,以确保在免费套餐范围内。Amazon EC2 提供多种经过优化,适用于不同使用案例的实例类型以供选择。实例类型包含由 CPU、内存、存储和网络容量组成不同的组合,可让您灵活地为您的应用程序选择适当的资源组合。
  • Key Pair Name:从下拉列表中,选择您在步骤 1 中创建的 Amazon EC2 实例键前缀 MyFirstKey,以连接到 Amazon EC2 实例。您也可以选择已有的键前缀。
  • Tag Key and Value:AWS CodeDeploy 将在部署期间使用此标签键和值来查找实例。您可以保留默认值。

单击 Launch Instances

注意:该步骤可能需要几分钟才能完成。在等待过程中,您可以观看以下视频随时回顾本教程:

codeDeploy_video
2:10
AWS CodeDeploy 演练
tmt-codeDeploy-4

(单击以缩放)

tmt-codeDeploy-4

AWS CodeDeploy 在代码部署期间使用应用程序名称以确保引用的部署组件正确,如部署组、部署配置和应用程序修订版。


a. 在 Application Name 框中,输入 HelloWorld 作为示例应用程序的名称,然后单击 Next Step

tmt-codeDeploy-5

(单击以缩放)

tmt-codeDeploy-5

b. 查看应用程序修订版信息,比如其位置和描述。

注意:您可以选择下载示例数据包。在此视图中,您可以查看要部署到 EC2 的应用程序修订版信息。应用程序修订版是包含源内容 (如源代码、网页、可执行文件和部署脚本) 以及应用程序规范文件 (AppSpec文件) 的存档文件。AppSpec 文件可帮助 CodeDeploy 将修订版中的源文件映射到其目标,并在部署的各个阶段运行脚本。

单击 Next Step

tmt-codeDeploy-7

(单击以缩放)

tmt-codeDeploy-7

部署组是 CodeDeploy 用于部署修订版的一组单独 EC2 实例。部署组中包含单独标记的实例和/或 Auto Scaling 组中的 Amazon EC2 实例。


在“Deployment Group Name”框中,保留建议的部署组名称 (DemoFleet)。

然后,您将在 Seach by Amazon EC2 Tags 部分中输入键值前缀,以指定要部署的 Amazon EC2 实例:

  • 应使用步骤 3 中的值自动填充 KeyValue 列。
  • Instances 列显示了您将要部署代码的目标 EC2 实例的数量。在本教程中,我们已经启动和预配置了三个 EC2 实例,并且这些实例已经被标记在一起组成了一个部署组。

选择 Next Step

tmt-codeDeploy-8

(单击以缩放)

tmt-codeDeploy-8

在本步骤中,您将授予 AWS CodeDeploy 向实例进行部署的权限。要向服务 (如 Amazon EC2 或 AWS CodeDeploy) 授予权限时,请创建适用于 AWS 服务的角色。这些服务可以访问 AWS 资源,因此您可创建角色以确定允许服务对这些资源执行的操作。


Service Role:选择 Create a new service role。如果已经有服务角色,您可以选择 Use an existing service role

Role Name:您可以接受默认值 CodeDeploy_HelloWorld。如果使用现有服务角色,请从“Role Name”下拉列表中选择。

单击 Next Step

tmt-codeDeploy-9

(单击以缩放)

tmt-codeDeploy-9

在本步骤中,我们将选择部署配置,然后启动三个 EC2 实例的部署。本步骤结束后,我们将成功部署一个活动的运行网站,并且可以在线访问。


a. 部署配置可让您确定同时将应用程序修订版部署到多少个实例,并描述部署是成功还是失败。例如,使用默认配置 (“One at a Time”),如果您要将应用程序部署到 3 个实例,该配置将每次部署到一个实例。

接受 Default Deployment Configuration,然后单击 Next Step

tmt-codeDeploy-10

(单击以缩放)

tmt-codeDeploy-10

b. 查看部署的详细信息,然后单击 Deploy Now

注意:这可能需要几分钟时间才能完成。

tmt-codeDeploy-11

(单击以缩放)

tmt-codeDeploy-11

c. 我们的示例修订版为每个实例部署一个网页。三个实例都部署完毕后,单击 View All Instances

tmt-codeDeploy-14

(单击以缩放)

tmt-codeDeploy-14

d. 单击您部署到的其中一个实例的实例 ID。此操作会将您带到 EC2 控制面板,您可以在这里查看启动的实例。

tmt-codeDeploy-15

(单击以缩放)

tmt-codeDeploy-15

e. 要验证您的示例应用程序是否部署成功,请复制底部面板“Public DNS”字段中的地址,将该地址粘贴到浏览器中,您将看到活动网页。

tmt-codeDeploy-21

(单击以缩放)

tmt-codeDeploy-21

为避免将来收费,您必须清除本教程中使用的资源。除非终止,否则您在本教程中启动的 EC2 实例将一直运行。


a. 在 EC2 控制台中,搜索栏会自动填充“Instance ID”搜索筛选条件。删除此筛选条件,您将看到 CodeDeploy 启动的所有实例。 

tmt-codeDeploy-16a

(单击以缩放)

tmt-codeDeploy-16a

b. 选中要终止的每个 Amazon EC2 实例的框。依次选择“Actions”、“Instance State”,然后单击 Terminate

出现提示时,单击 Yes, Terminate

tmt-codeDeploy-18a

(单击以缩放)

tmt-codeDeploy-18a

您已经使用 AWS CodeDeploy 成功创建并完成了到 Amazon EC2 实例的第一个代码部署。通过使用提供的模板,您首先启动了三个预配置了适当标签的实例,并安装了使用 AWS CodeDeploy 所需的代理。最后,您准备了用于部署的应用程序,授予了 CodeDeploy 部署到实例的权限,然后成功部署了代码。

现在,您已经完成了使用 AWS CodeDeploy 到 Amazon EC2 实例的示例部署,接下来,您可以开始了解如何在自己的应用程序中使用 CodeDeploy。请访问 CodeDeploy 文档,了解如何启动 EC2 实例,然后配置实例,以便 CodeDeploy 可以向其部署代码。我们在教程中简化了这些配置步骤,以帮助您了解和体验 CodeDeploy 的工作原理。

了解如何配置 AWS CodeDeploy 实例