gpt4 book ai didi

php - 推送到负载均衡器上的多个 EC2 实例

转载 作者:IT王子 更新时间:2023-10-29 00:52:25 24 4
gpt4 key购买 nike

我正在尝试找出一种将新提交推送到 ELB(负载均衡器)后面的一组 EC2 服务器实例的好方法。每个实例都在运行 Nginx 和 PHP-FPM

我想执行以下工作流程,但我不确定将新版本推送到负载均衡器后面的所有实例的好方法。

  • 开发在本地机器上完成
  • 一旦更改准备就绪,我将执行“git push origin master”来推送对 BitBucket 的更改(我在其中托管我所有的 git 存储库)
  • 被推送到bitbucket后,我想要新版本同时推送到所有 EC2 实例。
  • 我想这样做而不必通过 SSH 连接到每个实例(显然)。

有没有办法配置远程服务器来接受远程推送?有更好的方法吗?

最佳答案

是的,我一直这样做(实际上是使用相同的应用程序堆栈)。

  1. 使用来自可信来源的基本 AMI,例如默认的“Amazon Linux”AMI,或者推出您自己的 AMI。

  2. 作为启动配置的一部分,使用“用户数据”字段在启动时引导配置过程。这可以像运行 yum install nginx php-fpm -y 的 shell 脚本一样简单,并从 S3 存储桶中复制文件或从您的存储库中提取文件。 Amazon 编写的 AMI 还包括对 cloud-init 的支持如果您需要更多的灵 active ,请使用脚本。如果您需要更强大的功能,可以使用变更管理和编排工具,例如 Puppet , Chef , 或 Salt (我个人最喜欢的)。

  3. 就更新现有实例的代码而言:有两种思想流派:

    • 充分利用云,启动一个全新的实例队列,在启动时获取新代码。然后翻转负载均衡器以指向新队列。它是即时的,如果出现问题,您可以非常快速地恢复到旧队列。数小时(或数天)后,您将关闭旧实例。
    • 您可以使用类似 Fabric 的工具或 Capistrano一次对所有实例进行并行“推送”部署。这通常只是重新执行服务器在启动时运行的相同脚本。 Salt 和 Puppet 的 MCollective 也提供类似的功能,这些功能与其基本的“pull ”供应相结合。

关于php - 推送到负载均衡器上的多个 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13868943/

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