如何在负载平衡基础设施中复制应用程序

如何在负载平衡基础设施中复制应用程序

每当部署新节点(服务器)时,AWS 都会使用 AMI(Amazon Machine Image)来复制应用程序服务器。

  • 这是怎么回事?那是什么样的图像?
  • 在负载平衡环境中还有哪些其他方法可以复制应用程序?

问题背后的原因

我想通过普通的专用服务器实现自动扩展,Api 可以自动创建和销毁服务器(我的意思是说我在非 AWS 环境),那么在新部署的服务器中自动复制我的应用程序的最佳方法是什么

答案1

创建一个急性心肌梗死默认情况下,部署新节点(服务器)时不会自动执行。当然,您可以使用您选择的 AWS SDK 来实现这一点。映像类型取决于您使用的 EC2 实例类型。AWS 最佳实践建议将您的实例通过自动扩展连接在不同区域中,并使用 ELB 启动配置,以便实现高可用性。如果您需要,也可以使用 dosnapshots。

更新答案:

这取决于你想花多少时间来做这件事。你可以使用 Cloudformation 和基础设施即代码方法以编程方式创建你的环境。例如 Ansible、Docker 等...

您还可以在部署 ec2 时使用用户数据来复制 repo、配置等来引导它...

可能最快的方法是创建正在运行的 EC2 实例的 AMI,然后从该 AMI 创建新的 EC2 实例,而不是每次都从新实例开始。根据您的堆栈,还有 Elastic Beanstalk 等 AWS 工具可以大大减少所花费的时间。

这还取决于您的架构,您拥有的 EC2 实例越多,您就必须考虑 HA 和容错等问题,然后您需要配置自动扩展和启动配置等。

答案2

AWS AMI 基本上是根驱动器的克隆,就像快照一样。AWS 建议在测试并准备部署到您的环境中后构建 AMI,尽管使用 AutoScaling 程序 AMI 是必不可少的。

要求:找到在自己的硬件而不是任何云提供商内克隆应用程序(无状态)服务器的最佳方案。

如果对后端了解不够,只能应用以下广泛的建议:

  • 自动化引导和配置过程
  • 自动化部署阶段,只需按一下按钮即可部署
  • 克隆给定的应用程序服务器
  • 根据 SLA 选择满足业务流程的 HA 策略

在许多环境中,前 3 个步骤是最独特和最复杂的。最后一个步骤可以通过使用常见模式来解决:

  1. 无负载均衡器,但有 DNS 故障转移(带健康检查的循环机制)

  2. 负载均衡器 + DNS 故障转移或虚拟 IP 技术

要了解有关 DNS 和 LB 的更多信息,请查看此处的最新讨论:是否可以使用多个负载均衡器将流量重定向到我的应用程序服务器?

相关内容