在许多可以通过多种方式配置的EC2实例上安装软件的云最佳实践是什么



我有一个很大的服务器软件(预装了3 GB的文件(正在EC2上运行。该软件安装了一个完整的应用程序服务器或接口服务器,用于与前端桌面GUI和数据库通信。该软件最初是几年前设计的,通过一个可视化的分步安装程序安装在本地的USB驱动器上。此安装程序可确保软件的设置具有正确的配置、网络、与数据库的连接等。每个客户端都有一个或多个EC2实例专门用于处理其工作负载。进入云思维模式,对于创建多个服务器、多个客户端,有什么更好的方法来处理这些软件的不同配置?当一个服务器出现故障,或者需要另一个服务器进行加载时;云;练习启动一台新服务器并在该服务器上安装相同配置的软件?

我有多种想法,包括:

  1. 将软件文件存储在S3 bucket中,并根据需要将它们拉到EC2实例中。每个客户的配置文件也将更新并存储在S3上。然后,EC2将从PowerShell脚本启动软件,以创建正确的配置
  2. 将软件完全按照配置存储在EC2的AMI中。这意味着,每当使用新的客户端配置创建服务器时,我们都会在安装后创建一个新的AMI
  3. 创建一个可以处理所有不同配置参数的Lambda函数。当被调用时,它将负责启动服务器,将软件移动到服务器,并安装具有正确配置的软件

如有任何指导或白皮书参考,我们将不胜感激。

谢谢!

我会:

  • 准备一个单独的AMI,该AMI安装了软件和所需的配置

  • 将客户的自定义配置文件存储在存储桶中

  • 为每个客户创建一个启动模板。该模板将引用AMI,并从bucket 中获取客户特定的配置文件

  • 为每个客户创建一个EC2自动缩放组。每个自动缩放组将使用特定的启动模板

如果您的客户群增长,一个带有自动提取的配置文件的AMI可以让您轻松扩展。另一种选择,每个客户一个AMI,很快就会变得难以管理。

如果客户需要更多的服务器,则自动扩展组允许您进行无缝扩展,并负责自动替换不正常的实例。

最新更新