gpt4 book ai didi

amazon-web-services - 我可以在自动扩展时使用 AWS code Deploy 提取应用程序代码吗?

转载 作者:行者123 更新时间:2023-12-03 01:36:43 24 4
gpt4 key购买 nike

我想在负载变高时自动扩展基础架构。我在 AWS 上运行我的基础设施。我有一个要求,当发生自动缩放时,我需要从Github提取应用程序代码。由于代码频繁更改,我们无法获取 AMI 并从该 AMI 启动实例。所以我想从存储库中提取最新的代码。 AWS 刚刚推出了一项名为 AWS CodeDeploy 的服务。 如何使用此服务在实例启动时自动执行提取代码的过程?

附注我编写了一个init脚本来自动附加一个EIP,将该IP列入不同安全组的白名单,并将实例置于负载均衡器下当实例在自动缩放中终止时,实例将启动并撤销所有内容。

最佳答案

CodeDeploy 是解决您问题的绝佳方案。如果配置正确,它可以自动部署到由 Autoscaling 启动的新 EC2 实例。要实现此功能,您需要三件事:

  1. 一个 Auto Scaling 组,用于启动安装并运行最新主机代理的实例。
  2. 配置为部署到 Auto Scaling 组的 Code Deploy 部署组(作为 Auto Scaling 组,而不是通过标签)。
  3. 自动部署到新实例的目标修订版。如果没有目标修订,Code Deploy 将看到实例启动,但不会部署任何内容。

这是一个可帮助您入门的教程:Tutorial: Using AWS CodeDeploy to Deploy an Application to an Auto Scaling Group 。该教程将引导您完成安装了代理的 AMI 并设置部署组以将代码部署到新实例。

如果您确实烘焙了预安装代理的 AMI,则需要使用代理版本定期更新该镜像。安装代理后,它将自行更新,但如果 Code Deploy 不再支持代理版本,Auto Scaling 可能会导致实例启动失败。对于实际生产使用,我建议不要烘焙 AMI,而是在实例启动时安装最新的代理。 (教程应该很快就会更新以使用此方法。)

您可以将实例设置为在启动时自动下载并运行最新的安装程序。本质上,您在创建 Auto Scaling 组时粘贴 shell 脚本作为用户数据。

例如,我在 Amazon Linux 上测试了以下脚本(取自 Set Up a New Amazon EC2 Instance to Work with AWS CodeDeploy ):

#!/bin/bash
yum -y update
yum install -y aws-cli
cd /home/ec2-user
aws s3 cp s3://aws-codedeploy-us-east-1/latest/install . --region us-east-1
chmod +x ./install
./install auto

当您创建 Auto Scaling 组时,您应该能够将其作为用户数据粘贴到其中。对于 Auto Scaling,您可以在配置详细信息 -> 高级详细信息下创建启动配置时进行设置。

要设置部署组并设置目标修订版:

  1. 创建或编辑部署组以包含 Auto Scaling 组。 (注意:Auto Scaling 组必须首先存在才能正常工作。)
  2. 确保 Auto Scaling 组中至少有 1 个实例。
  3. 将您想要自动部署到部署组的工件包部署。
  4. 假设步骤 3 成功,部署组现在将将该 bundle 设置为其目标修订版。对于自动部署,这成为已知的良好部署修订版。

该 Auto Scaling 组中 Auto Scaling 启动的新实例将自动部署部署组的目标修订版。失败的手动部署的修订不会自动部署。

关于amazon-web-services - 我可以在自动扩展时使用 AWS code Deploy 提取应用程序代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26903206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com