创建 AWS CodeDeploy 应用程序

我们将使用 AWS CodeDeploy 自动将 PHP 应用程序部署到 EC2 服务器中。但 CodeDeploy 从哪里获取要部署的文件呢?它会从 S3 存储桶中获取。但我们的解决方案代码是如何进入 S3 的?我们将告诉 Bitbucket Pipelines 将代码上传到 S3!我们将在本章稍后部分介绍这一点:

image 2023 10 24 17 15 37 858
Figure 1. Figure 10.16 – CodeDeploy flow

请按照以下步骤设置 AWS CodeDeploy,一旦我们的所有自动化测试都通过,我们的 Bitbucket CI 管道就会触发该操作:

  1. AWS 控制台中,搜索 CodeDeploy 服务并单击 创建应用程序 按钮:

    image 2023 10 24 17 17 42 793
    Figure 2. Figure 10.17 – Creating the CodeDeploy application
  2. 在 CodeDeploy 向导中,在 “应用程序配置” 部分中使用您想要的任何名称。 然后,在 计算平台 字段中,选择 EC2/本地选项并单击创建应用程序按钮:

    image 2023 10 24 17 18 56 191
    Figure 3. Figure 10.18 – Application configuration section

    您将被重定向到 CodeDeploy 应用程序 页面。

  3. 接下来,单击 创建部署组 按钮:

    image 2023 10 24 17 19 55 033
    Figure 4. Figure 10.19 – The Create deployment group button

    在部署组名称部分中,使用您想要的任何名称。在此示例中,我将使用 codedeploy_group1

    image 2023 10 24 17 20 46 506
    Figure 5. Figure 10.20 – Deployment group wizard – group name
  4. 接下来,在服务角色(Service role)部分中,选择我们在本章前面创建的 IAM 角色:

    image 2023 10 24 17 21 43 065
    Figure 6. Figure 10.21 – Deployment group wizard – IAM role
  5. 接下来,在环境配置部分,选中 Amazon EC2 实例复选框。然后,在标签组部分,添加我们之前创建的 EC2 实例名称,即 tddphp-instance1。这一点非常重要。这样我们就可以告诉 CodeDeploy,我们要在这个特定实例中部署应用程序。如果还想部署到其他实例,可以在此处添加更多标签:

    image 2023 10 24 17 22 56 812
    Figure 7. Figure 10.22 – Deployment group wizard – EC2 instance details
  6. 接下来,在负载均衡器部分中,取消选中启用负载均衡复选框,然后单击创建部署组按钮:

    image 2023 10 24 17 23 42 961
    Figure 8. Figure 10.23 – Deployment group wizard – Load balancer

伟大的!这就是 AWS 控制台中的 CodeDeploy 配置。接下来,我们需要进入刚刚创建的 EC2 实例并安装一些我们需要的应用程序,以便它能够连接到 CodeDeploy,并且我们能够运行 Docker 容器。